Skip to content

Commit e336618

Browse files
ryderstormclaude
andauthored
feat: trim project to prompts-only deliverable (#31)
* refactor: trim project to prompts-only deliverable 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 <[email protected]> * feat(docs): add local playbook site with Liatrio brand styling 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. * feat(docs): add developer experience, common questions, and video overview 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. * feat(docs): add reference materials page with 9 SDD workflow examples 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. * fix(docs): update validation dates to 2025-11-07 and remove unused index.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 * feat(docs): add navigation header to all reference pages 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. * fix(docs): add missing subtasks to tasks-pre-commit-cspell HTML page 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. * fix(docs): improve inline code styling in task list subtasks 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 * docs: add comprehensive audit report and fix minor issues 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 * refactor: extract navigation and footer into reusable JS components - 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. * style(playbook-site): align design with dev.liatrio.com brand standards 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 * feat(playbook-site): enhance design and add comparison page - 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 * fix(playbook-site): address code review feedback for security and accessibility - 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 * chore: remove more obsolete files * refactor(docs): move playbook site to docs root and embed fonts - 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. * style(docs): add hero divider to reduce empty space on reference-materials 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. * chore(repo): add CODEOWNERS and Code of Conduct, enhance pre-commit hooks 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 * chore(docs): remove temporary files and update comparison page 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. * fix: update install instructions * docs: update README with comprehensive SDD workflow documentation 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. * fix(security): update gitleaks to v8.29.0 - 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' * refactor(docs): extract embedded fonts to dedicated stylesheet 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 --------- Co-authored-by: Claude <[email protected]>
1 parent b8875bf commit e336618

File tree

85 files changed

+15055
-8832
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+15055
-8832
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @liatrio-labs/liatrio-labs-maintainers

.github/workflows/ci.yml

Lines changed: 16 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,34 @@
1-
name: Run tests and linting
1+
name: CI - Tests and Linting
22

33
on:
44
# Avoid duplicate runs: run on PRs for branches, and on direct pushes to main
5-
# but ignore changes to pyproject.toml, CHANGELOG.md, and uv.lock
6-
# This is to avoid running tests and linting for commits that only relate to releases
5+
# Ignore changes to CHANGELOG.md (auto-generated by semantic-release)
76
push:
87
branches: ["main"]
98
paths-ignore:
10-
- "pyproject.toml"
119
- "CHANGELOG.md"
12-
- "uv.lock"
1310
pull_request:
11+
paths-ignore:
12+
- "CHANGELOG.md"
13+
workflow_dispatch:
1414

1515
jobs:
16-
test:
17-
name: Test (uv + pytest)
18-
runs-on: ubuntu-latest
19-
strategy:
20-
fail-fast: false
21-
matrix:
22-
python: ["3.12"]
23-
steps:
24-
- name: Checkout
25-
uses: actions/checkout@v4
26-
27-
- name: Install uv (with cache)
28-
uses: astral-sh/setup-uv@v6
29-
with:
30-
enable-cache: true
31-
cache-dependency-glob: |
32-
**/pyproject.toml
33-
**/uv.lock
34-
35-
- name: Install Python
36-
run: uv python install ${{ matrix.python }}
37-
38-
- name: Sync dependencies (frozen)
39-
run: uv sync --all-groups --frozen
40-
41-
- name: Run tests with coverage
42-
run: uv run pytest -vv --cov=mcp_server --cov=slash_commands --cov-report=term-missing:skip-covered --cov-report=xml
43-
44-
45-
- name: Upload coverage.xml artifact
46-
uses: actions/upload-artifact@v4
47-
with:
48-
name: coverage-xml-${{ matrix.python }}
49-
path: coverage.xml
50-
51-
- name: Upload coverage to Codecov
52-
uses: codecov/codecov-action@v4
53-
with:
54-
files: coverage.xml
55-
flags: unittests
56-
fail_ci_if_error: false
57-
5816
lint:
59-
name: Lint (uv + ruff)
17+
name: Run Linting
6018
runs-on: ubuntu-latest
19+
permissions:
20+
contents: read
6121
steps:
62-
- name: Checkout
22+
- name: Checkout repository
6323
uses: actions/checkout@v4
6424

65-
- name: Install uv (with cache)
66-
uses: astral-sh/setup-uv@v6
25+
- name: Set up Python
26+
uses: actions/setup-python@v5
6727
with:
68-
enable-cache: true
69-
cache-dependency-glob: |
70-
**/pyproject.toml
71-
**/uv.lock
72-
73-
- name: Install Python
74-
run: uv python install 3.12
75-
76-
- name: Sync dependencies (frozen)
77-
run: uv sync --all-groups --frozen
78-
79-
- name: Run ruff lint
80-
run: uv run ruff check .
28+
python-version: "3.12"
8129

82-
- name: Format (check)
83-
run: uv run ruff format --check .
30+
- name: Install pre-commit
31+
run: pip install pre-commit
8432

85-
- name: Pre-commit (meta checks)
86-
run: uv run pre-commit run --all-files --show-diff-on-failure
33+
- name: Run pre-commit hooks
34+
run: pre-commit run --all-files

.github/workflows/release.yml

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
name: Semantic Release
22

3+
# This workflow runs after CI passes on the main branch.
4+
# It analyzes commits using Conventional Commits and automatically:
5+
# - Bumps the version
6+
# - Generates/updates CHANGELOG.md
7+
# - Creates a GitHub release
8+
39
on:
410
workflow_run:
5-
workflows: ["Run tests and linting"]
11+
# Update this to match your CI workflow name (default: "CI - Tests and Linting")
12+
workflows: ["CI - Tests and Linting"]
613
branches: [main]
714
types: [completed]
815

@@ -16,23 +23,25 @@ jobs:
1623
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1724
runs-on: ubuntu-latest
1825
permissions:
19-
id-token: write
26+
contents: read # Required for actions/checkout
27+
id-token: write # Required for Octo STS
2028
concurrency:
2129
group: semantic-release-${{ github.ref }}
2230
cancel-in-progress: false
2331
steps:
32+
# Chainguard Octo STS authentication (configured at Liatrio org level)
2433
- uses: octo-sts/action@6177b4481c00308b3839969c3eca88c96a91775f # v1.0.0
2534
id: octo-sts
2635
with:
2736
scope: ${{ github.repository }}
2837
identity: main-semantic-release
38+
2939
- uses: actions/checkout@v4
3040
with:
3141
fetch-depth: 0
3242
fetch-tags: true
3343
persist-credentials: false
3444

35-
3645
- name: Get GitHub App User ID
3746
id: get-user-id
3847
run: echo "user-id=$(gh api "/users/octo-sts[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
@@ -52,7 +61,15 @@ jobs:
5261
# sanity check
5362
git ls-remote --heads origin >/dev/null
5463
55-
- name: Semantic Release
56-
uses: python-semantic-release/python-semantic-release@v10
64+
- name: Set up Python
65+
uses: actions/setup-python@v5
5766
with:
58-
github_token: ${{ steps.octo-sts.outputs.token }}
67+
python-version: "3.12"
68+
69+
- name: Install python-semantic-release
70+
run: pip install "python-semantic-release>=10.0.0,<11.0.0"
71+
72+
- name: Semantic Release
73+
run: semantic-release -c .releaserc.toml version
74+
env:
75+
GH_TOKEN: ${{ steps.octo-sts.outputs.token }}

.pre-commit-config.yaml

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@ repos:
66
- repo: https://github.com/pre-commit/pre-commit-hooks
77
rev: v6.0.0
88
hooks:
9-
- id: check-yaml
10-
- id: end-of-file-fixer
11-
- id: trailing-whitespace
12-
- repo: https://github.com/astral-sh/ruff-pre-commit
13-
rev: v0.14.0
14-
hooks:
15-
- id: ruff-check
16-
args: [--fix, --exit-non-zero-on-fix]
17-
- id: ruff-format
9+
- id: check-yaml
10+
- id: check-toml
11+
- id: check-added-large-files
12+
exclude: ^docs/references/
13+
- id: end-of-file-fixer
14+
- id: trailing-whitespace
1815

1916
- repo: https://github.com/igorshubovych/markdownlint-cli
2017
rev: v0.45.0
@@ -33,12 +30,10 @@ repos:
3330
args:
3431
- "--extends=@commitlint/config-conventional"
3532

36-
- repo: local
33+
- repo: https://github.com/gitleaks/gitleaks
34+
rev: v8.29.0
3735
hooks:
38-
- id: run-tests
39-
name: Run pytest before push
40-
entry: uv run pytest
41-
language: system
42-
stages: [pre-push]
43-
pass_filenames: false
44-
always_run: true
36+
- id: gitleaks
37+
name: scan for committed secrets with gitleaks
38+
args:
39+
- "--redact"

.python-version

Lines changed: 0 additions & 1 deletion
This file was deleted.

.releaserc.toml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[semantic_release]
2+
# Use annotated tags like v1.2.3
3+
tag_format = "v{version}"
4+
# Allow 0.x.x versions (required for pre-1.0.0 releases)
5+
allow_zero_version = true
6+
# Don't update version in any files since this is a markdown-only repo
7+
# Version is tracked via git tags only
8+
version_variables = []
9+
# Generate changelog and commit version bumps
10+
assets = []
11+
12+
[semantic_release.changelog]
13+
# Generate CHANGELOG.md in Markdown
14+
[semantic_release.changelog.default_templates]
15+
changelog_file = "CHANGELOG.md"
16+
output_format = "md"
17+
18+
[semantic_release.branches]
19+
# Release from the main branch
20+
main = { match = "main" }
21+
22+
[semantic_release.remote]
23+
# Use GitHub token from environment variable
24+
token = { env = "GH_TOKEN" }

CODE_OF_CONDUCT.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
6+
7+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
8+
9+
## Our Standards
10+
11+
Examples of behavior that contributes to a positive environment for our community include:
12+
13+
- Demonstrating empathy and kindness toward other people
14+
- Being respectful of differing opinions, viewpoints, and experiences
15+
- Giving and gracefully accepting constructive feedback
16+
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17+
- Focusing on what is best not just for us as individuals, but for the overall community
18+
19+
Examples of unacceptable behavior include:
20+
21+
- The use of sexualized language or imagery, and sexual attention or advances of any kind
22+
- Trolling, insulting or derogatory comments, and personal or political attacks
23+
- Public or private harassment
24+
- Publishing others' private information, such as a physical or email address, without their explicit permission
25+
- Other conduct which could reasonably be considered inappropriate in a professional setting
26+
27+
## Enforcement Responsibilities
28+
29+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
30+
31+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
32+
33+
## Scope
34+
35+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
36+
37+
## Enforcement
38+
39+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement by contacting the Liatrio Maintainers team (`@liatrio-labs/liatrio-labs-maintainers`) or by using GitHub's private reporting form for this repository: <https://github.com/liatrio-labs/spec-driven-workflow/security/advisories/new>. All complaints will be reviewed and investigated promptly and fairly.
40+
41+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
42+
43+
## Enforcement Guidelines
44+
45+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
46+
47+
### 1. Correction
48+
49+
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
50+
51+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
52+
53+
### 2. Warning
54+
55+
**Community Impact**: A violation through a single incident or series of actions.
56+
57+
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
58+
59+
### 3. Temporary Ban
60+
61+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
62+
63+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
64+
65+
### 4. Permanent Ban
66+
67+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
68+
69+
**Consequence**: A permanent ban from any sort of public interaction within the community.
70+
71+
## Attribution
72+
73+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.
74+
75+
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
76+
77+
For answers to common questions about this code of conduct, see the FAQ at <https://www.contributor-covenant.org/faq>. Translations are available at <https://www.contributor-covenant.org/translations>.

0 commit comments

Comments
 (0)