Skip to content

Commit aeed0f4

Browse files
djm81Dominikus Nold
andauthored
fix: Improve CSS styling with proper overrides for GitHub Pages (#13)
* chore: remove mcp.json from version control * fix: correct test paths for new .specfact structure - Fix test_compare_with_smart_defaults: remove duplicate mkdir for plans directory - Fix test_compare_output_to_specfact_reports: move auto-derived plan to .specfact/plans/ instead of .specfact/reports/brownfield/ - Fix test_team_collaboration_workflow: use correct pattern 'report-*.md' for comparison reports and check auto-derived plans in .specfact/plans/ * fix: update .gitignore * fix: correct pre-merge check to only flag root-level temporary files - Fix regex to only match temporary files at project root (not in tests/) - Patterns match .gitignore: /test_*.py, /debug_*.py, /trigger_*.py, /temp_*.py - Use grep -v '/' to ensure files are at root level (no subdirectories) - Also check for analysis artifacts at root - Exclude legitimate test files in tests/ directory * fix: add conftest.py to fix tools imports in tests - Create tests/conftest.py to add project root to sys.path - Fixes ModuleNotFoundError for 'tools' module in Python 3.11 tests - Update test_smart_test_coverage.py to use consistent sys.path approach - Required because pytest --import-mode=importlib doesn't respect pythonpath during test collection * fix: install specfact-cli from local source in specfact-gate workflow - Change from 'pip install specfact-cli' (PyPI) to 'pip install -e .' (local source) - Required because package is not yet published to PyPI - Matches approach used in pr-orchestrator.yml workflow - Install hatch first to ensure proper environment setup * refactor: combine hatch installation and CLI setup steps - Combine 'Install dependencies' and 'Install SpecFact CLI from source' steps - Ensures hatch is available before use - Matches pattern used in pr-orchestrator.yml cli-validation job - More efficient and clearer workflow structure * fix: make repro main command the default callback - Replace @app.command() with @app.callback(invoke_without_command=True) - Allows 'specfact repro --verbose --budget 90' without requiring a subcommand - Fixes workflow error: 'No such option: --verbose' - main() now runs when repro is called without a subcommand * fix: remove invalid -k filter from Python 3.11 compatibility tests - Remove -k 'contract' filter that was deselecting all tests (exit code 5) - Run unit and integration tests instead for Python 3.11 compatibility check - Skip E2E tests to keep compatibility check fast - Tests are advisory (don't fail build) to allow gradual compatibility work * fix: sync __version__ with pyproject.toml (0.4.0) - Update __version__ in __init__.py to match pyproject.toml version - Ensures version consistency across package metadata * fix: exclude tests, docs, tools from PyPI package - Add [tool.hatch.build.targets.sdist] configuration - Include only essential files: src/, README.md, LICENSE.md, pyproject.toml - Exclude development files: tests/, tools/, docs/, .github/, .cursor/, contracts/, reports/, etc. - Ensure clean PyPI package with only production code * docs: fix uvx command syntax in all documentation - Update all occurrences of 'uvx specfact' to 'uvx --from specfact-cli specfact' - Fixes issue where uvx couldn't find package by command name alone - Package name is 'specfact-cli', command name is 'specfact' - Updated in: README.md, docs/README.md, docs/getting-started/installation.md, docs/guides/competitive-analysis.md, AGENTS.md * fix: Contract test directory handling and GitHub Pages legal files (#3) * fix: handle directories in contract test file scanning - Add is_file() check in _get_modified_files() to skip directories - Add IsADirectoryError handling in _get_file_hash() and _compute_file_hash() - Fix contract test error when scanning resources directory - Ensure only Python files are processed for contract validation * fix: include LICENSE.md and TRADEMARKS.md in GitHub Pages - Copy LICENSE.md and TRADEMARKS.md to docs/ before building - Add root files to workflow paths trigger - Update docs/index.md to use relative links for LICENSE and TRADEMARKS - Ensure legal information is included in published documentation * feat: enable PR orchestrator workflow for dev branch - Add dev branch to pull_request and push triggers - Ensure CI/CD runs on PRs to both main and dev branches - Maintains same path ignore rules for both branches * feat: enable specfact-gate workflow for dev branch - Add dev branch to pull_request and push triggers - Ensure contract validation runs on PRs to both main and dev branches * fix: replace percent format with f-string in plan.py - Fix UP031 ruff error by using f-string instead of percent format - Update prompt text to use modern Python string formatting * fix: resolve import sorting conflict between isort and ruff - Remove isort from format and lint scripts to avoid conflicts - Configure ruff's isort to match black profile (multi_line_output=3, combine_as_imports) - Use ruff for both import sorting and formatting (more reliable and modern) - Fix I001 import sorting errors in plan.py This resolves the conflict where format and lint were producing different results due to isort and ruff having different import sorting configurations. * fix: use hatch run in GitHub workflow to ensure tools are available - Change specfact repro to hatch run specfact repro in specfact-gate.yml - Ensures all tools (semgrep, basedpyright, ruff, crosshair) are available in PATH - Fix I001 import sorting in plan.py * fix: replace try-except-pass with contextlib.suppress in logger_setup - Fix SIM105 ruff error by using contextlib.suppress(Exception) - Replace nested try-except-pass blocks with contextlib.suppress - Improves code quality and follows ruff best practices * fix: exclude logger_setup.py from CrossHair analysis - Exclude logger_setup.py from CrossHair due to known signature analysis bug - CrossHair has issues analyzing functions with *args/**kwargs patterns with decorators - Contract exploration remains advisory, this prevents false failures * fix: resolve ruff errors and CrossHair syntax issue - Fix C414: Remove unnecessary list() call in sorted() - Fix B007: Rename unused loop variable story_idx to _story_idx - Fix CrossHair: Exclude common directory instead of using non-existent --exclude flag - CrossHair doesn't support --exclude, so we exclude common/ by only including other directories * fix: use unpacking instead of list concatenation for CrossHair targets - Fix RUF005: Use unpacking (*crosshair_targets) instead of list concatenation - Improves code quality and follows ruff best practices * fix: resolve RET504 and SIM102 ruff errors - Fix RET504: Remove unnecessary assignment before return in feature_keys.py - Fix SIM102: Combine nested if statements into single if in fsm.py - Improves code quality and follows ruff best practices * fix: make CrossHair failures non-blocking - Treat CrossHair failures as warnings (advisory only) - Contract exploration is advisory, not blocking - CrossHair has known issues analyzing certain function signatures with decorators - Only count non-CrossHair failures for exit code determination * fix: ruff check * fix: ruff check * fix: ruff check --------- Co-authored-by: Dominikus Nold <[email protected]> * feat: dynamic CrossHair detection, GitHub Action integration, and enforcement report enhancements (v0.4.2) (#5) * feat: dynamic CrossHair detection, GitHub Action integration, and enforcement report enhancements - Replace hard-coded skip list with dynamic signature issue detection - Add comprehensive metadata to enforcement reports (plan, budget, config) - Add structured findings extraction from tool output - Add auto-fix support for Semgrep via --fix flag - Add GitHub Action workflow with PR annotations and comments - Add GitHub annotations utility with contract-first validation - Add comprehensive test suite for new features - Sync versions to 0.4.2 across all files Fixes: CrossHair signature analysis limitations blocking CI/CD New Features: GitHub Action integration, auto-fix support, enhanced reports * fix: handle CrossHair signature analysis limitations in GitHub annotations - Detect signature analysis limitations in create_annotations_from_report - Treat signature issues as non-blocking (notice level, not error) - Filter signature issues from failed checks in PR comments - Add dedicated section for signature analysis limitations in PR comments - Prevents workflow failures for non-blocking CrossHair signature issues Fixes: GitHub Action workflow failing on CrossHair signature analysis limitations * fix: escape GitHub Actions syntax in Jinja2 template - Use {% raw %} blocks to escape GitHub Actions expressions - Fixes Jinja2 UndefinedError for 'steps' variable - All 5 failing tests now pass Fixes: - test_import_speckit_via_cli_command - test_import_speckit_generates_github_action - test_import_speckit_with_full_workflow - test_generate_from_template - test_generate_github_action * fix: handle CrossHair signature issues in ReproChecker and fix ruff whitespace - Detect CrossHair signature analysis limitations in ReproChecker.run_check() - Mark signature issues as skipped instead of failed - Fix whitespace issues in test_directory_structure_workflow.py (W293) - Prevents local repro failures on CrossHair signature limitations Fixes: specfact repro failing on CrossHair signature analysis limitations * chore: remove duplicate specfact-gate.yml workflow - specfact.yml is the new comprehensive workflow with PR annotations - specfact-gate.yml was the old workflow with same triggers - Removing to prevent duplicate workflow executions Fixes: workflow running twice on each push * fix: show all ruff errors by using --output-format=full - Add --output-format=full flag to ruff check command - Ensures all linting errors are reported, not just a few - Fixes issue where pipeline only shows limited number of errors Fixes: ruff report showing only a few issues instead of all * fix: remove whitespace from blank lines in test_analyze_command.py - Fix 20 W293 whitespace errors in dedent() strings - Ruff now passes all checks for this file Fixes: ruff linting errors in test file * fix: remove whitespace from blank lines in test files - Fix W293 whitespace errors in: - tests/integration/analyzers/test_code_analyzer_integration.py - tests/unit/analyzers/test_code_analyzer.py - tests/unit/tools/test_smart_test_coverage.py - tests/unit/utils/test_ide_setup.py - All whitespace errors now fixed (68 fixed) - Remaining 2 SIM105 suggestions are style recommendations, not errors Fixes: ruff linting errors in test files * fix: replace try-except-pass with contextlib.suppress for SIM105 - Replace try-except-pass pattern with contextlib.suppress(SystemExit) - Fixes 2 SIM105 errors in test_smart_test_coverage.py - All ruff linting errors now fixed Fixes: SIM105 linting errors in test files --------- Co-authored-by: Dominikus Nold <[email protected]> * feat: Watch mode and documentation reorganization (v0.5.0) (#6) * feat: add watch mode and complete documentation reorganization (v0.5.0) - Add watch mode for continuous synchronization (sync spec-kit and sync repository) - Implement real-time file system monitoring with configurable interval - Add comprehensive E2E test suite for watch mode (20+ tests) - Complete documentation reorganization (all 3 phases): - Phase 1: Core reorganization (streamlined README, persona-based docs/README) - Phase 2: Content creation (first-steps.md, workflows.md, troubleshooting.md, quick-examples.md) - Phase 3: Content enhancement (architecture.md, commands.md, polish all docs) - Add plan sync --shared and plan compare --code-vs-plan convenience aliases - Fix watch mode path validation and error handling - Update all version artifacts to 0.5.0 - Add comprehensive CHANGELOG entry for 0.5.0 Closes: Watch mode implementation (Phase 6 & 7) Closes: Documentation reorganization (all phases) * chore: add reports/ to .gitignore and remove tracked reports - Add reports/ directory to .gitignore (ephemeral artifacts should not be versioned) - Remove tracked reports files from git (they are generated artifacts) - Aligns with directory structure documentation where reports/ is gitignored --------- Co-authored-by: Dominikus Nold <[email protected]> * Update to repositioning for brownfield first strategy * Switch to Apache 2 license * Fix test failurs * Fix tests and linter conflicts * Fix github pages setup * Fix pages setup * Fix pages setup * fix: remove container build job (no Dockerfile) * fix: Set index.md permalink to root for GitHub Pages The default permalink pattern /:basename/ was creating index/index.html instead of index.html at the root. This caused 404 errors on the GitHub Pages site root URL. Setting permalink: / ensures the index page is generated at the correct location. * feat: add custom CSS styling for beautiful GitHub Pages site - Created assets/main.scss with modern, responsive styling - Added custom color scheme with dark mode support - Improved typography, spacing, and visual hierarchy - Enhanced header, footer, and content area styling - Added responsive design for mobile devices - Configured SASS compilation in _config.yml * chore: add docs/assets to GitHub Pages workflow triggers * fix: remove incorrect sass_dir configuration that breaks theme imports The sass_dir setting was misconfigured and interfering with Jekyll's automatic processing of assets/main.scss when using the minima theme. Jekyll automatically processes assets/main.scss, and sass_dir is only needed for custom SASS partials directory, not for the main SCSS file. This fixes the theme import issues in Jekyll builds. * fix: remove duplicate SASS config and incorrect sass_dir from merge The merge from main reintroduced the incorrect sass_dir: assets setting that breaks theme imports. Removed the duplicate SASS configuration section and kept only the correct one without sass_dir. * fix: improve CSS specificity and add important flags for theme overrides The custom CSS wasn't being applied because minima theme styles have higher specificity. Added !important flags and improved selectors to ensure custom styles override theme defaults. * fix: simplify CSS and ensure proper overrides for minima theme Simplified the CSS structure and ensured all overrides use !important to properly override minima theme defaults. This should make the custom styling actually apply to the site. * fix: remove duplicate body definition and add !important flags Removed duplicate body definition and ensured all body styles use !important to properly override minima theme defaults. --------- Co-authored-by: Dominikus Nold <[email protected]>
1 parent f2c5f71 commit aeed0f4

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

docs/assets/main.scss

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
2+
# Only the main CSS file needs this front matter
23
---
34

45
@import "minima";
56

67
// Custom styling for SpecFact CLI documentation
8+
// These styles override minima theme defaults
9+
710
:root {
811
--primary-color: #2563eb;
912
--primary-hover: #1d4ed8;
@@ -29,11 +32,12 @@
2932
}
3033
}
3134

35+
// Override body styles with !important to ensure they apply
3236
body {
33-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
34-
line-height: 1.6;
35-
color: var(--text-color);
36-
background-color: var(--bg-color);
37+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
38+
line-height: 1.7 !important;
39+
color: var(--text-color) !important;
40+
background-color: var(--bg-color) !important;
3741
}
3842

3943
// Header styling

0 commit comments

Comments
 (0)