{"id":45646795,"url":"https://github.com/schwichtgit/claude-project-foundation","last_synced_at":"2026-04-10T04:02:57.824Z","repository":{"id":337266588,"uuid":"1152880747","full_name":"schwichtgit/claude-project-foundation","owner":"schwichtgit","description":"Spec-driven scaffold for autonomous Claude Code projects. Interactive planning, two-agent execution, quality gates at every layer.","archived":false,"fork":false,"pushed_at":"2026-03-21T22:17:27.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-22T10:52:20.750Z","etag":null,"topics":["autonomous-coding","claude-code","conventional-commits","developer-tools","quality-gates","scaffold","sdlc","specification"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schwichtgit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T15:26:28.000Z","updated_at":"2026-03-21T22:16:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/schwichtgit/claude-project-foundation","commit_stats":null,"previous_names":["schwichtgit/claude-project-foundation"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/schwichtgit/claude-project-foundation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schwichtgit%2Fclaude-project-foundation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schwichtgit%2Fclaude-project-foundation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schwichtgit%2Fclaude-project-foundation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schwichtgit%2Fclaude-project-foundation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schwichtgit","download_url":"https://codeload.github.com/schwichtgit/claude-project-foundation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schwichtgit%2Fclaude-project-foundation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-coding","claude-code","conventional-commits","developer-tools","quality-gates","scaffold","sdlc","specification"],"created_at":"2026-02-24T04:18:02.649Z","updated_at":"2026-04-10T04:02:57.805Z","avatar_url":"https://github.com/schwichtgit.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Project Foundation\n\nA spec-driven scaffold that produces high-quality\nspecifications for autonomous Claude Code development.\nDefine what you want to build through guided\nconversation, then hand the spec artifacts to\n[AutoForge](https://github.com/AutoForgeAI/autoforge)\nor any two-agent pattern for multi-session autonomous\nimplementation with production-grade quality\nenforcement.\n\n**Status:** All 57 features passing (v0.1.0-alpha.8).\nFull CI parity across GitHub, GitLab, and Jenkins.\nThe foundation applies its own quality gates in CI.\n\n[![CI](https://github.com/schwichtgit/claude-project-foundation/actions/workflows/ci.yml/badge.svg)](https://github.com/schwichtgit/claude-project-foundation/actions/workflows/ci.yml)\n\n## The Problem\n\n[AutoForge](https://github.com/AutoForgeAI/autoforge)\nand similar autonomous coding harnesses can implement\nentire applications across multiple Claude Code\nsessions -- but their output quality depends entirely\non the spec quality going in. A vague spec produces\nvague code.\n\nWriting a spec that an autonomous agent can actually\nexecute against requires assembling patterns from\nscattered sources: Anthropic's two-agent quickstart\nfor session management, AutoForge's feature tracking\nfor progress persistence, and production CI/CD\npractices for quality enforcement.\nEach source covers part of the picture. None covers\nall of it, and none generalizes beyond a single\nproject.\n\nClaude Project Foundation closes the spec quality gap.\nIt provides an interactive workflow that walks you\nthrough defining principles, features, architecture,\nand acceptance criteria -- producing artifacts that\nAutoForge and similar tools consume directly for\nautonomous execution.\n\n## What You Get\n\n- **Interactive spec authoring** -- the\n  `/cpf:specforge` skill walks you through defining\n  principles, features, architecture, and acceptance\n  criteria, producing artifacts that AutoForge\n  consumes directly\n- **AutoForge-compatible output** -- constitution.md,\n  spec.md, plan.md, and feature_list.json match the\n  artifact structure expected by AutoForge's\n  initializer and coding agents\n- **Quality gates at every layer** -- Claude Code\n  hooks, git hooks, and CI workflows enforce\n  conventional commits, test coverage, linting,\n  secret scanning, and communication standards\n- **Full CI parity** -- GitHub Actions, GitLab CI,\n  and Jenkins all ship with equivalent quality gates\n  (shellcheck, markdownlint, prettier, release\n  pipelines)\n- **Stack-agnostic auto-detection** -- all scripts\n  detect your project type from config files\n  (package.json, Cargo.toml, pyproject.toml, go.mod).\n  No hardcoded paths, no framework lock-in\n- **Self-hosting** -- this repository applies its own\n  quality gates: markdownlint, Prettier, shellcheck,\n  and commit-standards run in CI on every push and PR\n- **Zero runtime dependencies** -- pure shell scripts,\n  markdown, and JSON/YAML. The scaffold itself uses\n  Node.js only for development tooling (Prettier\n  formatting)\n\n## How It Works\n\n```text\n Phase 1: Interactive Planning (you + Claude Code)\n ┌────────────────────────────────────────────────────────----───┐\n │  /cpf:specforge constitution  --\u003e  Define project principles  │\n │  /cpf:specforge spec          --\u003e  Document features          │\n │  /cpf:specforge clarify       --\u003e  Resolve ambiguities        │\n │  /cpf:specforge plan          --\u003e  Architecture decisions     │\n │  /cpf:specforge features      --\u003e  Generate feature list      │\n │  /cpf:specforge analyze       --\u003e  Score autonomous-readiness │\n └──────────────────────────────┬──────────────────────────----──┘\n                                │\n                                v  Spec artifacts\n                         ┌──────┴──────┐\n                         │  Handover   │\n                         └──────┬──────┘\n                                │\n Phase 2: Autonomous Execution (AutoForge or equivalent)\n ┌──────────────────────────────┴───────────────────────────┐\n │  Session 1 (Initializer Agent):                          │\n │    Reads spec artifacts --\u003e creates project structure,   │\n │    validates feature_list.json                           │\n │                                                          │\n │  Session 2..N (Coding Agent):                            │\n │    10-step loop: orient, verify, select feature,         │\n │    implement, test, commit, document, repeat             │\n └──────────────────────────────────────────────────────────┘\n```\n\n## Installation\n\n**Prerequisites:**\n[Claude Code](https://docs.anthropic.com/en/docs/claude-code)\ninstalled and authenticated.\n\n### As a Claude Code plugin\n\n```bash\n# Add the specforge marketplace (one-time)\n/plugin marketplace add schwichtgit/claude-project-foundation\n\n# Install the cpf plugin\n/plugin install cpf@specforge\n```\n\nAfter installation, the `/cpf:specforge` skill and all\nhooks are available in any Claude Code session.\n\n## Quick Start: Spec a New Project\n\nOpen Claude Code in your project directory and run the\nspec workflow:\n\n```bash\n/cpf:specforge constitution    # Define project principles and quality standards\n/cpf:specforge spec            # Document features with acceptance criteria\n/cpf:specforge clarify         # Surface and resolve ambiguities\n/cpf:specforge plan            # Make architecture and tech stack decisions\n/cpf:specforge features        # Generate feature_list.json for autonomous tracking\n/cpf:specforge analyze         # Score spec readiness (target: 80+)\n```\n\nRun `/cpf:specforge doctor` to verify your dev\nenvironment has the required tools.\n\nWhen the spec scores 80 or above, hand off to\n[AutoForge](https://github.com/AutoForgeAI/autoforge)\nfor autonomous execution. Alternatively, use the\nincluded agent definitions directly\n(`.claude-plugin/agents/initializer.md` for first\nsession, `.claude-plugin/agents/coder.md` for\nsubsequent sessions).\n\nEach coding session picks up where the last left off\nvia `feature_list.json`. Features are implemented one\nat a time, tested against their acceptance criteria,\nand committed with conventional commit messages.\n\n## The /cpf:specforge Workflow\n\n| Sub-command    | What it does                               | Artifact produced                    |\n| -------------- | ------------------------------------------ | ------------------------------------ |\n| `constitution` | Define immutable project principles        | `.specify/memory/constitution.md`    |\n| `spec`         | Document features and acceptance criteria  | `.specify/specs/spec.md`             |\n| `clarify`      | Surface ambiguities, get human decisions   | Updated `spec.md`                    |\n| `plan`         | Architecture, tech stack, testing strategy | `.specify/specs/plan.md`             |\n| `features`     | Generate machine-readable feature list     | `feature_list.json`                  |\n| `analyze`      | Score spec for autonomous-readiness        | Score report with remediation        |\n| `setup`        | Generate platform-specific setup checklist | Actionable `gh` CLI commands         |\n| `init`         | Project scaffold into host project         | Directory structure + hooks          |\n| `upgrade`      | Update scaffold with three-tier merge      | Updated files + `.specforge-version` |\n| `doctor`       | Check dev environment prerequisites        | Compliance report (stdout)           |\n| `help`         | Print sub-command reference card           | Quick reference (conversation)       |\n\nRun `constitution` through `analyze` in order. Use\n`init` to bootstrap a new project, `upgrade` to pull\nin scaffold updates, `doctor` to validate prerequisites,\nand `help` for a quick reference card.\n\n## Autonomous Execution\n\nThe spec artifacts produced by `/cpf:specforge` are\ndesigned for consumption by\n[AutoForge](https://github.com/AutoForgeAI/autoforge),\nwhich implements a two-agent pattern adapted from\n[Anthropic's autonomous coding harness](https://github.com/anthropics/claude-quickstarts/tree/main/autonomous-coding).\n\nFor users who prefer a standalone approach without\nAutoForge, the foundation includes equivalent agent\ndefinitions:\n\n**Initializer agent**\n(`.claude-plugin/agents/initializer.md`, first\nsession): Reads the spec artifacts, creates `init.sh`\nfor environment setup, scaffolds the project directory\nstructure, and validates `feature_list.json`. Does not\nimplement features.\n\n**Coding agent**\n(`.claude-plugin/agents/coder.md`, all subsequent\nsessions): Runs a 10-step loop per feature -- orient,\nstart servers, verify previously passing features,\nselect the next eligible feature, implement, test each\nacceptance criterion, update tracking, commit,\ndocument progress, clean shutdown.\n\nQuality is enforced automatically:\n\n- Claude Code hooks block destructive commands,\n  protect sensitive files, auto-format on save, and\n  run quality checks before session ends\n- Git hooks validate conventional commit format, scan\n  for secrets, and lint staged files\n- CI workflows (GitHub Actions, GitLab CI, and Jenkins\n  all provided) enforce the same gates on every push\n  and PR\n\n## Self-Applied Quality Gates\n\nThis repository applies its own quality gates. The CI\npipeline (`.github/workflows/ci.yml`) runs on every\npush and PR:\n\n| Check             | Tool                        | What it enforces                           |\n| ----------------- | --------------------------- | ------------------------------------------ |\n| Path filtering    | dorny/paths-filter          | Skip jobs when irrelevant files change     |\n| Markdown lint     | markdownlint-cli2           | Consistent markdown style                  |\n| Format check      | Prettier                    | Consistent formatting (md, yaml, json)     |\n| Shell lint        | ShellCheck                  | Shell script correctness                   |\n| Commit standards  | Custom validation (PR only) | Conventional commits, no emoji, no AI-isms |\n| Plugin validation | jq + path checks            | plugin.json, hooks.json, file references   |\n\n```bash\n# Install dev dependencies (contributors only)\nnpm install\n\n# Format all files\nnpm run format\n\n# Check formatting without modifying\nnpm run format:check\n```\n\n## Documentation\n\n| Document                                                                                    | Purpose                                                 |\n| ------------------------------------------------------------------------------------------- | ------------------------------------------------------- |\n| [CONTRIBUTING.md](CONTRIBUTING.md)                                                          | How to contribute: setup, commit standards, PR process  |\n| [SECURITY.md](SECURITY.md)                                                                  | Security policy and vulnerability reporting             |\n| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)                                                    | Contributor Covenant 2.1                                |\n| [CHANGELOG.md](CHANGELOG.md)                                                                | Release history and change details                      |\n| [scaffold/common/ci/principles/](.claude-plugin/scaffold/common/ci/principles/)             | Abstract quality gate definitions (commit, PR, release) |\n| [scaffold/common/prompts/](.claude-plugin/scaffold/common/prompts/)                         | Session prompts for initializer and coding agents       |\n| [scaffold/common/.specify/WORKFLOW.md](.claude-plugin/scaffold/common/.specify/WORKFLOW.md) | Tool-agnostic process documentation                     |\n\n## Customization\n\n**Coverage threshold:** Edit the coverage percentage in\nyour project's constitution (default: 85%). The\nverify-quality.sh hook and CI workflows reference this\nvalue.\n\n**Hook checks:** The plugin provides 6 hooks via\n`.claude-plugin/hooks/`. Each is a standalone shell\nscript with fail-open behavior. When developing on\nthis repo, the hooks also exist at `.claude/hooks/`.\n\n**Language support:** All hooks auto-detect project\ntype from configuration files (package.json,\nCargo.toml, pyproject.toml, go.mod). To add a\nlanguage: extend the detection logic in\nverify-quality.sh, post-edit.sh, and the pre-commit\nhook.\n\n**Spec workflow:** Modify\n`.claude-plugin/skills/cpf:specforge/SKILL.md` to\nadjust the interactive planning flow. Add or remove\nsub-commands, change prompting strategy, or adjust\nscoring weights.\n\n**CI platform:** `/cpf:specforge init` lets you choose\nGitHub, GitLab, or Jenkins. All three ship with fully\ntemplated CI configs (shellcheck, markdownlint,\nprettier, release pipelines). See the scaffold\ndirectories under `.claude-plugin/scaffold/github/`,\n`gitlab/`, and `jenkins/`.\n\n## Troubleshooting\n\n**\"UserPromptSubmit hook error\" from semgrep plugin.**\nIf you installed the specforge marketplace, the bundled\nsemgrep plugin registers a hook that requires the\n`semgrep` binary. If semgrep is not installed, the hook\nerrors on every prompt. Fix: install semgrep\n(`uv tool install semgrep` or `pip install semgrep`),\nor uninstall the semgrep plugin if you don't need it.\nThis is a semgrep plugin issue, not a cpf issue.\n\n**Hooks appear to do nothing.** All cpf hooks require\n`jq` to parse input. If `jq` is missing, hooks warn\nto stderr and exit (fail-open). Run\n`/cpf:specforge doctor` to check prerequisites.\n\n**Scaffold files are outdated.** After updating the\nplugin, run `/cpf:specforge upgrade` to update\nprojected files. A session-start notification appears\nwhen the scaffold version is behind the plugin version.\n\n## License\n\nCopyright 2026 Frank Schwichtenberg. [MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschwichtgit%2Fclaude-project-foundation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschwichtgit%2Fclaude-project-foundation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschwichtgit%2Fclaude-project-foundation/lists"}