UNPKG

@blundergoat/goat-flow

Version:

AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.

314 lines (303 loc) 13.8 kB
{ "description": "Expected goat-flow project structure. Source of truth for setup, audit, and upgrade paths. Not a JSON Schema - this is a manifest of what should exist on disk.", "version": "1.12.1", "required_files": [ ".goat-flow/.gitignore", ".goat-flow/config.yaml", ".goat-flow/plans/.gitignore", ".goat-flow/plans/README.md", ".goat-flow/logs/quality/README.md", ".goat-flow/logs/events/README.md", ".goat-flow/logs/critiques/README.md", ".goat-flow/logs/review/README.md", ".goat-flow/logs/security/README.md", ".goat-flow/scratchpad/.gitignore", ".goat-flow/scratchpad/README.md", ".goat-flow/learning-loop/lessons/README.md", ".goat-flow/learning-loop/footguns/README.md", ".goat-flow/learning-loop/decisions/README.md", ".goat-flow/logs/sessions/.gitkeep", ".goat-flow/skill-docs/README.md", ".goat-flow/skill-docs/skill-preamble.md", ".goat-flow/skill-docs/skill-conventions.md", ".goat-flow/skill-docs/playbooks/README.md", ".goat-flow/skill-docs/playbooks/browser-use.md", ".goat-flow/skill-docs/playbooks/changelog.md", ".goat-flow/skill-docs/playbooks/code-comments.md", ".goat-flow/skill-docs/playbooks/gruff-code-quality.md", ".goat-flow/skill-docs/playbooks/observability.md", ".goat-flow/skill-docs/playbooks/page-capture.md", ".goat-flow/skill-docs/playbooks/release-notes.md", ".goat-flow/skill-docs/skill-quality-testing/README.md", ".goat-flow/skill-docs/skill-quality-testing/tdd-iteration.md", ".goat-flow/skill-docs/skill-quality-testing/adversarial-framing.md", ".goat-flow/skill-docs/skill-quality-testing/deployment.md", ".goat-flow/hooks/deny-dangerous.sh", ".goat-flow/hooks/gruff-code-quality.sh", ".goat-flow/hooks/post-turn-safety.sh", ".goat-flow/hooks/deny-dangerous/patterns-shell.sh", ".goat-flow/hooks/deny-dangerous/patterns-paths.sh", ".goat-flow/hooks/deny-dangerous/patterns-writes.sh", ".goat-flow/hooks/deny-dangerous/deny-dangerous-self-test.sh", ".goat-flow/architecture.md", ".goat-flow/code-map.md", ".goat-flow/glossary.md", ".goat-flow/learning-loop/patterns/README.md" ], "required_dirs": [ ".goat-flow/learning-loop/decisions/", ".goat-flow/learning-loop/footguns/", ".goat-flow/learning-loop/lessons/", ".goat-flow/learning-loop/patterns/", ".goat-flow/logs/sessions/", ".goat-flow/logs/quality/", ".goat-flow/logs/events/", ".goat-flow/logs/critiques/", ".goat-flow/logs/review/", ".goat-flow/logs/security/", ".goat-flow/scratchpad/", ".goat-flow/skill-docs/", ".goat-flow/skill-docs/playbooks/", ".goat-flow/skill-docs/skill-quality-testing/", ".goat-flow/hooks/", ".goat-flow/hooks/deny-dangerous/", ".goat-flow/plans/" ], "directory_purposes": { ".goat-flow/learning-loop/decisions/": "Committed ADR history. Durable architectural, product-surface, and tooling decisions with context and rationale; part of the project's persistent knowledge, not session-scoped WIP.", ".goat-flow/learning-loop/footguns/": "Committed architectural trap records. Use for codebase or system footguns that exist independent of one agent mistake; entries should carry grep-friendly file evidence and remain part of durable project knowledge.", ".goat-flow/learning-loop/lessons/": "Committed behavioural mistake records. Use for real agent or workflow mistakes learned from incidents; these entries are durable project knowledge, not local session notes.", ".goat-flow/logs/sessions/": "Workspace-local, gitignored-by-design session logs. Continuity notes for the current checkout only; not part of committed project history. Only .gitkeep is committed.", ".goat-flow/logs/quality/": "Workspace-local, gitignored-by-design quality report history. Saved agent quality reports (JSON) and their captured prose companions (MD); feeds `goat-flow quality history`, `goat-flow quality diff`, and prior same-agent prompt context. Only README.md is committed.", ".goat-flow/logs/events/": "Workspace-local, gitignored-by-design evidence envelope event log. Dashboard and future runtime producers append redacted JSONL records for local continuity; durable project knowledge must be promoted to lessons/, footguns/, or decisions/. Only README.md is committed.", ".goat-flow/logs/critiques/": "Workspace-local, gitignored-by-design critique run history. Phase 3 snapshots from `/goat-critique` runs persisted before the Phase 4 blocking gate so work survives session interruptions. Only README.md is committed.", ".goat-flow/logs/review/": "Workspace-local, gitignored-by-design review artifact history. Refutation ledgers and cross-model refuter outputs from `/goat-review` runs are stored here so review integrity evidence survives session interruptions. Only README.md is committed.", ".goat-flow/logs/security/": "Workspace-local, gitignored-by-design security assessment history. Saved `/goat-security` run outputs for reference across sessions. Only README.md is committed.", ".goat-flow/scratchpad/": "Local, gitignored-by-design working notes. Session-scoped WIP; not a persistence gap. Durable project knowledge belongs in lessons/, footguns/, or decisions/. Transient continuity notes belong in logs/sessions/. Only README.md, .gitignore, and .gitkeep are committed.", ".goat-flow/skill-docs/": "Committed shared meta references composed into every goat-flow skill at scoring and runtime. Holds README.md, skill-preamble.md (Proof Gate, OBSERVED/INFERRED tagging, evidence discipline; loaded every skill invocation), skill-conventions.md (footgun/lesson entry shapes, frontmatter contracts; loaded on full-depth). These describe the universal contract every skill inherits - adding a new file here commits every skill to inherit it.", ".goat-flow/skill-docs/playbooks/": "Committed standalone playbooks for tools and capabilities available to coding agents. Holds README.md as the capability-playbook index, browser-use.md for browser evidence capture, changelog.md for CHANGELOG.md discipline, code-comments.md for inline-comment discipline, gruff-code-quality.md for gruff analyzer triage/fix/verification workflow across gruff-go/gruff-rs/gruff-ts/gruff-php/gruff-py, observability.md for instrumentation discipline, page-capture.md for Playwright page-capture usage tiers, and release-notes.md for per-release narrative discipline. Loaded on-demand by skills/agents - never composed into a skill at scoring time.", ".goat-flow/skill-docs/skill-quality-testing/": "Committed skill-authoring methodology pack. README.md indexes the pack; tdd-iteration.md, adversarial-framing.md, and deployment.md cover skill TDD, pressure-testing, and deployment discipline.", ".goat-flow/hooks/": "Committed central hook runtime. Holds deny-dangerous.sh, gruff-code-quality.sh, post-turn-safety.sh, and hook-specific policy modules under subdirectories.", ".goat-flow/hooks/deny-dangerous/": "Committed shared hook policy store sourced by each agent's deny-dangerous.sh dispatcher. Holds the destructive-shell, secret-path, repository-write policy modules and the central deny-dangerous self-test.", ".goat-flow/plans/": "Local, gitignored-by-design milestone files and plan subdirs. Session-scoped coordination state; not a persistence gap. Only README.md and .gitignore are committed." }, "optional_files": { "_note": "Optional files created when the project needs them, not during base setup.", ".cursorignore": "Excludes secret/sensitive paths from Cursor context." }, "never_create": [], "skills": { "canonical": [ "goat", "goat-debug", "goat-plan", "goat-review", "goat-critique", "goat-security", "goat-qa" ], "references": { "goat-plan": [ "references/milestone-examples.md", "references/issue-format.md" ], "goat-critique": [ "references/rubric-examples.md", "references/sub-agent-directives.md" ], "goat-review": [ "references/examples.md", "references/refuter-spec.md", "references/automated-review.md" ], "goat-security": [ "references/common-threats.md", "references/identity-and-data.md", "references/file-upload-and-paths.md", "references/supply-chain-and-cicd.md", "references/project-policy-template.md" ] }, "stale_names": [ "goat-audit", "goat-investigate", "goat-onboard", "goat-reflect", "goat-resume", "goat-context", "goat-simplify", "goat-refactor", "goat-preflight", "goat-research", "goat-sbao", "goat-test" ] }, "hooks": { "stale_names": [ "guard-common.sh", "guard-destructive-shell.sh", "guard-secret-paths.sh", "guard-repository-writes.sh", "guardrails-self-test.sh", "deny-dangerous.self-test.sh", "post-turn-validate.sh", "plan-checkbox-guard.sh" ] }, "agents": { "claude": { "name": "Claude Code", "instruction_file": "CLAUDE.md", "skills_dir": ".claude/skills/", "capabilities": { "terminal_binary": "claude", "setup_surfaces": ["CLAUDE.md", ".claude/settings.json"], "prompt_invocation_style": "slash", "skill_source": "installed" }, "hooks_dir": ".goat-flow/hooks/", "settings": ".claude/settings.json", "hook_config_file": ".claude/settings.json", "deny_hook": ".goat-flow/hooks/deny-dangerous.sh", "deny_mechanism": { "type": "both", "settings_path": ".claude/settings.json", "script_path": ".goat-flow/hooks/deny-dangerous.sh" }, "local_pattern": "*/CLAUDE.md", "hook_events": { "pre_tool": "PreToolUse", "post_turn": "Stop" }, "hooks": [ "deny-dangerous.sh", "gruff-code-quality.sh", "post-turn-safety.sh" ] }, "codex": { "name": "Codex", "instruction_file": "AGENTS.md", "skills_dir": ".agents/skills/", "capabilities": { "terminal_binary": "codex", "setup_surfaces": [ "AGENTS.md", ".codex/config.toml", ".codex/hooks.json" ], "prompt_invocation_style": "dollar", "skill_source": "agent-mirror" }, "hooks_dir": ".goat-flow/hooks/", "settings": ".codex/config.toml", "hook_config_file": ".codex/hooks.json", "deny_hook": ".goat-flow/hooks/deny-dangerous.sh", "deny_mechanism": { "type": "both", "settings_path": ".codex/config.toml", "script_path": ".goat-flow/hooks/deny-dangerous.sh" }, "local_pattern": ".github/instructions/*.md", "hook_events": { "pre_tool": "PreToolUse", "post_turn": null }, "hooks": ["deny-dangerous.sh"] }, "antigravity": { "name": "Antigravity", "instruction_file": "AGENTS.md", "skills_dir": ".agents/skills/", "capabilities": { "terminal_binary": "agy", "setup_surfaces": [ "AGENTS.md", ".agents/skills/", ".agents/hooks.json", ".goat-flow/hooks/" ], "prompt_invocation_style": "slash", "skill_source": "agent-mirror" }, "hooks_dir": ".goat-flow/hooks/", "hook_config_file": ".agents/hooks.json", "deny_hook": ".goat-flow/hooks/deny-dangerous.sh", "deny_mechanism": { "type": "deny-script", "path": ".goat-flow/hooks/deny-dangerous.sh" }, "local_pattern": "*/AGENTS.md", "hook_events": { "pre_tool": "PreToolUse", "post_turn": null }, "hooks": [ "deny-dangerous.sh", "gruff-code-quality.sh" ] }, "copilot": { "name": "Copilot CLI", "instruction_file": ".github/copilot-instructions.md", "skills_dir": ".github/skills/", "capabilities": { "terminal_binary": "copilot", "setup_surfaces": [ ".github/copilot-instructions.md", ".github/instructions/**/*.instructions.md", ".github/hooks/hooks.json" ], "prompt_invocation_style": "slash", "skill_source": "github-mirror" }, "hooks_dir": ".goat-flow/hooks/", "hook_config_file": ".github/hooks/hooks.json", "deny_hook": ".goat-flow/hooks/deny-dangerous.sh", "deny_mechanism": { "type": "deny-script", "path": ".goat-flow/hooks/deny-dangerous.sh" }, "local_pattern": ".github/instructions/**/*.instructions.md", "hook_events": { "pre_tool": "preToolUse", "post_turn": null }, "hooks": ["deny-dangerous.sh", "gruff-code-quality.sh"] } }, "instruction_file": { "line_target": 125, "line_limit": 150, "required_sections": [ "Truth Order", "Autonomy Tiers", "Hard Rules", "Key Resources", "Essential Commands", "Execution Loop", "Definition of Done", "Artifact Routing", "Router Table" ], "version_header_pattern": "# {FILE} - v{VERSION} ({DATE})" }, "facts": { "_note": "Static facts only. Derived facts (check counts, skill names, version, presets count) are computed by src/cli/manifest/manifest.ts at load time. `goat-flow manifest --check` validates static facts against observed state (src/dashboard/views/*.html).", "dashboard_views": [ "about", "coming-soon", "home", "hooks", "projects", "prompts", "quality", "settings", "setup", "skills", "plans", "workspace" ] } }