-
Notifications
You must be signed in to change notification settings - Fork 3
feat: trim project to prompts-only deliverable #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Removes Python server implementation, tests, and tooling to focus on the core spec-driven development prompts. Project now provides lightweight, markdown-based prompts that work with any AI assistant, removing MCP server dependencies. - Delete mcp_server/ module and server.py implementation - Remove slash_commands CLI tooling and generators - Delete all pytest test files and test configuration - Remove pyproject.toml and uv dependency management - Simplify CI workflows to pre-commit-only checks - Add semantic release configuration (.releaserc.toml) - Update CONTRIBUTING.md and README.md to reflect prompt-focused approach - Retain core prompts: generate-spec, generate-task-list-from-spec, manage-tasks, validate-spec-implementation 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Recreate the SDD Playbook website locally with dark theme matching dev.liatrio.com. Includes: - HTML structure with all playbook content sections - CSS styling using Liatrio brand colors and DM Sans typography - Dark theme with texture background on reactive-art section - Responsive design for mobile/tablet/desktop - Logo and texture image assets The site can be viewed locally or deployed to GitHub Pages.
…rview pages Add three new pages to the playbook site recreating content from Gamma.app reference site: - developer-experience.html: AI-assisted workflow case study with before/after scenarios, metrics, and workflow demonstrations - common-questions.html: Evidence-based FAQ addressing SDD objections with proof artifacts and real-world examples - video-overview.html: Video embed page with Google Drive integration All pages use consistent Liatrio brand styling with dark theme, responsive design, and proper navigation integration. Includes extensive CSS additions for new page-specific components including code examples, metric boxes, workflow items, and video embeds.
Add reference-materials.html page that showcases complete Spec-Driven Development workflow documentation. Includes: - Reference materials landing page with organized grid layout - 9 complete reference HTML files copied from cspell example: * AI conversation documentation * Specification document * Tasks overview * Task 01-04 proofs * Validation report * Git log analysis All reference files are stored in references/ directory and linked from the main reference-materials page. Page uses consistent Liatrio brand styling with dark theme, responsive grid layout, and hover effects. Updated navigation links across all pages to point to reference-materials.html instead of anchor links.
…dex.html - Update all validation dates from 2025-01-27 to 2025-11-07 in: * VALIDATION_REPORT-dark.html (2 occurrences) * ai-conversation file (2 occurrences) - Remove references/index.html as it's unused and has broken links pointing to non-existent html-versions/ directory
Add consistent navigation bar to all 9 reference HTML files that allows users to navigate back to the main playbook site. Navigation includes: - Sticky header with dark theme matching playbook site - Link back to main SDD Playbook index page - Link to Reference Materials page - Link to Main Site - Responsive design for mobile devices All reference pages now have consistent navigation that matches the playbook site's styling and branding.
Add all missing subtasks (1.1-1.10, 2.1-2.8, 3.1-3.8, 4.1-4.8) from the original markdown file to the HTML version. Subtasks are styled consistently with existing task list styling using checkbox labels and nested list items. All subtasks match the original markdown file structure and maintain the dark theme styling with proper code formatting.
Change task list label layout from flexbox to block with absolute positioned checkboxes to fix inline code wrapping issues. This allows code elements within subtask labels to wrap naturally and display properly. - Changed labels from flex to block layout - Positioned checkboxes absolutely to left side - Added proper padding for checkbox spacing - Improved code element styling within task lists - Code elements now wrap properly instead of breaking layout
Add detailed audit report documenting: - Critical font rendering issues (needs investigation) - High priority DRY violations (navigation/footer duplication) - Medium priority issues (outdated comments, CSS consolidation) - Link verification results Fixes applied: - Remove outdated comments from video-overview.html - Consolidate letter-spacing values into CSS variables - Add text-rendering optimizations for better font display - Add white-space: nowrap to navigation links to prevent wrapping
- Create navigation.js component to inject navigation dynamically - Create footer.js component to inject footer dynamically - Update all 5 main HTML pages to use components - Remove 'Made with GAMMA' footer text - Replace footer with Liatrio footer (copyright, Privacy Policy, Terms of Service) - Add favicon from dev.liatrio.com to all pages - Update footer CSS to match dev.liatrio.com styling - Fix navigation to handle relative paths for reference pages - Add responsive footer styles for mobile This eliminates ~210 lines of duplicated navigation HTML and ~25 lines of duplicated footer HTML across all pages, significantly improving maintainability.
Update playbook site styling to match dev.liatrio.com brand guidelines: - Update accent green color from #a6ef39 to #89df00 (brand standard) - Reduce H1 font sizes to align with brand typography guidelines - Convert all ALL CAPS headings to title case for consistency - Restructure Four Phases section to card-based grid layout - Add hero-subtitle styling - Remove uppercase transform from metric labels - Update all rgba color values to use new accent color - Add responsive styles for new card layout
- Update logo to reverse/preferred version from dev.liatrio.com - Reframe content from 'phases' to 'steps' emphasizing prompts - Add new comparison page comparing SDD prompts to other tools - Improve visual variety with icons, cards, and alternating backgrounds - Enhance code element styling with green accent colors - Add icons to reference materials cards - Improve reference card link positioning with flexbox - Add visual distinction to common-questions and developer-experience pages - Update navigation to link logo to liatrio.com - Add Liatrio branding throughout site content
…essibility - Add rel="noopener noreferrer" to external links in reference-materials.html - Add aria-hidden="true" to decorative SVG icons in common-questions.html and reference-materials.html - Add title and loading="lazy" attributes to iframe in video-overview.html - Remove broken Terms of Service link from footer.js - Fix .releaserc.toml inline table syntax for python-semantic-release v10 compatibility
- Move all files from docs/playbook-site/ to docs/ directory - Embed DM Sans fonts locally (18 font variants) - Remove GitHub Actions workflow (use standard /docs folder deployment) - Update .gitignore to commit embedded font files - Update documentation for new structure This simplifies deployment by using GitHub Pages standard /docs folder option instead of custom workflow, since fonts are now pre-embedded.
…rials page Add a subtle horizontal divider at the bottom of the hero section on the reference-materials page to visually separate content and reduce the appearance of empty space. Also reduced hero padding and content margin for better spacing balance.
…ooks Add repository compliance files and update configuration to align with template standards: - Add .github/CODEOWNERS for code ownership assignment - Add CODE_OF_CONDUCT.md with Contributor Covenant 2.1 - Update .pre-commit-config.yaml with additional hooks: - check-toml for TOML file validation - check-added-large-files to prevent large file commits - gitleaks for secret scanning - Update CONTRIBUTING.md to reference actual Code of Conduct file
Remove temporary audit report and obsolete documentation files: - Delete audit-report.md (temporary audit report) - Delete docs/GITHUB_PAGES_COMPATIBILITY.md and related files - Delete docs/playbook-site/ files (GITHUB_PAGES_COMPATIBILITY.md, README.md, embed-fonts.py) - Delete docs/embed-fonts.py and docs/README.md Also update docs/comparison.html to add link to installation instructions.
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughRemoves MCP server and slash-commands features and tests; deletes pyproject metadata and version pin; replaces CI/release flows to use actions/setup-python + pre-commit and python-semantic-release; adds governance docs and a new static documentation site with CSS/JS assets. Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer / GitHub
participant Actions as GitHub Actions
participant Repo as Repository
participant PreCommit as pre-commit
participant Semantic as python-semantic-release
rect rgb(220,240,220)
Dev->>Repo: push / pull_request
Actions->>Repo: checkout
Actions->>PreCommit: setup Python 3.12 & run `pre-commit run --all-files`
PreCommit-->>Actions: lint/scan results
end
rect rgb(230,235,255)
Note right of Actions: release workflow (on workflow_run "CI - Tests and Linting")
Actions->>Semantic: setup Python 3.12, pip install python-semantic-release
Actions->>Semantic: run `semantic-release` (GH_TOKEN from Octo STS)
Semantic-->>Actions: create tag / changelog / publish
end
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - id: check-yaml | ||
| - id: check-toml | ||
| - id: check-added-large-files |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Large reference HTML exceeds check-added-large-files limit
CI runs pre-commit run --all-files, and the newly added docs/references/1___ai-conversation____add-cspell-precommit-hook-dark.html is ~720 KB. The check-added-large-files hook defaults to a 500 KB threshold, so this hook will fail on every lint run, blocking the lone CI job unless the file is shrunk or the limit is raised.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
♻️ Duplicate comments (2)
docs/references/4___05-task-01-proofs-dark.html (1)
11-418: Duplicate: Extract CSS to shared stylesheet.This file contains the same 408 lines of embedded CSS as the other proof documentation pages, confirming significant code duplication across the documentation set.
See the review comment on docs/references/5___05-task-02-proofs-dark.html for the refactoring suggestion to extract common CSS to a shared stylesheet.
docs/references/7___05-task-04-proofs-dark.html (1)
11-442: Duplicate: Extract CSS to shared stylesheet.This file also contains the same embedded CSS (with some additional classes) as the other proof documentation pages.
See the review comment on docs/references/5___05-task-02-proofs-dark.html for the refactoring suggestion to extract common CSS to a shared stylesheet.
🧹 Nitpick comments (9)
docs/video-overview.html (2)
12-154: Reduce font variants for better performance.Loading 18 font variants (9 weights × 2 styles) of DM Sans will significantly impact page load performance. Each font file adds to the initial payload and requires a separate network request.
Consider these optimizations:
- Use only essential weights (typically 400, 500, 600, 700):
/* Keep only these weights */ @font-face { font-family: 'DM Sans'; src: url('assets/fonts/dm-sans-400-regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; } /* Repeat for 500, 600, 700 in regular and italic */
- Or use a variable font (single file supporting all weights):
@font-face { font-family: 'DM Sans'; src: url('assets/fonts/dm-sans-variable.woff2') format('woff2-variations'); font-weight: 100 900; font-display: swap; }
- Or use Google Fonts (already linked in other pages):
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
182-190: Consider adding sandbox attribute to iframe.The Google Drive video iframe could benefit from additional security restrictions.
Add a sandbox attribute to limit iframe capabilities:
<iframe src="https://drive.google.com/file/d/18Jk1WTWBGU0DKabTLiJaIoap5UfjC_RE/preview" width="100%" height="100%" allow="autoplay" + sandbox="allow-scripts allow-same-origin" loading="lazy" title="Spec-Driven Development workflow overview video" style="border: none;"> </iframe>Note: Test the video playback after adding
sandboxto ensure it works correctly.docs/assets/js/navigation.js (1)
38-43: Add aria-current attribute for active navigation links.The active link detection works well, but for better accessibility, consider adding an
aria-currentattribute alongside the class.${navLinks.map(link => { const linkPage = link.href.split('/').pop(); - const isActive = linkPage === currentPage ? ' class="active"' : ''; - return `<li><a href="${link.href}"${isActive}>${link.text}</a></li>`; + const isActive = linkPage === currentPage; + const activeAttrs = isActive ? ' class="active" aria-current="page"' : ''; + return `<li><a href="${link.href}"${activeAttrs}>${link.text}</a></li>`; }).join('')}This improves screen reader navigation by explicitly marking the current page.
docs/references/2___05-spec-pre-commit-cspell-dark.html (1)
12-155: Significant @font-face duplication across multiple HTML files—consider extracting to shared stylesheet.This file (and files 3, 4, 6, 7, 8) each embed identical DM Sans font-face declarations. This introduces maintenance burden and increases file size unnecessarily.
Move all 18 @font-face rules to a separate CSS file (e.g.,
docs/assets/css/fonts.css), then link from each HTML file:<link rel="stylesheet" href="assets/css/fonts.css">This consolidates font loading, reduces redundancy, and makes future font updates easier.
docs/references/8___VALIDATION_REPORT-dark.html (1)
8-10: Font loading uses external CDN rather than embedded files—inconsistent with other pages.This page loads DM Sans from Google Fonts CDN (lines 8-10), while other documentation pages (files 2, 3, 4, 6, 7) embed fonts locally. Consider standardizing the font loading strategy across all documentation pages.
Choose one approach for the entire docs site:
- Recommended: Shared stylesheet – Move fonts to
docs/assets/css/fonts.cssand link from all pages (best for maintenance)- Alternative: Keep CDN – Use CDN consistently across all pages (faster, fewer files to manage)
- Not recommended: Keep mixed approach – Current state with some pages embedding and others using CDN
Implementing approach #1 (shared stylesheet) would consolidate all font management, reduce duplication, and improve maintainability.
docs/developer-experience.html (1)
405-421: Performance metrics should be clearly marked as example-specific estimates.The metrics section presents specific numbers (6 minutes, 4-8 hours, 90%) without qualification. While these may be accurate for the cspell example documented in reference materials, readers may misinterpret these as guaranteed outcomes for all features.
Add qualifying language to the metrics section:
<p><strong>Example Metrics (from cspell pre-commit hook implementation):</strong></p> <!-- existing metrics cards --> <p class="disclaimer"><em>Actual results vary based on feature complexity, team experience with SDD, and AI assistant capability.</em></p>This sets appropriate expectations without undermining the genuine value of the approach.
docs/references/9___git-log-for-cspell-feature-dark.html (1)
11-455: Consider extracting embedded CSS to external stylesheet for maintainability. Lines 11–455 embed a comprehensive dark-theme CSS design system directly in this HTML file. While this is a valid approach for documentation, if similar pages exist (e.g.,3___05-tasks-pre-commit-cspell-dark.html,6___05-task-03-proofs-dark.html), consolidating this CSS into a shareddocs/assets/css/file would reduce duplication and improve maintainability. This is a nice-to-have optimization for a future refactor, not a blocker.CONTRIBUTING.md (1)
1-3: Minor capitalization consistency issue flagged by static analysis. Line 1 uses "Spec Driven Development" while best practice suggests "Spec-Driven Development" (hyphenated adjective). This is a style refinement, not a blocker. Consider updating for consistency with the brief on line 3.docs/assets/css/styles.css (1)
432-477: Consider deprecating legacy.phase-detailstyles in favor of.phase-cardsystem. Lines 432–477 define.phase-detail,.phase-number, and.phase-contentstyles that appear to be superseded by the newer.phase-cardsystem (lines 352–428). Both approaches serve similar purposes and add maintenance burden. Document which is preferred, or consolidate these styles in a future refactor to reduce technical debt.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (22)
docs/assets/fonts/dm-sans-100-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-100-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-200-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-200-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-300-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-300-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-400-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-400-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-500-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-500-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-600-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-600-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-700-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-700-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-800-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-800-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-900-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-900-regular.ttfis excluded by!**/*.ttfdocs/assets/images/background/texture05-dark.jpegis excluded by!**/*.jpegdocs/assets/images/favicon.svgis excluded by!**/*.svgdocs/assets/images/logo-liatrio.svgis excluded by!**/*.svguv.lockis excluded by!**/*.lock
📒 Files selected for processing (61)
.github/CODEOWNERS(1 hunks).github/workflows/ci.yml(1 hunks).github/workflows/release.yml(3 hunks).pre-commit-config.yaml(2 hunks).python-version(0 hunks).releaserc.toml(1 hunks)CODE_OF_CONDUCT.md(1 hunks)CONTRIBUTING.md(3 hunks)README.md(4 hunks)__version__.py(0 hunks)docs/archive/refactor-sdd-workflow-prompts.md(0 hunks)docs/assets/css/styles.css(1 hunks)docs/assets/js/footer.js(1 hunks)docs/assets/js/navigation.js(1 hunks)docs/common-questions.html(1 hunks)docs/comparison.html(1 hunks)docs/developer-experience.html(1 hunks)docs/index.html(1 hunks)docs/mcp-prompt-support.md(0 hunks)docs/operations.md(0 hunks)docs/reference-materials.html(1 hunks)docs/references/2___05-spec-pre-commit-cspell-dark.html(1 hunks)docs/references/3___05-tasks-pre-commit-cspell-dark.html(1 hunks)docs/references/4___05-task-01-proofs-dark.html(1 hunks)docs/references/5___05-task-02-proofs-dark.html(1 hunks)docs/references/6___05-task-03-proofs-dark.html(1 hunks)docs/references/7___05-task-04-proofs-dark.html(1 hunks)docs/references/8___VALIDATION_REPORT-dark.html(1 hunks)docs/references/9___git-log-for-cspell-feature-dark.html(1 hunks)docs/slash-command-generator.md(0 hunks)docs/video-overview.html(1 hunks)mcp_server/__init__.py(0 hunks)mcp_server/config.py(0 hunks)mcp_server/prompt_utils.py(0 hunks)mcp_server/prompts_loader.py(0 hunks)pyproject.toml(0 hunks)server.py(0 hunks)slash_commands/__init__.py(0 hunks)slash_commands/cli.py(0 hunks)slash_commands/config.py(0 hunks)slash_commands/detection.py(0 hunks)slash_commands/generators.py(0 hunks)slash_commands/writer.py(0 hunks)tasks/0001-spec-sdd-mcp-poc.md(0 hunks)tasks/0002-spec-open-source-ready.md(0 hunks)tasks/0003-spec-slash-command-generator.md(0 hunks)tasks/0004-spec-review-fixes.md(0 hunks)tasks/0005-spec-fix-bundled-prompts-path.md(0 hunks)tasks/tasks-0001-spec-sdd-mcp-poc.md(0 hunks)tasks/tasks-0002-spec-open-source-ready.md(0 hunks)tasks/tasks-0003-spec-slash-command-generator.md(0 hunks)tasks/tasks-0004-spec-review-fixes.md(0 hunks)tasks/tasks-0005-spec-fix-bundled-prompts-path.md(0 hunks)tests/conftest.py(0 hunks)tests/test_cli.py(0 hunks)tests/test_config.py(0 hunks)tests/test_detection.py(0 hunks)tests/test_generators.py(0 hunks)tests/test_prompts.py(0 hunks)tests/test_validation.py(0 hunks)tests/test_writer.py(0 hunks)
💤 Files with no reviewable changes (36)
- .python-version
- docs/archive/refactor-sdd-workflow-prompts.md
- docs/operations.md
- tasks/0003-spec-slash-command-generator.md
- tasks/tasks-0002-spec-open-source-ready.md
- tasks/0001-spec-sdd-mcp-poc.md
- slash_commands/writer.py
- tasks/tasks-0004-spec-review-fixes.md
- tasks/0005-spec-fix-bundled-prompts-path.md
- slash_commands/init.py
- tests/test_writer.py
- server.py
- tasks/0004-spec-review-fixes.md
- docs/slash-command-generator.md
- tasks/tasks-0003-spec-slash-command-generator.md
- tasks/0002-spec-open-source-ready.md
- mcp_server/config.py
- mcp_server/prompt_utils.py
- tasks/tasks-0005-spec-fix-bundled-prompts-path.md
- tests/test_cli.py
- tests/test_config.py
- tests/test_validation.py
- slash_commands/config.py
- tests/test_prompts.py
- mcp_server/init.py
- tests/conftest.py
- docs/mcp-prompt-support.md
- slash_commands/detection.py
- tasks/tasks-0001-spec-sdd-mcp-poc.md
- pyproject.toml
- slash_commands/generators.py
- version.py
- tests/test_detection.py
- slash_commands/cli.py
- mcp_server/prompts_loader.py
- tests/test_generators.py
🧰 Additional context used
🪛 GitHub Check: CodeQL
.github/workflows/ci.yml
[warning] 15-30: Workflow does not contain permissions
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}}
🪛 LanguageTool
CODE_OF_CONDUCT.md
[style] ~22-~22: Try using a synonym here to strengthen your wording.
Context: ...ind - Trolling, insulting or derogatory comments, and personal or political attacks - Pu...
(COMMENT_REMARK)
CONTRIBUTING.md
[uncategorized] ~1-~1: The adjective “Spec-Driven” is spelled with a hyphen.
Context: # Contributing to Spec Driven Development (SDD) Workflow Thanks for ...
(DRIVEN_HYPHEN)
[misspelling] ~44-~44: This word is normally spelled with a hyphen.
Context: ...eep lines reasonably short and headings well structured. - YAML files are validated for syntax ...
(EN_COMPOUNDS_WELL_STRUCTURED)
[uncategorized] ~61-~61: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ... This will: - Check YAML syntax - Fix markdown formatting issues - Validate commit mes...
(MARKDOWN_NNP)
[uncategorized] ~114-~114: The official name of this software platform is spelled with a capital “H”.
Context: ...s Use the GitHub issue templates under .github/ISSUE_TEMPLATE/ for bug reports, featu...
(GITHUB)
🔇 Additional comments (23)
.github/CODEOWNERS (1)
1-1: Ownership model looks good.The CODEOWNERS assignment is concise and appropriate for a maintainer-led, prompts-only project. The syntax and team reference follow GitHub conventions correctly. One thing to verify on your end: ensure the GitHub team
liatrio-labs/liatrio-labs-maintainersexists and has the appropriate members configured..pre-commit-config.yaml (1)
9-13: LGTM! Standard pre-commit hooks added.The addition of standard file format and hygiene hooks (check-yaml, check-toml, check-added-large-files, end-of-file-fixer, trailing-whitespace) is appropriate for a documentation-focused repository.
CODE_OF_CONDUCT.md (1)
1-77: LGTM! Standard Contributor Covenant 2.1.This is a well-established Code of Conduct with clear standards, enforcement guidelines, and appropriate contact information.
Note: The static analysis hint about line 22 is a false positive—"comments" is the appropriate term in the context of "derogatory comments."
docs/assets/js/navigation.js (1)
1-58: LGTM! Clean navigation injection module.The code follows good practices:
- IIFE for encapsulation
- Strict mode enabled
- Proper path detection for subdirectories
- DOM ready detection
- Semantic HTML structure
The use of
innerHTMLwith controlled static content is safe here.docs/assets/js/footer.js (1)
1-32: LGTM! Clean footer injection module.The code follows good practices:
- IIFE for encapsulation
- Strict mode enabled
- Proper DOM ready detection
- Early return for missing elements
The use of
innerHTMLwith static string literals is safe in this context. The privacy policy link (https://liatrio.com/privacy-policy) is valid and accessible..releaserc.toml (1)
1-24: Semantic-release configuration is appropriate for documentation-focused repository.The configuration correctly disables in-repo version tracking (
version_variables = []andassets = []) since this is now a documentation-only deliverable. The use ofGH_TOKENfrom environment aligns with standard CI/CD practices.docs/references/2___05-spec-pre-commit-cspell-dark.html (1)
330-330: Navigation structure follows expected pattern for nested docs pages.External navigation and footer injection via
navigation.jsandfooter.jsscripts (lines 424-428) is correctly configured. Relative path../index.html(line 330) is appropriate for pages nested underdocs/references/.Also applies to: 424-436
docs/common-questions.html (1)
456-457: External script loading for navigation and footer is correctly configured.The page correctly loads
navigation.jsandfooter.jsat document end (lines 456-457), allowing DOM population before script execution. This is appropriate.docs/comparison.html (1)
189-255: Comparison table is well-structured and clearly presented.The table correctly uses semantic HTML (thead, tbody, colgroup) and provides a clear side-by-side feature comparison. Comparison claims are balanced and factually supportable.
docs/references/8___VALIDATION_REPORT-dark.html (1)
441-459: Executive summary and validation gates clearly structured for readability.The validation report uses clear sectioning (executive summary, gates, coverage matrices) making it easy to scan for status. The checkmark indicators and gate structure provide quick feedback on overall implementation status.
docs/developer-experience.html (1)
524-525: Navigation and footer script injection correctly positioned at document end.Scripts are loaded after DOM content, allowing the page structure to fully render before script execution. This is appropriate.
docs/index.html (2)
171-173: Landing page clearly directs users to GitHub source material.The hero section provides direct link to GitHub prompts (line 173) with clear call-to-action. This appropriately positions the docs site as supplementary to the actual prompts repository.
183-196: Scope validation guidance is practical and appropriately scoped.The "Built-in Scope Validation" section provides clear examples of appropriately-sized work (lines 188-196), helping users determine if their feature is suitable for SDD. Examples are realistic and helpful.
docs/reference-materials.html (2)
309-310: Navigation and footer script loading correctly positioned.Scripts are loaded at document end (lines 309-310), allowing DOM to fully render before dynamic content injection.
190-190: All reference links verified and valid.All 7 referenced documentation files in
docs/references/have been confirmed to exist in the repository. The link structure indocs/reference-materials.htmlis sound, and there are no broken references..github/workflows/release.yml (2)
10-14: Verify CI workflow name matches trigger. Line 12 references"CI - Tests and Linting"which must exactly match thename:field in.github/workflows/ci.ymlfor theworkflow_runtrigger to activate. Confirm both files use identical names, or the release workflow will never trigger.
64-75: Verify.releaserc.tomlconfiguration file exists and is correctly referenced. Line 73 invokessemantic-release -c .releaserc.toml version, but this configuration file must be present in the repository root. The PR description mentions it as a new/updated file. Confirm the file exists and is valid before merging, as a missing config will cause the release to fail silently or with unclear errors.docs/references/3___05-tasks-pre-commit-cspell-dark.html (1)
468-578: Task list structure is clear and well-organized. Checkboxes properly represent completion state for tracking cspell hook implementation tasks (Task 1.0–4.0). The nested structure (main task → demo criteria → proof artifacts → sub-tasks) is easy to navigate and understand. No accessibility concerns detected.docs/references/6___05-task-03-proofs-dark.html (1)
483-492: Error output clearly demonstrates hook failure behavior. Lines 483–492 show well-formatted cspell error output with file name, line numbers, misspelled words ("recieve", "seperate"), and suggestions ("receive", "separate"). This effectively documents the expected failure behavior and provides clear guidance for developers encountering spelling errors.CONTRIBUTING.md (1)
44-46: Verify that referenced files and directories exist. Line 45 references.pre-commit-config.yaml, and line 114 references.github/ISSUE_TEMPLATE/. Confirm these files exist in the repository to prevent broken documentation. Additionally, line 118 links toCODE_OF_CONDUCT.md—verify this file is present.README.md (2)
19-23: Verify slash-command-manager installation command is current and correct. Lines 19–23 referenceuvx --from git+https://github.com/liatrio-labs/slash-command-manager sdd-install --yes. Confirm this repository exists, the command syntax is valid, andsdd-installsubcommand is available. Test locally before merging to ensure the quickstart guidance works for users.
27-31: Verify all prompt files exist inprompts/directory. The README references four prompts:generate-spec.md,generate-task-list-from-spec.md,manage-tasks.md, andvalidate-spec-implementation.md(lines 27–31 and 60). Confirm all these files are present in the repository and match the documented paths. A missing prompt will break the user experience.Also applies to: 60-60
docs/assets/css/styles.css (1)
8-55: Design system is well-defined and comprehensive. Lines 8–55 establish a complete CSS variable-based design system with semantic tokens for colors, spacing, typography, and layout. This approach promotes maintainability and reduces coupling to hardcoded values. Excellent foundation for the documentation site.
| <span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a> <span class="st">"MCP"</span><span class="ot">,</span></span> | ||
| <span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a> <span class="st">"spec-driven"</span><span class="ot">,</span></span> | ||
| <span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a> <span class="st">"liatrio-labs"</span><span class="ot">,</span></span> | ||
| <span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a> <span class="st">"pytest"</span><span class="ot">,</span></span> | ||
| <span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a> <span class="st">"ruff"</span><span class="ot">,</span></span> | ||
| <span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a> <span class="st">"typer"</span><span class="ot">,</span></span> | ||
| <span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a> <span class="st">"fastmcp"</span><span class="ot">,</span></span> | ||
| <span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a> <span class="st">"questionary"</span><span class="ot">,</span></span> | ||
| <span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a> <span class="st">"uvx"</span><span class="ot">,</span></span> | ||
| <span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a> <span class="st">"uv"</span><span class="ot">,</span></span> | ||
| <span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a> <span class="st">"pyyaml"</span><span class="ot">,</span></span> | ||
| <span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a> <span class="st">"tomli"</span><span class="ot">,</span></span> | ||
| <span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a> <span class="st">"hatchling"</span><span class="ot">,</span></span> | ||
| <span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a> <span class="st">"semantic-release"</span><span class="ot">,</span></span> | ||
| <span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a> <span class="st">"commitlint"</span><span class="ot">,</span></span> | ||
| <span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a> <span class="st">"markdownlint"</span><span class="ot">,</span></span> | ||
| <span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a> <span class="st">"GitHub"</span><span class="ot">,</span></span> | ||
| <span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a> <span class="st">"Python"</span><span class="ot">,</span></span> | ||
| <span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a> <span class="st">"JSON"</span><span class="ot">,</span></span> | ||
| <span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a> <span class="st">"YAML"</span><span class="ot">,</span></span> | ||
| <span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a> <span class="st">"CLI"</span><span class="ot">,</span></span> | ||
| <span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a> <span class="st">"MCP"</span><span class="ot">,</span></span> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate "MCP" entry in documented words array.
The code block showing the .cspell.json configuration includes "MCP" twice in the words array (lines cb1-17 and cb1-38 of the displayed code).
If this reflects the actual .cspell.json file, remove the duplicate entry:
"words": [
"Liatrio",
"slash-man",
"SDD",
- "MCP",
"spec-driven",
...
"CLI",
"MCP",
"HTTP",Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In docs/references/4___05-task-01-proofs-dark.html around lines 457 to 478 there
is a duplicate "MCP" entry in the documented words array; remove the redundant
"MCP" entry so each word appears only once in the .cspell.json/words list (keep
one occurrence and delete the other).
| <style> | ||
| :root { | ||
| /* Liatrio Brand Colors - Dark Theme */ | ||
| --bg-primary: #111111; | ||
| --bg-secondary: #1e1e1e; | ||
| --bg-tertiary: #3a3a3a; | ||
| --text-primary: #ffffff; | ||
| --text-secondary: #eeeeee; | ||
| --text-muted: #9c9c9c; | ||
| --accent-primary: #24AE1D; | ||
| --accent-secondary: #89DF00; | ||
| --accent-lagoon: #00C1DB; | ||
| --accent-deep-sea: #007DAA; | ||
| --accent-hot-red: #FF5100; | ||
| --accent-flame: #FFAA00; | ||
| --border-color: #444444; | ||
| --code-bg: #1e1e1e; | ||
| --code-border: #3a3a3a; | ||
| } | ||
|
|
||
| * { | ||
| box-sizing: border-box; | ||
| } | ||
|
|
||
| body { | ||
| font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | ||
| background-color: var(--bg-primary); | ||
| color: var(--text-primary); | ||
| line-height: 1.6; | ||
| margin: 0; | ||
| padding: 0; | ||
| font-size: 16px; | ||
| } | ||
|
|
||
| .container { | ||
| max-width: 1200px; | ||
| margin: 0 auto; | ||
| padding: 2rem; | ||
| } | ||
|
|
||
| /* Typography */ | ||
| h1, | ||
| h2, | ||
| h3, | ||
| h4, | ||
| h5, | ||
| h6 { | ||
| font-family: 'Clash Display', 'Anybody', 'DM Sans', sans-serif; | ||
| font-weight: 700; | ||
| color: var(--text-primary); | ||
| margin-top: 2rem; | ||
| margin-bottom: 1rem; | ||
| line-height: 1.2; | ||
| } | ||
|
|
||
| h1 { | ||
| font-size: 2.5rem; | ||
| border-bottom: 3px solid var(--accent-primary); | ||
| padding-bottom: 0.5rem; | ||
| } | ||
|
|
||
| h2 { | ||
| font-size: 2rem; | ||
| border-bottom: 2px solid var(--border-color); | ||
| padding-bottom: 0.3rem; | ||
| } | ||
|
|
||
| h3 { | ||
| font-size: 1.5rem; | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| h4 { | ||
| font-size: 1.25rem; | ||
| color: var(--accent-lagoon); | ||
| } | ||
|
|
||
| p { | ||
| margin-bottom: 1rem; | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* Links */ | ||
| a { | ||
| color: var(--accent-primary); | ||
| text-decoration: none; | ||
| transition: color 0.2s ease; | ||
| } | ||
|
|
||
| a:hover { | ||
| color: var(--accent-secondary); | ||
| text-decoration: underline; | ||
| } | ||
|
|
||
| /* Lists */ | ||
| ul, | ||
| ol { | ||
| margin-bottom: 1rem; | ||
| padding-left: 2rem; | ||
| } | ||
|
|
||
| li { | ||
| margin-bottom: 0.5rem; | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* Code */ | ||
| code { | ||
| background-color: var(--code-bg); | ||
| color: var(--accent-secondary); | ||
| padding: 0.2rem 0.4rem; | ||
| border-radius: 4px; | ||
| font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; | ||
| font-size: 0.9em; | ||
| border: 1px solid var(--code-border); | ||
| } | ||
|
|
||
| pre { | ||
| background-color: var(--code-bg); | ||
| border: 1px solid var(--code-border); | ||
| border-radius: 8px; | ||
| padding: 1rem; | ||
| overflow-x: auto; | ||
| margin-bottom: 1rem; | ||
| } | ||
|
|
||
| pre code { | ||
| background: none; | ||
| border: none; | ||
| padding: 0; | ||
| color: var(--text-primary); | ||
| } | ||
|
|
||
| /* Source code blocks styling */ | ||
| .sourceCode { | ||
| background-color: var(--code-bg); | ||
| border: 1px solid var(--code-border); | ||
| border-radius: 8px; | ||
| padding: 1rem; | ||
| overflow-x: auto; | ||
| margin-bottom: 1rem; | ||
| } | ||
|
|
||
| .sourceCode code { | ||
| background: none; | ||
| border: none; | ||
| padding: 0; | ||
| color: var(--text-primary); | ||
| font-size: 0.9em; | ||
| } | ||
|
|
||
| /* Syntax highlighting for dark theme */ | ||
| .sourceCode .fu { | ||
| color: var(--accent-primary); | ||
| } | ||
|
|
||
| /* function/constructor */ | ||
| .sourceCode .dt { | ||
| color: var(--accent-lagoon); | ||
| } | ||
|
|
||
| /* data type */ | ||
| .sourceCode .st { | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| /* string */ | ||
| .sourceCode .ot { | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* other */ | ||
| .sourceCode .ch { | ||
| color: var(--accent-flame); | ||
| } | ||
|
|
||
| /* character */ | ||
| .sourceCode .kw { | ||
| color: var(--accent-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| /* keyword */ | ||
| .sourceCode .at { | ||
| color: var(--accent-lagoon); | ||
| } | ||
|
|
||
| /* attribute */ | ||
| .sourceCode .ex { | ||
| color: var(--text-primary); | ||
| } | ||
|
|
||
| /* executable */ | ||
| .sourceCode .bu { | ||
| color: var(--accent-primary); | ||
| } | ||
|
|
||
| /* built-in */ | ||
| .sourceCode .op { | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* operator */ | ||
| .sourceCode .co { | ||
| color: var(--text-muted); | ||
| font-style: italic; | ||
| } | ||
|
|
||
| /* comment */ | ||
| .sourceCode .in { | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| /* inline code */ | ||
| .sourceCode .ss { | ||
| color: var(--accent-primary); | ||
| } | ||
|
|
||
| /* special */ | ||
|
|
||
| /* Blockquotes */ | ||
| blockquote { | ||
| border-left: 4px solid var(--accent-primary); | ||
| margin: 1rem 0; | ||
| padding: 0.5rem 1rem; | ||
| background-color: var(--bg-secondary); | ||
| color: var(--text-muted); | ||
| } | ||
|
|
||
| /* Tables */ | ||
| table { | ||
| width: 100%; | ||
| border-collapse: collapse; | ||
| margin-bottom: 1rem; | ||
| background-color: var(--bg-secondary); | ||
| } | ||
|
|
||
| th, | ||
| td { | ||
| padding: 0.75rem; | ||
| text-align: left; | ||
| border-bottom: 1px solid var(--border-color); | ||
| } | ||
|
|
||
| th { | ||
| background-color: var(--bg-tertiary); | ||
| color: var(--text-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| td { | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| tr:hover { | ||
| background-color: var(--bg-tertiary); | ||
| } | ||
|
|
||
| /* Horizontal Rule */ | ||
| hr { | ||
| border: none; | ||
| height: 2px; | ||
| background: linear-gradient(to right, var(--accent-primary), var(--accent-lagoon)); | ||
| margin: 2rem 0; | ||
| } | ||
|
|
||
| /* Status Indicators */ | ||
| .status-pass { | ||
| color: var(--accent-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| .status-fail { | ||
| color: var(--accent-hot-red); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| .status-warning { | ||
| color: var(--accent-flame); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| /* Proof artifacts and code references */ | ||
| .code-ref { | ||
| background-color: var(--bg-tertiary); | ||
| padding: 0.1rem 0.3rem; | ||
| border-radius: 3px; | ||
| font-family: monospace; | ||
| font-size: 0.85em; | ||
| } | ||
|
|
||
| /* Section styling */ | ||
| .executive-summary { | ||
| background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%); | ||
| padding: 1.5rem; | ||
| border-radius: 8px; | ||
| margin-bottom: 2rem; | ||
| border-left: 5px solid var(--accent-primary); | ||
| } | ||
|
|
||
| /* Metrics styling */ | ||
| .metrics { | ||
| display: grid; | ||
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | ||
| gap: 1rem; | ||
| margin: 1rem 0; | ||
| } | ||
|
|
||
| .metric-card { | ||
| background-color: var(--bg-secondary); | ||
| padding: 1rem; | ||
| border-radius: 6px; | ||
| border: 1px solid var(--border-color); | ||
| } | ||
|
|
||
| /* Strong text styling */ | ||
| strong { | ||
| color: var(--accent-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| /* Checkmarks for success indicators */ | ||
| .checkmark { | ||
| color: var(--accent-primary); | ||
| font-weight: bold; | ||
| } | ||
|
|
||
| /* Responsive design */ | ||
| @media (max-width: 768px) { | ||
| .container { | ||
| padding: 1rem; | ||
| } | ||
|
|
||
| h1 { | ||
| font-size: 2rem; | ||
| } | ||
|
|
||
| h2 { | ||
| font-size: 1.5rem; | ||
| } | ||
| } | ||
|
|
||
| /* Navigation */ | ||
| .nav-header { | ||
| background-color: rgba(26, 31, 35, 0.95); | ||
| border-bottom: 1px solid var(--border-color); | ||
| padding: 1rem 0; | ||
| position: sticky; | ||
| top: 0; | ||
| z-index: 1000; | ||
| backdrop-filter: blur(10px); | ||
| } | ||
|
|
||
| .nav-container { | ||
| max-width: 1200px; | ||
| margin: 0 auto; | ||
| padding: 0 2rem; | ||
| display: flex; | ||
| justify-content: space-between; | ||
| align-items: center; | ||
| } | ||
|
|
||
| .nav-links { | ||
| display: flex; | ||
| list-style: none; | ||
| gap: 2rem; | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
|
|
||
| .nav-links a { | ||
| color: var(--text-secondary); | ||
| text-decoration: none; | ||
| font-weight: 500; | ||
| transition: color 0.2s ease; | ||
| } | ||
|
|
||
| .nav-links a:hover { | ||
| color: var(--accent-secondary); | ||
| text-decoration: none; | ||
| } | ||
|
|
||
| .logo-link { | ||
| display: flex; | ||
| align-items: center; | ||
| text-decoration: none; | ||
| color: var(--text-primary); | ||
| font-weight: 600; | ||
| font-size: 1.1rem; | ||
| } | ||
|
|
||
| .logo-link:hover { | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| @media (max-width: 768px) { | ||
| .nav-container { | ||
| flex-direction: column; | ||
| gap: 1rem; | ||
| padding: 0 1rem; | ||
| } | ||
|
|
||
| .nav-links { | ||
| flex-wrap: wrap; | ||
| justify-content: center; | ||
| gap: 1rem; | ||
| } | ||
| } | ||
| </style> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Extract duplicated CSS to a shared stylesheet.
This file contains 408 lines of embedded CSS that appears to be duplicated across multiple HTML documentation pages (including files 4___05-task-01-proofs-dark.html, 7___05-task-04-proofs-dark.html, and others mentioned in the AI summary).
Extract the common CSS to docs/assets/css/styles.css (which is already referenced by other pages like video-overview.html) and replace the embedded styles with a link tag:
- <style>
- :root {
- /* Liatrio Brand Colors - Dark Theme */
- --bg-primary: #111111;
- ...
- /* 400+ lines of CSS */
- }
- </style>
+ <link rel="stylesheet" href="../assets/css/styles.css">This will:
- Eliminate code duplication across multiple HTML files
- Enable browser caching of the stylesheet
- Make future styling updates much easier
- Reduce the size of each HTML file significantly
Committable suggestion skipped: line range outside the PR's diff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
55-55: MCP phrasing may signal continued primary integration despite server removal.Line 55 states: "While SDD works with plain Markdown, the prompts are structured for MCP, IDE agents, or other AI integrations."
Given the PR removes the Python MCP server (mcp_server/), this phrasing might mislead users into thinking MCP is still a primary or recommended path. The prompts are no longer actively served via MCP; they're just compatible with MCP-capable agents that fetch them externally. Reword to clarify that MCP is an optional external integration, not a built-in feature.
Consider revising to clarify scope:
-- **Stay automation ready:** While SDD works with plain Markdown, the prompts are structured for MCP, IDE agents, or other AI integrations. +- **Stay automation ready:** While SDD works with plain Markdown, the prompts are compatible with IDE agents (Cursor, Windsurf, Claude Code) and external systems that support Markdown or MCP.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(4 hunks)
🔇 Additional comments (1)
README.md (1)
17-27: The search result was too generic. I need to search more specifically for the liatrio-labs slash-command-manager repository.The results still haven't isolated the liatrio-labs/slash-command-manager repo specifically. Let me search more directly for the
sdd-installcommand mentioned in Option 2, which may help identify the canonical current version:Let me search directly for the liatrio-labs/spec-driven-workflow repository:
Based on my web search attempts, I was unable to find publicly available documentation for the
liatrio-labs/slash-command-managerrepository that specifies which command is canonical or whether both coexist as valid alternatives.The original review comment correctly identifies a real inconsistency: the README displays two fundamentally different commands with different syntax and behavior. However, without access to the slash-command-manager repository's documentation or the PR discussion context, I cannot determine definitively which command is correct or currently supported.
Verify the slash-command-manager installation instructions with your team or project maintainers. Check the slash-command-manager repository's current documentation or recent commits to confirm:
- Whether both
slash-man generateandsdd-installcommands are valid and supported- If both are valid, document when to use each
- If only one is current, update the README to show the canonical command consistently in both locations (lines 21–27 and 156–158)
Updated README.md to reflect the complete Spec-Driven Development workflow with: - New directory structure: docs/specs/[NN]-spec-[feature-name]/ - Three-phase task generation process with parent task review - Proof artifacts structure and creation requirements - Enhanced four-stage workflow including validation stage with auto-discovery - Validation gates and coverage matrix details - Links to comprehensive SDD Playbook documentation - Updated mermaid diagram showing all workflow phases and interactions - Clarified checkpoint modes and structured execution patterns This commit captures the trimmed-to-prompts workflow with complete stage descriptions, artifact requirements, and validation processes.
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
♻️ Duplicate comments (6)
docs/references/5___05-task-02-proofs-dark.html (1)
11-419: Extract duplicated CSS to shared stylesheet.This file contains the same 408 lines of embedded CSS (lines 11-419) found in files 7, 2, and 8. Apply the same refactor: extract to
docs/assets/css/styles.cssand replace with a single link tag.docs/common-questions.html (1)
10-155: Extract embedded font declarations to a shared stylesheet.This file embeds the same 143 lines of DM Sans @font-face declarations (lines 13-155) as docs/reference-materials.html and docs/comparison.html. These should be centralized in
docs/assets/css/styles.cssto eliminate duplication.docs/comparison.html (1)
10-155: Extract embedded font declarations to a shared stylesheet.This file embeds the same 143 lines of DM Sans @font-face declarations (lines 13-155) as files 2 and 5. Centralize these in
docs/assets/css/styles.css.docs/references/8___VALIDATION_REPORT-dark.html (1)
11-418: Extract embedded CSS to shared stylesheet.This file embeds CSS styling (lines 11-418) that should be centralized in
docs/assets/css/styles.cssalong with other reference pages..github/workflows/ci.yml (1)
14-30: Add job-level permissions block to comply with security best practices.The lint job (lines 14–30) lacks an explicit
permissionsblock. Per the CodeQL static analysis, add a minimal permissions block afterruns-onto document least-privilege access:lint: name: Run Linting runs-on: ubuntu-latest + permissions: + contents: read steps:This documents that the job only needs read access to the repository content (for checkout) and does not require any write or deployment permissions.
docs/references/4___05-task-01-proofs-dark.html (1)
457-478: ** Duplicate "MCP" entry in demonstrated .cspell.json configuration.**The code block displayed on lines 440-495 shows "MCP" appearing twice in the
wordsarray (line cb1-17 and cb1-38). This reflects the actual configuration documented in the commit history.Note: A past review comment already flagged this issue. While duplicates don't break functionality (the spell checker ignores redundant entries), consider removing the redundant entry for cleaner configuration:
"words": [ "Liatrio", "slash-man", "SDD", - "MCP", "spec-driven", ... "CLI", "MCP", "HTTP",
🧹 Nitpick comments (9)
docs/assets/js/navigation.js (1)
13-14: Consider generalizing the basePath logic for future subdirectories.The current implementation only handles the
references/subdirectory. If additional subdirectories are added later, the navigation would break. Consider calculating the base path dynamically based on depth level.Apply this diff for a more extensible approach:
- // Determine base path for navigation links - const isReferencePage = pathParts.includes('references'); - const basePath = isReferencePage ? '../' : ''; + // Calculate base path based on depth (count non-empty path segments after domain) + const depthFromRoot = pathParts.filter(p => p && p !== 'index.html').length - 1; + const basePath = depthFromRoot > 0 ? '../'.repeat(depthFromRoot) : '';docs/index.html (1)
9-155: Consider moving embedded font declarations to external stylesheet.Lines 9-155 contain 18
@font-facerules for DM Sans variants embedded directly in the page<style>tag. This works but creates repetition across multiple HTML pages.Suggested improvement: Extract these to
docs/assets/css/fonts.cssand include it in the main stylesheet, reducing duplication if other pages (index.html, comparison.html, video-overview.html, etc.) use the same fonts.This is a maintainability optimization and does not affect functionality.
docs/developer-experience.html (2)
10-156: Consider extracting embedded font declarations to shared stylesheet (consistency with file 1).Lines 10-156 contain the same 18
@font-facerules embedded in<style>tags, duplicating the pattern fromdocs/index.html.For consistency and maintainability, extract these to
docs/assets/css/fonts.cssand link via the main stylesheet (docs/assets/css/styles.css). This reduces duplication across all documentation pages.
395-434: Metrics are concrete and compelling; verify sourcing.Lines 403-422 present impressive metrics:
- 6 minutes total execution time (idea to verified implementation)
- 4-8 hours saved vs. manual process
- 90% time reduction
These metrics are sourced from the cspell case study documented in the git log (file 5). However, for external stakeholders or formal documentation, consider adding a footnote or inline reference to the case study artifacts (
docs/references/9___git-log-for-cspell-feature-dark.html) to establish credibility.Suggestion: Add a subtle link or note: "Based on actual Liatrio case study: View implementation details"
CONTRIBUTING.md (2)
42-62: Minor: Markdown capitalization inconsistency in testing section.Line 61 uses lowercase "markdown":
- Fix markdown formatting issuesShould follow official capitalization ("Markdown" as proper noun). This aligns with LanguageTool static analysis hint.
Suggested fix:
- Fix Markdown formatting issues
1-3: Minor: Title hyphenation for clarity.Line 1: "Spec Driven Development" should use hyphen for compound adjective when it precedes a noun.
Suggested fix (per LanguageTool):
-# Contributing to Spec Driven Development (SDD) Workflow +# Contributing to Spec-Driven Development (SDD) Workflowdocs/assets/css/styles.css (3)
1562-1607: Consider alternatives to hardcoded Google Drive viewer class selectors.Lines 1562–1607 target obfuscated class names from Google's embedded viewer (
.ndfHFb-c4YZDc-*). These are implementation details that Google may change without notice, breaking the embed's styling. This approach is fragile.Recommendations:
- Prioritize styling the parent
.video-wrappercontainer instead.- Document the risk and add a comment explaining why these selectors exist.
- Consider server-side rendering or a dedicated video component library as a longer-term alternative.
If these Google-specific selectors must remain, add a clarifying comment:
/* * NOTE: These selectors target Google Drive embedded viewer classes. * They are implementation details subject to change without notice. * Monitor and update if Google's viewer styling breaks. */ .video-wrapper .ndfHFb-c4YZDc-oKVyEf-haAclf { /* ... */ }
8-55: CSS tokens are well-organized; consider documenting the semantic meaning of color and spacing variables.The
:roottoken set uses clear semantic naming (e.g.,--text-primary,--accent-green,--box-bg). This is excellent for maintainability. However, adding brief inline comments explaining the intent of key tokens would help future maintainers understand which variables to use for which contexts.For example:
--accent-green-dark: Brand accent (calls-to-action, links)--bg-section: Section backgrounds (alternating)--box-bg: Card/component backgroundsThis is a minor quality-of-life improvement and can be deferred.
247-286: Several card/box component styles could be consolidated to reduce duplication.Multiple selectors follow the same pattern:
.phase-box,.phase-card,.progression-box,.audit-box,.objection-card,.adaptability-card, and others. They share common styling (background, border, padding, transition, hover effect). While the current approach is explicit and easy to override per component, it creates maintenance overhead and increases file size.Consider creating a reusable card utility class (e.g.,
.card-base) or mixing in common styles via CSS or a preprocessor.This is an optional refactor that can be deferred if the current approach is intentional for design flexibility.
Also applies to: 352-424, 821-860, 899-918, 1269-1314, 1454-1498
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (22)
docs/assets/fonts/dm-sans-100-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-100-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-200-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-200-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-300-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-300-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-400-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-400-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-500-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-500-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-600-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-600-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-700-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-700-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-800-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-800-regular.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-900-italic.ttfis excluded by!**/*.ttfdocs/assets/fonts/dm-sans-900-regular.ttfis excluded by!**/*.ttfdocs/assets/images/background/texture05-dark.jpegis excluded by!**/*.jpegdocs/assets/images/favicon.svgis excluded by!**/*.svgdocs/assets/images/logo-liatrio.svgis excluded by!**/*.svguv.lockis excluded by!**/*.lock
📒 Files selected for processing (61)
.github/CODEOWNERS(1 hunks).github/workflows/ci.yml(1 hunks).github/workflows/release.yml(3 hunks).pre-commit-config.yaml(2 hunks).python-version(0 hunks).releaserc.toml(1 hunks)CODE_OF_CONDUCT.md(1 hunks)CONTRIBUTING.md(3 hunks)README.md(2 hunks)__version__.py(0 hunks)docs/archive/refactor-sdd-workflow-prompts.md(0 hunks)docs/assets/css/styles.css(1 hunks)docs/assets/js/footer.js(1 hunks)docs/assets/js/navigation.js(1 hunks)docs/common-questions.html(1 hunks)docs/comparison.html(1 hunks)docs/developer-experience.html(1 hunks)docs/index.html(1 hunks)docs/mcp-prompt-support.md(0 hunks)docs/operations.md(0 hunks)docs/reference-materials.html(1 hunks)docs/references/2___05-spec-pre-commit-cspell-dark.html(1 hunks)docs/references/3___05-tasks-pre-commit-cspell-dark.html(1 hunks)docs/references/4___05-task-01-proofs-dark.html(1 hunks)docs/references/5___05-task-02-proofs-dark.html(1 hunks)docs/references/6___05-task-03-proofs-dark.html(1 hunks)docs/references/7___05-task-04-proofs-dark.html(1 hunks)docs/references/8___VALIDATION_REPORT-dark.html(1 hunks)docs/references/9___git-log-for-cspell-feature-dark.html(1 hunks)docs/slash-command-generator.md(0 hunks)docs/video-overview.html(1 hunks)mcp_server/__init__.py(0 hunks)mcp_server/config.py(0 hunks)mcp_server/prompt_utils.py(0 hunks)mcp_server/prompts_loader.py(0 hunks)pyproject.toml(0 hunks)server.py(0 hunks)slash_commands/__init__.py(0 hunks)slash_commands/cli.py(0 hunks)slash_commands/config.py(0 hunks)slash_commands/detection.py(0 hunks)slash_commands/generators.py(0 hunks)slash_commands/writer.py(0 hunks)tasks/0001-spec-sdd-mcp-poc.md(0 hunks)tasks/0002-spec-open-source-ready.md(0 hunks)tasks/0003-spec-slash-command-generator.md(0 hunks)tasks/0004-spec-review-fixes.md(0 hunks)tasks/0005-spec-fix-bundled-prompts-path.md(0 hunks)tasks/tasks-0001-spec-sdd-mcp-poc.md(0 hunks)tasks/tasks-0002-spec-open-source-ready.md(0 hunks)tasks/tasks-0003-spec-slash-command-generator.md(0 hunks)tasks/tasks-0004-spec-review-fixes.md(0 hunks)tasks/tasks-0005-spec-fix-bundled-prompts-path.md(0 hunks)tests/conftest.py(0 hunks)tests/test_cli.py(0 hunks)tests/test_config.py(0 hunks)tests/test_detection.py(0 hunks)tests/test_generators.py(0 hunks)tests/test_prompts.py(0 hunks)tests/test_validation.py(0 hunks)tests/test_writer.py(0 hunks)
💤 Files with no reviewable changes (36)
- tasks/0001-spec-sdd-mcp-poc.md
- slash_commands/detection.py
- docs/archive/refactor-sdd-workflow-prompts.md
- docs/mcp-prompt-support.md
- tasks/0003-spec-slash-command-generator.md
- tests/test_prompts.py
- tasks/tasks-0005-spec-fix-bundled-prompts-path.md
- docs/slash-command-generator.md
- pyproject.toml
- mcp_server/config.py
- tests/test_generators.py
- slash_commands/config.py
- tests/conftest.py
- tasks/tasks-0001-spec-sdd-mcp-poc.md
- tasks/0004-spec-review-fixes.md
- slash_commands/writer.py
- tasks/tasks-0002-spec-open-source-ready.md
- tests/test_detection.py
- docs/operations.md
- slash_commands/cli.py
- slash_commands/init.py
- tests/test_config.py
- server.py
- tasks/0002-spec-open-source-ready.md
- mcp_server/init.py
- slash_commands/generators.py
- mcp_server/prompts_loader.py
- .python-version
- mcp_server/prompt_utils.py
- tests/test_cli.py
- tests/test_writer.py
- tests/test_validation.py
- tasks/0005-spec-fix-bundled-prompts-path.md
- tasks/tasks-0003-spec-slash-command-generator.md
- version.py
- tasks/tasks-0004-spec-review-fixes.md
🧰 Additional context used
🪛 GitHub Check: CodeQL
.github/workflows/ci.yml
[warning] 15-30: Workflow does not contain permissions
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {{contents: read}}
🪛 LanguageTool
CONTRIBUTING.md
[grammar] ~1-~1: Use a hyphen to join words.
Context: # Contributing to Spec Driven Development (SDD) Workflow Thank...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~61-~61: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ... This will: - Check YAML syntax - Fix markdown formatting issues - Validate commit mes...
(MARKDOWN_NNP)
[uncategorized] ~114-~114: The official name of this software platform is spelled with a capital “H”.
Context: ...s Use the GitHub issue templates under .github/ISSUE_TEMPLATE/ for bug reports, featu...
(GITHUB)
CODE_OF_CONDUCT.md
[style] ~22-~22: Try using a synonym here to strengthen your wording.
Context: ...ind - Trolling, insulting or derogatory comments, and personal or political attacks - Pu...
(COMMENT_REMARK)
🔇 Additional comments (22)
CODE_OF_CONDUCT.md (1)
1-77: LGTM! Well-established governance document.The Contributor Covenant 2.1 is widely adopted and provides clear community standards. The enforcement contact information (Line 39) appropriately leverages GitHub-specific mechanisms for reporting.
README.md (1)
17-40: Quickstart now includes validation step.The TLDR quickstart has been updated to include validation as step 4 (Line 37), addressing the previous concern about omitting a critical lifecycle stage. The five-step flow now matches the full four-prompt workflow described later in the document.
.github/CODEOWNERS (1)
1-1: LGTM! Valid CODEOWNERS configuration.The wildcard pattern correctly assigns all repository paths to the Liatrio Labs Maintainers team, establishing clear ownership for code review and approval.
docs/assets/js/footer.js (1)
1-32: LGTM! Secure and well-structured footer component.The IIFE pattern provides proper isolation, the external link includes appropriate security attributes (
rel="noopener noreferrer"), and the script gracefully handles missing footer elements. TheinnerHTMLusage is safe since it contains no user input.docs/assets/js/navigation.js (1)
25-50: LGTM! Clean navigation injection with proper security.The navigation component correctly handles active state detection, uses template literals safely (no user input), and includes appropriate attributes for the external logo link.
docs/video-overview.html (1)
182-190: LGTM! Accessible video embed with lazy loading.The iframe includes an appropriate
titleattribute for accessibility and usesloading="lazy"for performance optimization. The Google Drive embed is properly configured..releaserc.toml (1)
1-24: Configuration syntax is correct.The
[semantic_release.changelog.default_templates]structure is the documented format for python-semantic-release, and bothchangelog_fileandoutput_formatare valid keys in this section. Theoutput_formatvalue of "md" is supported. Your configuration matches the required format and requires no changes.docs/references/7___05-task-04-proofs-dark.html (1)
11-442: The suggested fix is incompatible with the existing stylesheet and will break styling.While the CSS duplication is real (432 lines duplicated across 4 files), the review's proposed solution to link to
docs/assets/css/styles.cssis incorrect. The embedded CSS uses an incompatible variable naming scheme (e.g.,--bg-primary,--accent-primary,--text-primary) compared to the existing stylesheet (e.g.,--grey-800,--primary-green,--bg-dark,--text-primary-dark). Linking to the existing stylesheet would break the styling of these 4 reference pages.To properly address the duplication, either:
- Extract the embedded CSS to a new stylesheet (e.g.,
docs/assets/css/references-dark.css) specific to these reference pages, or- Refactor and merge both stylesheets to use a unified variable scheme (higher risk, affects the 6 other pages already using the existing stylesheet)
The first approach is safer and achieves the stated goals of reducing file size and enabling centralized updates for the reference pages.
Likely an incorrect or invalid review comment.
docs/index.html (1)
420-421: Verify navigation and footer script paths.Lines 420-421 load external JS files for navigation and footer injection:
<script src="assets/js/navigation.js"></script> <script src="assets/js/footer.js"></script>Ensure these files exist and are correctly deployed to
docs/assets/js/. Verify relative path resolution when pages are served from subdirectories (e.g.,docs/references/).docs/references/3___05-tasks-pre-commit-cspell-dark.html (1)
1-50: ✅ Well-structured dark-themed documentation page.The dark theme implementation (lines 11-414) is consistent, readable, and follows the Liatrio brand colors defined in the CSS variables. The task list styling (lines 246-319) with checkbox states is intuitive for tracking progress.
docs/references/6___05-task-03-proofs-dark.html (1)
457-568: ✅ Clear test scenario documentation with realistic error output.The test scenario (lines 457-568) effectively demonstrates cspell hook behavior:
- Test file with intentional errors (lines 460-474)
- Commit failure with exact error output (lines 484-492)
- Success path after fix (lines 517-537)
- Comprehensive demo criteria verification (lines 548-556)
The error messages and output format align with expected cspell behavior. Documentation is excellent for contributors to understand the workflow.
docs/references/9___git-log-for-cspell-feature-dark.html (1)
469-1474: ✅ Comprehensive and transparent commit history documentation.The git log with full diffs (lines 469-1474) provides excellent traceability:
- All 4 commits documented chronologically with metadata (author, date, hash)
- Each commit includes clear bullet-point summary and complete diff
- Implementation summary (lines 1429-1466) tracks completion status and metrics
- Timeline (5-minute execution) and file impact statistics are valuable for stakeholders
This is an exemplary reference document for audit trails and team knowledge.
docs/references/4___05-task-01-proofs-dark.html (1)
420-495: ✅ Clear configuration file documentation with validation output.Lines 420-495 effectively demonstrate the complete
.cspell.jsonstructure and validation:
- Configuration content is comprehensive (lines 440-495)
- JSON validation output confirms correctness (lines 496-507)
- Demo criteria verification checklist (lines 516-525) is thorough
- Proof artifacts summary (lines 526-535) documents key deliverables
.github/workflows/release.yml (3)
1-15: Verify workflow trigger matches CI workflow name.Line 12 specifies the trigger:
workflows: ["CI - Tests and Linting"]This must match the exact name of the CI workflow job in
.github/workflows/ci.yml. Per the PR summary, CI workflows were simplified (Python test jobs removed, renamed to lint-only checks).Action required: Confirm that
.github/workflows/ci.ymlhas a workflow or job named exactly"CI - Tests and Linting"to ensure this release workflow triggers correctly.
32-73: ✅ Secure authentication flow with Chainguard Octo STS.The updated release workflow implements:
- Chainguard Octo STS authentication (lines 32-37) for secure token issuance
- Git author configuration using GitHub App User ID (lines 45-55)
- PAT-based push to origin with sanity check (lines 57-62)
- Explicit Python 3.12 setup (lines 64-67)
- semantic-release CLI invocation (lines 69-73)
This is a significant improvement over previous action-based release automation. Ensure
.releaserc.tomlconfiguration file exists and is properly versioned.
69-73: Confirm semantic-release configuration and version constraints.Lines 69-73 install and run semantic-release:
pip install "python-semantic-release>=10.0.0,<11.0.0" semantic-release -c .releaserc.toml versionVerification needed:
- Ensure
.releaserc.tomlexists at repository root and is properly configured for semantic versioning.- Confirm the version constraint
>=10.0.0,<11.0.0aligns with current releases (as of Nov 2025, this may be outdated; recommend verifying latest stable version).- Verify the
-c .releaserc.tomlconfig file path is correct.docs/developer-experience.html (1)
167-393: ✅ Compelling before/after narrative effectively demonstrates workflow value.The developer experience page uses a strong narrative structure:
- Before (lines 185-286): Realistic manual toil scenario with cognitive load, error potential, and lost productivity
- After (lines 289-393): AI-assisted workflow highlighting context-aware config, autonomous problem-solving, instant feedback, and self-documenting processes
- Real-world examples (cspell integration) ground the abstract concepts
Content successfully bridges gap between abstract workflow improvements and tangible benefits. Excellent for stakeholder communication.
CONTRIBUTING.md (3)
1-30: ✅ Successfully pivots contribution guide to prompts-only workflow.Lines 1-30 clearly reframe the project:
- Overview (lines 7-11) now emphasizes documentation improvements, prompt improvements, and examples (vs. previous MCP server focus)
- Getting Started (lines 17-24) shifts from
uvdependency to "Python 3.12+ for pre-commit hooks"- Commands simplified to pre-commit invocations (lines 35-40)
This is a clean, clear migration path for contributors and aligns with the PR's goal of trimming to a prompts-only deliverable.
112-126: ✅ Strong addition of Code of Conduct and community standards.Lines 116-121 add community values and escalation path:
- Clear reference to CODE_OF_CONDUCT.md (line 118)
- Contact information for Liatrio Maintainers (line 120)
- GitHub private reporting option (line 120)
This strengthens community standards and provides clear escalation paths. Excellent addition for inclusive, respectful collaboration.
89-93: Verify semantic-release configuration documentation.Lines 89-93 mention semantic versioning and
python-semantic-release:Semantic versioning and releases are automated in CI using `python-semantic-release`. Contributors only need to follow Conventional Commits; no manual tagging is required.This correctly sets expectations for contributors. However, ensure
.releaserc.tomlis properly documented elsewhere (e.g., in README.md or separate RELEASING.md) so maintainers understand the release workflow setup.docs/assets/css/styles.css (2)
297-302: No issues found; asset file exists and will load correctly.The verification confirms that
docs/assets/images/background/texture05-dark.jpegis present in the repository at the expected location. The CSS references at lines 297–302, 764, and 768 will resolve correctly and the background images will load without errors.
58-58: I need to examine the styles.css file more closely to verify if DM Sans is properly loaded there.Based on the verification of the codebase:
DM Sans font is properly loaded and available. No action required.
The browser will select the first font in the list that is installed or that can be downloaded using a @font-face at-rule. The verification confirms:
Google Fonts CDN links are present: Multiple HTML files (docs/references/*.html) contain
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap">Local font files are embedded: DM Sans TTF files exist in
docs/assets/fonts/dm-sans-*.ttfwith multiple weight variants (100, 200, 300, 400, 500, etc.)Font is accessible: When styles.css declares
font-family: 'DM Sans', the browser will use either the Google Fonts version or local TTF files, ensuring consistent rendering.The fallback chain (-apple-system, BlinkMacSystemFont, 'Segoe UI') will only be used if DM Sans fails to load, which is not the case here.
| <style> | ||
| :root { | ||
| /* Liatrio Brand Colors - Dark Theme */ | ||
| --bg-primary: #111111; | ||
| --bg-secondary: #1e1e1e; | ||
| --bg-tertiary: #3a3a3a; | ||
| --text-primary: #ffffff; | ||
| --text-secondary: #eeeeee; | ||
| --text-muted: #9c9c9c; | ||
| --accent-primary: #24AE1D; | ||
| --accent-secondary: #89DF00; | ||
| --accent-lagoon: #00C1DB; | ||
| --accent-deep-sea: #007DAA; | ||
| --accent-hot-red: #FF5100; | ||
| --accent-flame: #FFAA00; | ||
| --border-color: #444444; | ||
| --code-bg: #1e1e1e; | ||
| --code-border: #3a3a3a; | ||
| } | ||
|
|
||
| * { | ||
| box-sizing: border-box; | ||
| } | ||
|
|
||
| body { | ||
| font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | ||
| background-color: var(--bg-primary); | ||
| color: var(--text-primary); | ||
| line-height: 1.6; | ||
| margin: 0; | ||
| padding: 0; | ||
| font-size: 16px; | ||
| } | ||
|
|
||
| .container { | ||
| max-width: 1200px; | ||
| margin: 0 auto; | ||
| padding: 2rem; | ||
| } | ||
|
|
||
| /* Typography */ | ||
| h1, | ||
| h2, | ||
| h3, | ||
| h4, | ||
| h5, | ||
| h6 { | ||
| font-family: 'Clash Display', 'Anybody', 'DM Sans', sans-serif; | ||
| font-weight: 700; | ||
| color: var(--text-primary); | ||
| margin-top: 2rem; | ||
| margin-bottom: 1rem; | ||
| line-height: 1.2; | ||
| } | ||
|
|
||
| h1 { | ||
| font-size: 2.5rem; | ||
| border-bottom: 3px solid var(--accent-primary); | ||
| padding-bottom: 0.5rem; | ||
| } | ||
|
|
||
| h2 { | ||
| font-size: 2rem; | ||
| border-bottom: 2px solid var(--border-color); | ||
| padding-bottom: 0.3rem; | ||
| } | ||
|
|
||
| h3 { | ||
| font-size: 1.5rem; | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| h4 { | ||
| font-size: 1.25rem; | ||
| color: var(--accent-lagoon); | ||
| } | ||
|
|
||
| p { | ||
| margin-bottom: 1rem; | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* Links */ | ||
| a { | ||
| color: var(--accent-primary); | ||
| text-decoration: none; | ||
| transition: color 0.2s ease; | ||
| } | ||
|
|
||
| a:hover { | ||
| color: var(--accent-secondary); | ||
| text-decoration: underline; | ||
| } | ||
|
|
||
| /* Lists */ | ||
| ul, | ||
| ol { | ||
| margin-bottom: 1rem; | ||
| padding-left: 2rem; | ||
| } | ||
|
|
||
| li { | ||
| margin-bottom: 0.5rem; | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| /* Code */ | ||
| code { | ||
| background-color: var(--code-bg); | ||
| color: var(--accent-secondary); | ||
| padding: 0.2rem 0.4rem; | ||
| border-radius: 4px; | ||
| font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; | ||
| font-size: 0.9em; | ||
| border: 1px solid var(--code-border); | ||
| } | ||
|
|
||
| pre { | ||
| background-color: var(--code-bg); | ||
| border: 1px solid var(--code-border); | ||
| border-radius: 8px; | ||
| padding: 1rem; | ||
| overflow-x: auto; | ||
| margin-bottom: 1rem; | ||
| } | ||
|
|
||
| pre code { | ||
| background: none; | ||
| border: none; | ||
| padding: 0; | ||
| color: var(--text-primary); | ||
| } | ||
|
|
||
| /* Blockquotes */ | ||
| blockquote { | ||
| border-left: 4px solid var(--accent-primary); | ||
| margin: 1rem 0; | ||
| padding: 0.5rem 1rem; | ||
| background-color: var(--bg-secondary); | ||
| color: var(--text-muted); | ||
| } | ||
|
|
||
| /* Tables */ | ||
| table { | ||
| width: 100%; | ||
| border-collapse: collapse; | ||
| margin-bottom: 1rem; | ||
| background-color: var(--bg-secondary); | ||
| } | ||
|
|
||
| th, | ||
| td { | ||
| padding: 0.75rem; | ||
| text-align: left; | ||
| border-bottom: 1px solid var(--border-color); | ||
| } | ||
|
|
||
| th { | ||
| background-color: var(--bg-tertiary); | ||
| color: var(--text-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| td { | ||
| color: var(--text-secondary); | ||
| } | ||
|
|
||
| tr:hover { | ||
| background-color: var(--bg-tertiary); | ||
| } | ||
|
|
||
| /* Horizontal Rule */ | ||
| hr { | ||
| border: none; | ||
| height: 2px; | ||
| background: linear-gradient(to right, var(--accent-primary), var(--accent-lagoon)); | ||
| margin: 2rem 0; | ||
| } | ||
|
|
||
| /* Status Indicators */ | ||
| .status-pass { | ||
| color: var(--accent-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| .status-fail { | ||
| color: var(--accent-hot-red); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| .status-warning { | ||
| color: var(--accent-flame); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| /* Proof artifacts and code references */ | ||
| .code-ref { | ||
| background-color: var(--bg-tertiary); | ||
| padding: 0.1rem 0.3rem; | ||
| border-radius: 3px; | ||
| font-family: monospace; | ||
| font-size: 0.85em; | ||
| } | ||
|
|
||
| /* Section styling */ | ||
| .executive-summary { | ||
| background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%); | ||
| padding: 1.5rem; | ||
| border-radius: 8px; | ||
| margin-bottom: 2rem; | ||
| border-left: 5px solid var(--accent-primary); | ||
| } | ||
|
|
||
| /* Metrics styling */ | ||
| .metrics { | ||
| display: grid; | ||
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | ||
| gap: 1rem; | ||
| margin: 1rem 0; | ||
| } | ||
|
|
||
| .metric-card { | ||
| background-color: var(--bg-secondary); | ||
| padding: 1rem; | ||
| border-radius: 6px; | ||
| border: 1px solid var(--border-color); | ||
| } | ||
|
|
||
| /* Strong text styling */ | ||
| strong { | ||
| color: var(--accent-primary); | ||
| font-weight: 600; | ||
| } | ||
|
|
||
| /* Navigation */ | ||
| .nav-header { | ||
| background-color: rgba(26, 31, 35, 0.95); | ||
| border-bottom: 1px solid var(--border-color); | ||
| padding: 1rem 0; | ||
| position: sticky; | ||
| top: 0; | ||
| z-index: 1000; | ||
| backdrop-filter: blur(10px); | ||
| } | ||
|
|
||
| .nav-container { | ||
| max-width: 1200px; | ||
| margin: 0 auto; | ||
| padding: 0 2rem; | ||
| display: flex; | ||
| justify-content: space-between; | ||
| align-items: center; | ||
| } | ||
|
|
||
| .nav-links { | ||
| display: flex; | ||
| list-style: none; | ||
| gap: 2rem; | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
|
|
||
| .nav-links a { | ||
| color: var(--text-secondary); | ||
| text-decoration: none; | ||
| font-weight: 500; | ||
| transition: color 0.2s ease; | ||
| } | ||
|
|
||
| .nav-links a:hover { | ||
| color: var(--accent-secondary); | ||
| text-decoration: none; | ||
| } | ||
|
|
||
| .logo-link { | ||
| display: flex; | ||
| align-items: center; | ||
| text-decoration: none; | ||
| color: var(--text-primary); | ||
| font-weight: 600; | ||
| font-size: 1.1rem; | ||
| } | ||
|
|
||
| .logo-link:hover { | ||
| color: var(--accent-secondary); | ||
| } | ||
|
|
||
| /* Responsive design */ | ||
| @media (max-width: 768px) { | ||
| .container { | ||
| padding: 1rem; | ||
| } | ||
|
|
||
| h1 { | ||
| font-size: 2rem; | ||
| } | ||
|
|
||
| h2 { | ||
| font-size: 1.5rem; | ||
| } | ||
|
|
||
| .nav-container { | ||
| flex-direction: column; | ||
| gap: 1rem; | ||
| padding: 0 1rem; | ||
| } | ||
|
|
||
| .nav-links { | ||
| flex-wrap: wrap; | ||
| justify-content: center; | ||
| gap: 1rem; | ||
| } | ||
| } | ||
| </style> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Extract embedded CSS to shared stylesheet.
This file embeds CSS styling (lines 11-324) that should be centralized in docs/assets/css/styles.css along with other reference page stylesheets.
🤖 Prompt for AI Agents
In docs/references/2___05-spec-pre-commit-cspell-dark.html around lines 11–324
the entire page-level CSS is embedded; extract these rules into
docs/assets/css/styles.css, remove the embedded <style> block from the HTML, and
replace it by adding a link to the new stylesheet in the document head (use the
project-relative path docs/assets/css/styles.css). Preserve all variable names,
selectors and specificity exactly as-is in the new file, deduplicate any rules
that already exist in other reference stylesheets, and verify the page still
renders correctly (run the docs build or open the page locally) after the
change.
docs/video-overview.html
Outdated
| /* Embedded DM Sans fonts - generated by embed-fonts.py */ | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-100-italic.ttf') format('truetype'); | ||
| font-weight: 100; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-200-italic.ttf') format('truetype'); | ||
| font-weight: 200; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-300-italic.ttf') format('truetype'); | ||
| font-weight: 300; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-400-italic.ttf') format('truetype'); | ||
| font-weight: 400; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-500-italic.ttf') format('truetype'); | ||
| font-weight: 500; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-600-italic.ttf') format('truetype'); | ||
| font-weight: 600; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-700-italic.ttf') format('truetype'); | ||
| font-weight: 700; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-800-italic.ttf') format('truetype'); | ||
| font-weight: 800; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-900-italic.ttf') format('truetype'); | ||
| font-weight: 900; | ||
| font-style: italic; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-100-regular.ttf') format('truetype'); | ||
| font-weight: 100; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-200-regular.ttf') format('truetype'); | ||
| font-weight: 200; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-300-regular.ttf') format('truetype'); | ||
| font-weight: 300; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-400-regular.ttf') format('truetype'); | ||
| font-weight: 400; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-500-regular.ttf') format('truetype'); | ||
| font-weight: 500; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-600-regular.ttf') format('truetype'); | ||
| font-weight: 600; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-700-regular.ttf') format('truetype'); | ||
| font-weight: 700; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-800-regular.ttf') format('truetype'); | ||
| font-weight: 800; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } | ||
|
|
||
| @font-face { | ||
| font-family: 'DM Sans'; | ||
| src: url('assets/fonts/dm-sans-900-regular.ttf') format('truetype'); | ||
| font-weight: 900; | ||
| font-style: normal; | ||
| font-display: swap; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Extract font declarations to a shared CSS file.
The 18 @font-face declarations (145 lines) are likely duplicated across all HTML pages in the docs site. This creates a maintenance burden and prevents browser caching of font definitions across page navigations.
Create a new file docs/assets/css/fonts.css with these declarations, then replace the embedded <style> block with:
<link rel="stylesheet" href="assets/css/fonts.css">This change should be applied to all HTML pages in the docs/ directory. Benefits:
- Single source of truth for font definitions
- Browser caching across page loads
- Easier maintenance (update once, not in every file)
- Reduced HTML payload size
🤖 Prompt for AI Agents
In docs/video-overview.html around lines 10 to 154, the file contains 18
repeated @font-face declarations embedded in a <style> block; extract those
declarations into a new file docs/assets/css/fonts.css and replace the embedded
block with a single <link rel="stylesheet" href="assets/css/fonts.css"> entry,
then update all HTML files under docs/ to reference the new fonts.css instead of
embedding the declarations so font rules are centralized and cacheable.
| **📚 For comprehensive documentation, examples, and detailed guides, visit the [SDD Playbook on GitHub Pages](https://liatrio-labs.github.io/spec-driven-workflow/):** | ||
|
|
||
| - **[SDD Playbook](https://liatrio-labs.github.io/spec-driven-workflow/)** — Complete overview and workflow guide | ||
| - **[Comparison](https://liatrio-labs.github.io/spec-driven-workflow/comparison.html)** — How SDD compares to other structured development tools | ||
| - **[Developer Experience](https://liatrio-labs.github.io/spec-driven-workflow/developer-experience.html)** — Real-world usage examples and patterns | ||
| - **[Common Questions](https://liatrio-labs.github.io/spec-driven-workflow/common-questions.html)** — FAQ and troubleshooting | ||
| - **[Video Overview](https://liatrio-labs.github.io/spec-driven-workflow/video-overview.html)** — Visual walkthrough of the workflow | ||
| - **[Reference Materials](https://liatrio-labs.github.io/spec-driven-workflow/reference-materials.html)** — Additional resources and examples |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify GitHub Pages site is deployed.
The README links to several GitHub Pages URLs (liatrio-labs.github.io/spec-driven-workflow/). Since the static HTML pages are added in this PR, ensure the GitHub Pages deployment is configured correctly.
🏁 Script executed:
#!/bin/bash
# Verify GitHub Pages configuration and key HTML files exist
echo "Checking for GitHub Pages configuration..."
if [ -f ".github/workflows/pages.yml" ] || [ -f ".github/workflows/deploy.yml" ]; then
echo "✓ GitHub Pages workflow found"
cat .github/workflows/pages*.yml .github/workflows/deploy*.yml 2>/dev/null | grep -A 5 "pages"
else
echo "⚠ No GitHub Pages workflow detected"
fi
echo -e "\nChecking for required HTML files..."
for page in index.html comparison.html developer-experience.html common-questions.html video-overview.html reference-materials.html; do
if [ -f "docs/$page" ]; then
echo "✓ docs/$page exists"
else
echo "✗ docs/$page missing"
fi
done
echo -e "\nChecking for required assets..."
[ -f "docs/assets/css/styles.css" ] && echo "✓ styles.css exists" || echo "✗ styles.css missing"
[ -f "docs/assets/js/navigation.js" ] && echo "✓ navigation.js exists" || echo "✗ navigation.js missing"
[ -f "docs/assets/js/footer.js" ] && echo "✓ footer.js exists" || echo "✗ footer.js missing"Length of output: 414
I need to investigate further. The HTML files exist, but there's no GitHub Pages workflow. Let me check for other GitHub Pages configuration methods and verify if Pages is actually enabled.Now let me check for other GitHub Pages configuration in the repo:Now let me check if the repo has any GitHub Pages configuration via scripts, and also check for _config.yml or other configs:
Let me check the actual structure and look for configuration:
Based on my verification, I've found that while all required HTML files and assets exist in the docs/ directory, there is no GitHub Pages deployment workflow detected. However, my investigation reveals an important nuance: GitHub Pages CAN deploy static HTML from the /docs folder without a workflow if configured via repository settings.
The original concern about verifying GitHub Pages deployment is valid but inconclusive without access to repository settings. The deployment could be configured through either:
- Repository Settings > Pages, where you select a branch and optionally choose a folder as the publishing source
- A GitHub Actions workflow, which is now the recommended approach but not strictly required
Verify that GitHub Pages deployment is correctly configured.
All documentation HTML files exist (docs/index.html, docs/comparison.html, docs/developer-experience.html, docs/common-questions.html, docs/video-overview.html, docs/reference-materials.html) and required assets are present. However, no GitHub Pages workflow file was found. Either:
- Configure GitHub Pages in repository settings to deploy from the
mainbranch's/docsfolder, or - Create a
.github/workflows/pages.yml(or similar) to automate deployment
Without access to repository settings, the actual deployment configuration cannot be verified from the codebase alone.
🏁 Script executed:
#!/bin/bash
# Check for GitHub Pages configuration files and repository settings
echo "Checking for GitHub Pages config files..."
[ -f "_config.yml" ] && echo "✓ _config.yml exists" || echo "✗ _config.yml missing"
[ -f "docs/_config.yml" ] && echo "✓ docs/_config.yml exists" || echo "✗ docs/_config.yml missing"
[ -f ".nojekyll" ] && echo "✓ .nojekyll exists" || echo "✗ .nojekyll missing"
[ -f "CNAME" ] && echo "✓ CNAME exists" || echo "✗ CNAME missing"
echo -e "\nLooking for any GH Pages or deployment workflow files..."
find .github/workflows -name "*.yml" -o -name "*.yaml" 2>/dev/null || echo "No .github/workflows directory or files found"
echo -e "\nChecking repository structure..."
ls -la | head -20Length of output: 1554
🏁 Script executed:
#!/bin/bash
# Check if gh CLI is available and get repo Pages settings
if command -v gh &> /dev/null; then
echo "Checking GitHub Pages configuration via gh CLI..."
gh repo view --json nameWithOwner,name 2>/dev/null && {
echo -e "\n--- GitHub Pages Settings ---"
gh api repos/{owner}/{repo}/pages 2>/dev/null || echo "Unable to fetch Pages settings (may not be enabled or no access)"
} || echo "gh CLI not authenticated or repo not accessible"
else
echo "gh CLI not available"
fiLength of output: 355
GitHub Pages is not enabled on this repository—the documentation links will be broken.
The GitHub Pages API endpoint returned a 404, confirming that GitHub Pages is not currently enabled for liatrio-labs/spec-driven-workflow. Additionally, there is no GitHub Actions workflow to deploy the documentation, and no GitHub Pages configuration files exist. This means the links in README.md lines 74-81 (pointing to https://liatrio-labs.github.io/spec-driven-workflow/*) will not work.
To fix this before merging:
- Enable GitHub Pages in repository settings and configure it to deploy from the
mainbranch's/docsfolder, OR - Create a GitHub Actions workflow (e.g.,
.github/workflows/pages.yml) to automatically build and deploy the documentation to GitHub Pages on each commit to main.
Without one of these, the documentation links will return 404 errors for users.
🤖 Prompt for AI Agents
In README.md around lines 74-81 the links point to
https://liatrio-labs.github.io/spec-driven-workflow/* but GitHub Pages is not
enabled, so those links will 404; fix by either enabling GitHub Pages for this
repo and configuring it to serve from the main branch /docs folder, or add a
GitHub Actions workflow (e.g., .github/workflows/pages.yml) that builds the site
and deploys to GitHub Pages on commits to main, plus include any necessary Pages
config (docs/ content, optional CNAME/.nojekyll) so the published URLs become
valid.
- Update gitleaks from v8.18.4 to v8.29.0 to address security vulnerabilities - Update CI workflow comment to specifically mention CHANGELOG.md instead of generic 'release-generated files'
Extract font-face declarations from HTML files into a dedicated fonts.css stylesheet to reduce duplication and improve maintainability. Update HTML files to link the external stylesheet. Also includes minor style adjustments and configuration improvements. - Create docs/assets/css/fonts.css with all @font-face declarations - Remove embedded font definitions from 7 HTML files - Update width properties to use full width instead of max-width - Add exclusion for large files in pre-commit hooks - Minor documentation and naming consistency updates
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
docs/references/5___05-task-02-proofs-dark.html (1)
11-419: Extract embedded CSS to external stylesheet to eliminate duplication.This file contains ~408 lines of embedded CSS that duplicates the design system already established in
docs/assets/css/styles.css. This creates maintenance burden and prevents browser caching. Replace the embedded<style>block with a link to the external stylesheet:- <style> - :root { - /* Liatrio Brand Colors - Dark Theme */ - /* ... 400+ lines of duplicated styles ... */ - } - </style> + <!-- CSS is loaded via styles.css below -->The page already includes
<link rel="stylesheet" href="../assets/css/styles.css">at line 9, so all necessary styles are available. Removing this embedded CSS will also significantly reduce the HTML file size.
🧹 Nitpick comments (3)
docs/references/5___05-task-02-proofs-dark.html (1)
8-10: Remove redundant font declaration—use fonts.css only.Line 8 loads DM Sans from Google Fonts (external), while line 10 loads
fonts.csswhich already embeds DM Sans via @font-face. This is redundant and adds an external dependency. Since the PR explicitly embeds fonts infonts.css, remove the Google Fonts link:- <link rel="preconnect" href="https://fonts.googleapis.com"> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="../assets/css/styles.css"> <link rel="stylesheet" href="../assets/css/fonts.css">This removes external network dependency and aligns with the intention of embedding fonts locally.
docs/assets/css/styles.css (2)
1099-1120: Code example styling is consistent but ensure inline code is visually distinct from code blocks.The
.code-exampleclass (lines 1099–1119) styles<pre>blocks appropriately. However, verify that inline<code>elements (styled at lines 72–81) remain visually distinct from<pre><code>blocks across all contexts—especially in code-heavy documentation pages. The background colorrgba(137, 223, 0, 0.15)for inline code is subtle; ensure it remains readable on both light and dark text.
1532-1655: Video container responsive design assumes 16:9 aspect ratio—ensure all embedded media match.The
.video-wrapperresponsive padding (line 1543:padding-bottom: 56.25%) assumes 16:9 aspect ratio. If any embedded videos/documents use different aspect ratios, the container may crop or add excessive whitespace. Verify that all video/document embeds match 16:9, or implement aspect-ratio CSS property with fallback for broader compatibility.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (12)
.github/workflows/ci.yml(1 hunks).pre-commit-config.yaml(2 hunks)CONTRIBUTING.md(3 hunks)docs/assets/css/fonts.css(1 hunks)docs/assets/css/styles.css(1 hunks)docs/common-questions.html(1 hunks)docs/comparison.html(1 hunks)docs/developer-experience.html(1 hunks)docs/index.html(1 hunks)docs/reference-materials.html(1 hunks)docs/references/5___05-task-02-proofs-dark.html(1 hunks)docs/video-overview.html(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- .pre-commit-config.yaml
- docs/video-overview.html
- docs/reference-materials.html
- .github/workflows/ci.yml
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTING.md
[uncategorized] ~114-~114: The official name of this software platform is spelled with a capital “H”.
Context: ...s Use the GitHub issue templates under .github/ISSUE_TEMPLATE/ for bug reports, featu...
(GITHUB)
🔇 Additional comments (8)
CONTRIBUTING.md (1)
1-126: Comprehensive update aligns guidelines with prompts-only workflow.The CONTRIBUTING.md updates effectively communicate the transition from Python MCP server tooling to a prompts-only deliverable. The shift to pre-commit-based development, removal of uv/pytest references, and emphasis on markdown prompts in
prompts/directory are all clear and well-structured. The guidance on branch naming, conventional commits, and PR submission is appropriate.Minor note: Line 114 refers to "GitHub issue templates" (GitHub is correctly capitalized, per LanguageTool style guide).
docs/common-questions.html (2)
23-302: Content effectively addresses common SDD objections with evidence-based arguments.The FAQ structure—using a real-world cspell pre-commit hook example to address overhead, verifiability, and adaptability concerns—is compelling and well-organized. The metrics (11/11 requirements verified, 6-minute implementation time, 0 scope creep issues) provide concrete evidence. Non-goals sections and proof artifacts strengthen the argument. Content aligns well with the broader SDD narrative in the documentation suite.
1-20: Page architecture correctly relies on external stylesheets and script injection with all dependencies verified to exist.This page properly separates structure (HTML) from styling (external CSS/fonts) and uses script injection for header/footer. The pattern enables browser caching of shared assets, reduces HTML file size, and facilitates consistent updates across documentation pages. Scripts are loaded at the end (lines 310–311), following best practices for page performance.
All external dependencies verified:
docs/assets/js/navigation.js✓docs/assets/js/footer.js✓docs/assets/images/favicon.svg✓docs/developer-experience.html (1)
21-372: Developer experience narrative effectively demonstrates AI-assisted workflow value.This page presents a compelling before/after case study demonstrating how AI-assisted, spec-driven workflows transform developer experience. The progression from manual toil (configuration, debugging, documentation) to strategic oversight is well-articulated.
Strengths:
- Quantified impact: 6-minute implementation vs 4-8 hours manual, 90% time reduction
- Concrete examples: Actual code snippets (.cspell.json, pre-commit output) and commit messages ground abstract claims
- Challenge analysis: Lines 88–138 honestly address cognitive load, error potential, and productivity loss before presenting solutions
- Evidence-based: References real Git commit history and tangible metrics
The page supports the broader SDD playbook narrative by demonstrating practical workflow transformation without replacing developers—it elevates them to strategic roles.
docs/assets/css/styles.css (2)
1656-1764: Reference grid component is well-designed with clear visual hierarchy.The reference materials grid styling (lines 1656–1764) effectively uses card-based layout with hover effects, icons, and animated arrow indicators. The
.reference-link::afterarrow animation (lines 1749–1764) provides nice visual feedback. Grid usesminmax(320px, 1fr)for responsive wrapping, which is appropriate for various viewport widths.
1-100: WCAG 2.1 AA color contrast verified—design system approved.The dark theme colors meet or exceed WCAG 2.1 AA accessibility standards:
- #1a1f23 (--bg-dark) + #fafafa (--text-primary-dark): 8.67:1 contrast ratio — exceeds AA (4.5:1) and AAA (7:1) for normal text
- #1a1f23 (--bg-dark) + #acb3b9 (--text-secondary-dark): 7.8:1 contrast ratio — meets AA and AAA for normal text
The comprehensive CSS system with well-organized tokens, semantic variables, and responsive design patterns is production-ready with no accessibility concerns.
docs/assets/css/fonts.css (1)
1-145: No issues found.All 18 DM Sans font files (weights 100–900, italic and regular styles) are present at the expected paths in
docs/assets/fonts/. The CSS references are valid and will load correctly in production.docs/index.html (1)
1-276: I'll search for those GitHub prompt files to verify they exist:Let me search more directly for the Liatrio repository:
Based on my verification efforts, I cannot definitively confirm whether the GitHub prompt URLs in the landing page are valid. Here's what I found:
- The
liatrio-labsorganization exists on GitHub (confirmed by finding theliatrio-labs/otel-instrumentation-mcprepository)- However, the specific
spec-driven-workflowrepository and itsprompts/directory were not discoverable through web search- The file
docs/index.htmlitself was not found in the cloned repository, suggesting it may be new to this PRSince I cannot verify the GitHub URLs without access to the repository and the repository isn't discoverable via web search, I'll generate the rewritten review comment accordingly:
Landing page effectively communicates SDD workflow and value proposition.
The index.html establishes a clear narrative arc from abstract idea to validated feature. The four-step phase structure (Specification → Task Breakdown → Implementation → Validation) is intuitive, with direct links to GitHub prompts providing transparency. Scope validation section clearly explains when SDD is appropriate, filtering out oversized/undersized work upfront.
The progression from "reactive art" to "predictable engineering" and audit trail sections reinforce quality and traceability benefits. External script injection and stylesheets are properly architected for consistency.
Verify that all GitHub prompt links in
docs/index.html(lines 56, 67, 78, 89, 117, 128, 139, 150) are publicly accessible and correctly reference theliatrio-labs/spec-driven-workflowrepository prompts directory. The referenced URLs should resolve to:
generate-spec.mdgenerate-task-list-from-spec.mdmanage-tasks.mdvalidate-spec-implementation.md
| <!DOCTYPE html> | ||
| <html lang="en"> | ||
|
|
||
| <head> | ||
| <meta charset="UTF-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Comparison: Liatrio's Prompts vs. Other Structured Development Tools - Spec-Driven Development</title> | ||
| <link rel="icon" type="image/svg+xml" href="assets/images/favicon.svg"> | ||
| <link rel="stylesheet" href="assets/css/styles.css"> | ||
| <link rel="stylesheet" href="assets/css/fonts.css"> | ||
|
|
||
|
|
||
|
|
||
| </head> | ||
|
|
||
| <body> | ||
| <header> | ||
| <!-- Navigation will be injected by navigation.js --> | ||
| </header> | ||
|
|
||
| <main> | ||
| <!-- Hero Section --> | ||
| <section class="hero"> | ||
| <div class="container"> | ||
| <h1>Why Not Other Structured Development Tools?</h1> | ||
| <div class="hero-content"> | ||
| <p>Other structured development tools like Kiro, SpecKit, and Taskmaster offer structured approaches | ||
| to AI-assisted development, but they require installation, configuration, and learning new | ||
| workflows. Here's why Liatrio's 4 transparent prompts are a better fit for day-to-day | ||
| development work.</p> | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| <!-- Comparison Section --> | ||
| <section class="phases-detailed"> | ||
| <div class="container"> | ||
| <h2>Comparison: Liatrio's Prompts vs. Other Structured Development Tools</h2> | ||
| <p class="section-intro">How do Liatrio's prompts compare to other structured development tools? Here's | ||
| a side-by-side look at the key differences.</p> | ||
|
|
||
| <div class="comparison-table-wrapper"> | ||
| <table class="comparison-table"> | ||
| <thead> | ||
| <tr> | ||
| <th>Feature</th> | ||
| <th>Liatrio's SDD Prompts</th> | ||
| <th>Kiro / SpecKit / Taskmaster</th> | ||
| </tr> | ||
| </thead> | ||
| <tbody> | ||
| <tr> | ||
| <td><strong>Setup & Installation</strong></td> | ||
| <td>✅ Just 4 markdown files—no installation</td> | ||
| <td>❌ Kiro: Requires downloading IDE app. SpecKit: Requires installation and | ||
| configuration. Taskmaster: Requires installation and setup.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Editor/IDE Dependency</strong></td> | ||
| <td>✅ Works with any editor (VS Code, Cursor, etc.)</td> | ||
| <td>❌ Kiro: Requires switching to Kiro IDE. SpecKit/Taskmaster: Work within existing | ||
| editors but require specific setup.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>AI Assistant Compatibility</strong></td> | ||
| <td>✅ Works with any AI assistant (Claude, GPT, Gemini, etc.)</td> | ||
| <td>❌ Kiro: Built-in AI. SpecKit: Works with GitHub Copilot, Claude Code, Gemini CLI. | ||
| Taskmaster: Works with Claude, Cursor, etc.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Learning Curve</strong></td> | ||
| <td>✅ Just read markdown prompts—no new concepts</td> | ||
| <td>❌ Kiro: Learn new IDE. SpecKit: Learn command system (`/speckit.specify`, | ||
| `/speckit.plan`, etc.). Taskmaster: Learn task management system.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Transparency</strong></td> | ||
| <td>✅ Every prompt is readable markdown—no black boxes</td> | ||
| <td>❌ Tool logic is hidden in codebases. Can't easily see or modify how they work.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Flexibility</strong></td> | ||
| <td>✅ Edit prompts to fit your project/style/company guidelines</td> | ||
| <td>❌ Limited customization. Must work within tool's structure and constraints.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>File Structure</strong></td> | ||
| <td>✅ Simple <code>docs/specs/</code> that doesn't pollute repo</td> | ||
| <td>❌ Kiro: IDE-specific files. SpecKit: Creates <code>.specify/</code> directory | ||
| structure. Taskmaster: Task management files.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Workflow Integration</strong></td> | ||
| <td>✅ Fits into your existing workflow—no context switching</td> | ||
| <td>❌ Kiro: Requires switching IDEs. SpecKit: Requires using specific commands. | ||
| Taskmaster: Requires managing tasks through tool.</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Speed</strong></td> | ||
| <td>✅ Complete feature in minutes (example: <15 min)</td> | ||
| <td>⚠️ Varies by tool, but requires learning and setup overhead</td> | ||
| </tr> | ||
| <tr> | ||
| <td><strong>Cost</strong></td> | ||
| <td>✅ Free—just markdown files</td> | ||
| <td>✅ All are open source, but require time investment to learn</td> | ||
| </tr> | ||
| </tbody> | ||
| </table> | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| <!-- Easy Installation Section --> | ||
| <section class="reactive-art"> | ||
| <div class="container"> | ||
| <div class="installation-highlight"> | ||
| <h2>Getting Started Is Simple</h2> | ||
| <p>While other tools require complex installation and configuration, the SDD workflow prompts can be | ||
| installed | ||
| in any AI assistant in seconds using the <a | ||
| href="https://github.com/liatrio-labs/slash-command-manager" target="_blank" | ||
| rel="noopener noreferrer">slash-command-manager</a>. This open-source tool from Liatrio | ||
| makes it | ||
| straightforward | ||
| to add the prompts as slash commands in VS Code, Cursor, Claude Code, and many other AI tools | ||
| that | ||
| support | ||
| custom commands.</p> | ||
| <p>No complex setup, no configuration files, no learning curve—just install the prompts and start | ||
| using | ||
| them immediately in your existing workflow. See the <a | ||
| href="https://github.com/liatrio-labs/spec-driven-workflow#tldr--quickstart" target="_blank" | ||
| rel="noopener noreferrer">installation instructions in the README</a> to get started.</p> | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| <!-- The Bottom Line Section --> | ||
| <section class="phases-detailed"> | ||
| <div class="container"> | ||
| <h2>The Bottom Line</h2> | ||
| <p>For day-to-day development work in enterprise companies, Liatrio's 4 prompts provide the structure | ||
| and rigor you need without requiring new tools, installation, or learning curves. They're | ||
| transparent, flexible, and designed to fit into your existing workflow—not replace it. Perfect for | ||
| developers who want structured AI-assisted development without the overhead of switching tools or | ||
| learning new systems.</p> | ||
|
|
||
| <div class="comparison-cta"> | ||
| <p><a href="index.html">← Back to the Playbook</a></p> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| </main> | ||
|
|
||
| <footer> | ||
| <!-- Footer will be injected by footer.js --> | ||
| </footer> | ||
| <script src="assets/js/navigation.js"></script> | ||
| <script src="assets/js/footer.js"></script> | ||
| </body> | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Comparison page is well-architected and presents clear value proposition.
The page effectively positions Liatrio's prompts as a lightweight, transparent alternative to other structured development tools. The side-by-side comparison table (lines 42–110) systematically addresses key differentiators: setup, editor dependency, AI compatibility, learning curve, transparency, and flexibility. External links to slash-command-manager and the README are appropriately placed to guide next steps.
Page correctly uses external stylesheets and script injection for consistency with other documentation pages.
Verify that external links are accessible and point to the correct locations:
🏁 Script executed:
#!/bin/bash
# Check that external repository and GitHub links are valid
echo "Checking external links referenced in comparison.html..."
grep -oP 'href=["\047]\K[^"'"'"']+' docs/comparison.html | grep -E '^https?://' | sort -uLength of output: 110
Let me search for the file in the repository to confirm its location:The web search returned unrelated results. Let me search directly in the repository for the comparison.html file:
Once the script executes, I'll be able to determine whether the file exists and at what path. If the file is not found in the repository, this indicates the review comment references a file that either:
1. Was not actually committed to the PR branch
2. Is located at a different path than stated
3. Does not exist in the current codebase
If the file is found, I'll then verify the external links it contains.
---
🏁 Script executed:
```shell
#!/bin/bash
# Find comparison.html file in the repository
fd -t f "comparison.html"
# Also check for any files in docs directory
echo "---"
fd -t f . docs/ 2>/dev/null | head -20
Length of output: 824
---
🏁 Script executed:
```shell
#!/bin/bash
# Extract all external links from comparison.html
echo "External links in comparison.html:"
grep -oP 'href=["\x27]\K[^"'"'"']+' docs/comparison.html | grep -E '^https?://'
Length of output: 158
---
🏁 Script executed:
```shell
#!/bin/bash
# Verify external links are accessible
echo "Verifying external links..."
# Check slash-command-manager
echo "1. Checking slash-command-manager:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" "https://github.com/liatrio-labs/slash-command-manager"
# Check spec-driven-workflow README (without fragment, GitHub ignores fragments)
echo "2. Checking spec-driven-workflow:"
curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" "https://github.com/liatrio-labs/spec-driven-workflow"
Length of output: 130
Fix broken link to slash-command-manager repository (line 116–120).
External link verification found that https://github.com/liatrio-labs/slash-command-manager returns HTTP 404. This repository either does not exist or is not publicly accessible. The link is referenced in the "Getting Started Is Simple" section where the page recommends using slash-command-manager to install prompts.
The link to https://github.com/liatrio-labs/spec-driven-workflow is valid (HTTP 200).
Update the repository URL or confirm the correct location for slash-command-manager before merging.
🤖 Prompt for AI Agents
In docs/comparison.html around lines 116 to 120, the anchor linking to
https://github.com/liatrio-labs/slash-command-manager returns 404; update the
href to the correct public repository URL (or remove the link) and ensure the
link text and target match the actual resource (e.g., point to the
slash-command-manager repo if it exists under a different org/name or link to
the README/installation section in spec-driven-workflow); verify the new URL
returns HTTP 200 and keep target="_blank" rel="noopener noreferrer" attributes.
| <div class="sourceCode" id="cb1"> | ||
| <pre | ||
| class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="kw">-</span><span class="at"> </span><span class="fu">repo</span><span class="kw">:</span><span class="at"> local</span></span> | ||
| <span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">hooks</span><span class="kw">:</span></span> | ||
| <span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="kw">-</span><span class="at"> </span><span class="fu">id</span><span class="kw">:</span><span class="at"> cspell</span></span> | ||
| <span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">name</span><span class="kw">:</span><span class="at"> cspell</span></span> | ||
| <span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">entry</span><span class="kw">:</span><span class="at"> cspell</span></span> | ||
| <span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">language</span><span class="kw">:</span><span class="at"> system</span></span> | ||
| <span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">types</span><span class="kw">:</span><span class="at"> </span><span class="kw">[</span><span class="at">text</span><span class="kw">]</span></span> | ||
| <span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">files</span><span class="kw">:</span><span class="at"> \.md$</span></span> | ||
| <span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">exclude</span><span class="kw">:</span><span class="at"> CHANGELOG\.md</span></span> | ||
| <span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">args</span><span class="kw">:</span><span class="at"> </span><span class="kw">[</span><span class="at">--config</span><span class="kw">,</span><span class="at"> .cspell.json</span><span class="kw">]</span></span></code></pre> | ||
| </div> | ||
| <h3 id="hook-placement-verification">Hook Placement Verification</h3> | ||
| <p>The hook appears in the correct location:</p> | ||
| <ul> | ||
| <li><span class="checkmark">✅</span> After <code>check-toml</code> hook (line 14 in | ||
| pre-commit-hooks)</li> | ||
| <li><span class="checkmark">✅</span> Before <code>ruff-check</code> hook (line 31 in | ||
| ruff-pre-commit)</li> | ||
| </ul> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Verify pre-commit configuration documentation matches current .pre-commit-config.yaml.
Lines 444–464 show a code block with YAML configuration including ruff-pre-commit repository and ruff-check/ruff-format hooks. However, the past review noted that ruff was removed from the actual pre-commit configuration as part of the Python tooling removal.
Verify that this documentation reflects the current state. If ruff is no longer in .pre-commit-config.yaml, update the YAML snippet to show only the current hooks (pre-commit-hooks, markdownlint-cli, commitlint-pre-commit-hook, gitleaks).
🏁 Script executed:
#!/bin/bash
# Check current pre-commit configuration
echo "=== Current .pre-commit-config.yaml ==="
cat .pre-commit-config.yaml | head -50
echo ""
echo "=== Checking for ruff in current config ==="
grep -n "ruff" .pre-commit-config.yaml || echo "No ruff found"Length of output: 1195
I need to examine the actual HTML file content at those lines to see exactly what needs to be updated.
---
🏁 Script executed:
```shell
#!/bin/bash
# Extract the exact lines from the HTML documentation file
echo "=== Lines 444-464 from docs/references/5___05-task-02-proofs-dark.html ==="
sed -n '444,464p' docs/references/5___05-task-02-proofs-dark.html
Length of output: 2896
I need to see more context around this section to understand what documentation is being provided and what the source is.
---
🏁 Script executed:
```shell
#!/bin/bash
# Look for context around lines 444-464 to understand what section this is
echo "=== Context: lines 430-480 ==="
sed -n '430,480p' docs/references/5___05-task-02-proofs-dark.html | head -60
echo ""
echo "=== Search for markdown source files that might generate this HTML ==="
find . -name "*.md" -type f | grep -i "task-02\|proof" | head -10
Length of output: 5117
Update documentation to reflect current .pre-commit-config.yaml state.
The documentation at lines 444–464 describes a task of adding a cspell hook to a local pre-commit repository, but verification confirms this configuration does not exist in the current .pre-commit-config.yaml. Additionally, the "Hook Placement Verification" section references a ruff-pre-commit repository and ruff-check hook that were removed during Python tooling cleanup.
Update the YAML code snippet and verification section to show only the current pre-commit configuration repositories: pre-commit-hooks, markdownlint-cli, commitlint-pre-commit-hook, and gitleaks. Remove references to the non-existent cspell local hook and ruff-pre-commit repository.
🤖 Prompt for AI Agents
In docs/references/5___05-task-02-proofs-dark.html around lines 444 to 464, the
displayed YAML and verification text still show a local cspell hook and
references to ruff-pre-commit/ruff-check which no longer exist; remove the
cspell local hook block from the snippet and replace it with the actual current
snippet that only shows the configured repositories (pre-commit-hooks,
markdownlint-cli, commitlint-pre-commit-hook, gitleaks), and update the "Hook
Placement Verification" bullets to list only those repositories and their actual
hooks/placement (remove any mention of ruff-pre-commit and ruff-check). Ensure
the snippet and verification text match the current .pre-commit-config.yaml
exactly.
Why?
This PR refactors the repository to focus exclusively on prompts-only delivery, removing Python tooling and dependencies to simplify maintenance and reduce complexity. The change aligns with the project's core goal of providing lightweight, markdown-based prompts that work with any AI assistant without requiring MCP server dependencies.
Evidence:
c11669cremoves Python server implementation, tests, and tooling38cd750and892f2e6add repository compliance files and cleanupWhat Changed?
This PR refactors the project from a Python-based MCP server implementation to a prompts-only repository with a comprehensive documentation site.
Key Changes:
Project Simplification:
mcp_server/,server.py)slash_commands/)tests/)pyproject.tomlanduv.lockdependency management.python-versionfile__version__.py(version now tracked via git tags only).releaserc.toml) for automated versioningDocumentation Site:
docs/index.html) with workflow overviewdocs/assets/js/navigation.js,docs/assets/js/footer.js)docs/assets/css/fonts.css) for better maintainabilityRepository Compliance:
.github/CODEOWNERSassigning ownership to@liatrio-labs/liatrio-labs-maintainersCODE_OF_CONDUCT.mdwith Contributor Covenant 2.1.pre-commit-config.yamlwith additional hooks:check-tomlfor TOML file validationcheck-added-large-filesto prevent large file commitsgitleaksv8.29.0 for secret scanning (updated from previous version)CONTRIBUTING.mdto reference actual Code of Conduct file and reflect prompts-only structureCI/CD Updates:
.github/workflows/ci.yml) to pre-commit hooks only.github/workflows/release.yml) to work with semantic releaseDocumentation Updates:
README.mdwith comprehensive SDD workflow documentation:docs/mcp-prompt-support.mddocs/operations.mddocs/slash-command-generator.mddocs/archive/refactor-sdd-workflow-prompts.mdCleanup:
tasks/directory:0001-spec-sdd-mcp-poc.mdand related task files0002-spec-open-source-ready.mdand related task files0003-spec-slash-command-generator.mdand related task files0004-spec-review-fixes.mdand related task files0005-spec-fix-bundled-prompts-path.mdand related task filesFiles Modified:
.github/CODEOWNERS,.releaserc.toml,CODE_OF_CONDUCT.md.github/workflows/ci.yml,.github/workflows/release.yml,.pre-commit-config.yaml,CONTRIBUTING.md,README.mddocs/directory with HTML pages, assets (CSS, fonts, images, JS), and 9 reference examplesmcp_server/,slash_commands/,tests/,pyproject.toml,uv.lock,.python-version,__version__.py,tasks/(all spec/task files), obsolete docsAdditional Notes
Breaking Changes:
Performance Implications:
Security Considerations:
gitleaksto v8.29.0 for latest secret scanning capabilitiescheck-added-large-fileshook to prevent accidental large file commitsTesting Strategy:
Dependencies:
pyproject.toml,uv.lock)Configuration Changes:
.releaserc.tomlfor semantic release configuration (version tracked via git tags only).pre-commit-config.yamlwith additional hooks (check-toml,check-added-large-files,gitleaks)Documentation Site:
Known Limitations:
Related Issues:
feat/trim-to-just-prompts)Review Checklist
Summary by CodeRabbit
New Features
Documentation
Chores
Removed Features