@event4u/agent-config 2.26.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent-src/commands/agent-handoff.md +15 -3
- package/.agent-src/commands/agent-status.md +12 -0
- package/.agent-src/commands/agents/audit.md +12 -0
- package/.agent-src/commands/agents/init.md +12 -0
- package/.agent-src/commands/agents/optimize.md +12 -0
- package/.agent-src/commands/agents/user/accept.md +12 -0
- package/.agent-src/commands/agents/user/init.md +12 -0
- package/.agent-src/commands/agents/user/review.md +12 -0
- package/.agent-src/commands/agents/user/show.md +12 -0
- package/.agent-src/commands/agents/user/update.md +12 -0
- package/.agent-src/commands/agents/user.md +12 -0
- package/.agent-src/commands/agents.md +12 -0
- package/.agent-src/commands/analyze-reference-repo.md +15 -3
- package/.agent-src/commands/bug-fix.md +12 -0
- package/.agent-src/commands/bug-investigate.md +13 -1
- package/.agent-src/commands/challenge-me/vision.md +12 -0
- package/.agent-src/commands/challenge-me/with-docs.md +12 -0
- package/.agent-src/commands/challenge-me.md +12 -0
- package/.agent-src/commands/chat-history/import.md +16 -4
- package/.agent-src/commands/chat-history/learn.md +15 -3
- package/.agent-src/commands/chat-history/show.md +17 -5
- package/.agent-src/commands/chat-history.md +14 -2
- package/.agent-src/commands/check-current-md.md +12 -0
- package/.agent-src/commands/commit/in-chunks.md +12 -0
- package/.agent-src/commands/commit.md +12 -0
- package/.agent-src/commands/compress.md +12 -0
- package/.agent-src/commands/context/create.md +17 -5
- package/.agent-src/commands/context/refactor.md +15 -3
- package/.agent-src/commands/context.md +12 -0
- package/.agent-src/commands/cost-report.md +12 -0
- package/.agent-src/commands/council/analysis.md +15 -3
- package/.agent-src/commands/council/debate.md +17 -5
- package/.agent-src/commands/council/default.md +17 -5
- package/.agent-src/commands/council/design.md +12 -0
- package/.agent-src/commands/council/optimize.md +12 -0
- package/.agent-src/commands/council/pr.md +12 -0
- package/.agent-src/commands/council.md +13 -1
- package/.agent-src/commands/create-pr/description-only.md +12 -0
- package/.agent-src/commands/create-pr.md +39 -0
- package/.agent-src/commands/e2e-heal.md +12 -0
- package/.agent-src/commands/e2e-plan.md +12 -0
- package/.agent-src/commands/estimate-ticket.md +12 -0
- package/.agent-src/commands/feature/dev.md +13 -1
- package/.agent-src/commands/feature/explore.md +12 -0
- package/.agent-src/commands/feature/plan.md +14 -2
- package/.agent-src/commands/feature/refactor.md +12 -0
- package/.agent-src/commands/feature/roadmap.md +12 -0
- package/.agent-src/commands/feature.md +12 -0
- package/.agent-src/commands/fix/ci.md +12 -0
- package/.agent-src/commands/fix/portability.md +12 -0
- package/.agent-src/commands/fix/pr-bot-comments.md +12 -0
- package/.agent-src/commands/fix/pr-comments.md +12 -0
- package/.agent-src/commands/fix/pr-developer-comments.md +12 -0
- package/.agent-src/commands/fix/refs.md +12 -0
- package/.agent-src/commands/fix/seeder.md +12 -0
- package/.agent-src/commands/fix.md +12 -0
- package/.agent-src/commands/ghostwriter/delete.md +20 -8
- package/.agent-src/commands/ghostwriter/fetch.md +19 -7
- package/.agent-src/commands/ghostwriter/list.md +19 -7
- package/.agent-src/commands/ghostwriter/show.md +14 -2
- package/.agent-src/commands/ghostwriter/write.md +15 -3
- package/.agent-src/commands/ghostwriter.md +14 -2
- package/.agent-src/commands/grill-me.md +12 -0
- package/.agent-src/commands/implement-ticket.md +12 -0
- package/.agent-src/commands/install-via-agent.md +129 -0
- package/.agent-src/commands/jira-ticket.md +12 -0
- package/.agent-src/commands/judge/on-diff.md +12 -0
- package/.agent-src/commands/judge/solo.md +12 -0
- package/.agent-src/commands/judge/steps.md +12 -0
- package/.agent-src/commands/judge.md +12 -0
- package/.agent-src/commands/memory/add.md +12 -0
- package/.agent-src/commands/memory/learn-low-impact.md +18 -6
- package/.agent-src/commands/memory/load.md +12 -0
- package/.agent-src/commands/memory/mine-session.md +12 -0
- package/.agent-src/commands/memory/promote.md +12 -0
- package/.agent-src/commands/memory/propose.md +12 -0
- package/.agent-src/commands/memory.md +12 -0
- package/.agent-src/commands/mode.md +12 -0
- package/.agent-src/commands/module/create.md +12 -0
- package/.agent-src/commands/module/explore.md +13 -1
- package/.agent-src/commands/module.md +12 -0
- package/.agent-src/commands/optimize/agents-dir.md +14 -2
- package/.agent-src/commands/optimize/augmentignore.md +12 -0
- package/.agent-src/commands/optimize/rtk.md +12 -0
- package/.agent-src/commands/optimize/skills.md +12 -0
- package/.agent-src/commands/optimize-prompt.md +12 -0
- package/.agent-src/commands/optimize.md +12 -0
- package/.agent-src/commands/orchestrate.md +13 -1
- package/.agent-src/commands/override/create.md +12 -0
- package/.agent-src/commands/override/manage.md +12 -0
- package/.agent-src/commands/override.md +12 -0
- package/.agent-src/commands/package-reset.md +12 -0
- package/.agent-src/commands/package-test.md +12 -0
- package/.agent-src/commands/post-as/ghostwriter.md +12 -0
- package/.agent-src/commands/post-as/me.md +13 -1
- package/.agent-src/commands/post-as.md +12 -0
- package/.agent-src/commands/prepare-for-review.md +12 -0
- package/.agent-src/commands/project-analyze.md +27 -15
- package/.agent-src/commands/project-health.md +13 -1
- package/.agent-src/commands/quality-fix.md +12 -0
- package/.agent-src/commands/refine-ticket.md +12 -0
- package/.agent-src/commands/research/deep.md +12 -0
- package/.agent-src/commands/research/report.md +12 -0
- package/.agent-src/commands/research.md +12 -0
- package/.agent-src/commands/review-changes.md +12 -0
- package/.agent-src/commands/review-routing.md +12 -0
- package/.agent-src/commands/roadmap/ai-council.md +15 -3
- package/.agent-src/commands/roadmap/create.md +13 -1
- package/.agent-src/commands/roadmap/process-full.md +12 -0
- package/.agent-src/commands/roadmap/process-phase.md +12 -0
- package/.agent-src/commands/roadmap/process-step.md +12 -0
- package/.agent-src/commands/roadmap.md +12 -0
- package/.agent-src/commands/rule-compliance-audit.md +12 -0
- package/.agent-src/commands/set-cost-profile.md +12 -0
- package/.agent-src/commands/sync-agent-settings.md +12 -0
- package/.agent-src/commands/sync-gitignore/fix.md +32 -13
- package/.agent-src/commands/sync-gitignore.md +13 -1
- package/.agent-src/commands/tests/create.md +12 -0
- package/.agent-src/commands/tests/execute.md +12 -0
- package/.agent-src/commands/tests.md +12 -0
- package/.agent-src/commands/threat-model.md +12 -0
- package/.agent-src/commands/update-form-request-messages.md +12 -0
- package/.agent-src/commands/upstream-contribute.md +12 -0
- package/.agent-src/commands/video/from-script.md +13 -1
- package/.agent-src/commands/video/scene.md +12 -0
- package/.agent-src/commands/video/stitch.md +13 -1
- package/.agent-src/commands/video/storyboard.md +12 -0
- package/.agent-src/commands/video.md +13 -1
- package/.agent-src/commands/work.md +12 -0
- package/.agent-src/contexts/augment-infrastructure.md +2 -2
- package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
- package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/.agent-src/contexts/documentation-hierarchy.md +2 -2
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
- package/.agent-src/ghostwriter/README.md +2 -2
- package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/personas/advisors/contrarian.md +1 -1
- package/.agent-src/personas/advisors/executor.md +1 -1
- package/.agent-src/personas/advisors/expansionist.md +1 -1
- package/.agent-src/personas/advisors/first-principles.md +1 -1
- package/.agent-src/personas/advisors/outsider.md +1 -1
- package/.agent-src/rules/agent-authority.md +12 -0
- package/.agent-src/rules/analysis-skill-routing.md +12 -0
- package/.agent-src/rules/architecture.md +13 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
- package/.agent-src/rules/artifact-engagement-recording.md +13 -1
- package/.agent-src/rules/ask-when-uncertain.md +12 -0
- package/.agent-src/rules/augment-edit-discipline.md +13 -1
- package/.agent-src/rules/augment-source-of-truth.md +13 -1
- package/.agent-src/rules/autonomous-execution.md +13 -1
- package/.agent-src/rules/caveman-speak.md +15 -3
- package/.agent-src/rules/cli-output-handling.md +13 -1
- package/.agent-src/rules/command-suggestion-policy.md +13 -1
- package/.agent-src/rules/commit-conventions.md +13 -1
- package/.agent-src/rules/commit-policy.md +12 -0
- package/.agent-src/rules/context-hygiene.md +51 -3
- package/.agent-src/rules/copilot-routing.md +13 -1
- package/.agent-src/rules/devcontainer-routing.md +13 -1
- package/.agent-src/rules/direct-answers.md +12 -0
- package/.agent-src/rules/docker-commands.md +13 -1
- package/.agent-src/rules/domain-adoption-policy.md +17 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
- package/.agent-src/rules/domain-safety-pii.md +13 -1
- package/.agent-src/rules/domain-safety-retention.md +13 -1
- package/.agent-src/rules/downstream-changes.md +13 -1
- package/.agent-src/rules/engineering-safety-floor.md +102 -0
- package/.agent-src/rules/external-reference-deep-dive.md +13 -1
- package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
- package/.agent-src/rules/finance-safety-floor.md +114 -0
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
- package/.agent-src/rules/git-history-discipline.md +14 -2
- package/.agent-src/rules/guidelines.md +12 -0
- package/.agent-src/rules/improve-before-implement.md +13 -1
- package/.agent-src/rules/invite-challenge.md +13 -1
- package/.agent-src/rules/language-and-tone.md +12 -0
- package/.agent-src/rules/laravel-routing.md +13 -1
- package/.agent-src/rules/laravel-translations.md +13 -1
- package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
- package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
- package/.agent-src/rules/media-governance-routing.md +27 -15
- package/.agent-src/rules/minimal-safe-diff.md +13 -1
- package/.agent-src/rules/missing-tool-handling.md +13 -1
- package/.agent-src/rules/model-recommendation.md +13 -1
- package/.agent-src/rules/no-attribution-footers.md +13 -1
- package/.agent-src/rules/no-cheap-questions.md +46 -32
- package/.agent-src/rules/no-roadmap-references.md +28 -16
- package/.agent-src/rules/non-destructive-by-default.md +12 -0
- package/.agent-src/rules/onboarding-gate.md +19 -6
- package/.agent-src/rules/package-ci-checks.md +12 -0
- package/.agent-src/rules/persona-governance.md +13 -1
- package/.agent-src/rules/php-coding.md +13 -1
- package/.agent-src/rules/preservation-guard.md +13 -1
- package/.agent-src/rules/provider-lifecycle-discipline.md +18 -6
- package/.agent-src/rules/reviewer-awareness.md +13 -1
- package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
- package/.agent-src/rules/roadmap-progress-sync.md +18 -1
- package/.agent-src/rules/role-mode-adherence.md +13 -1
- package/.agent-src/rules/rule-type-governance.md +13 -1
- package/.agent-src/rules/runtime-safety.md +13 -1
- package/.agent-src/rules/scope-control.md +12 -0
- package/.agent-src/rules/security-sensitive-stop.md +13 -1
- package/.agent-src/rules/size-enforcement.md +12 -0
- package/.agent-src/rules/skill-improvement-trigger.md +13 -1
- package/.agent-src/rules/skill-quality.md +13 -1
- package/.agent-src/rules/slash-command-routing-policy.md +13 -1
- package/.agent-src/rules/strategy-safety-floor.md +114 -0
- package/.agent-src/rules/symfony-routing.md +13 -1
- package/.agent-src/rules/think-before-action.md +13 -1
- package/.agent-src/rules/token-efficiency.md +13 -1
- package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
- package/.agent-src/rules/tool-safety.md +13 -1
- package/.agent-src/rules/ui-audit-gate.md +13 -1
- package/.agent-src/rules/upstream-proposal.md +13 -1
- package/.agent-src/rules/user-interaction.md +13 -1
- package/.agent-src/rules/user-interrupt-priority.md +12 -0
- package/.agent-src/rules/verify-before-complete.md +12 -0
- package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
- package/.agent-src/skills/activation-design/SKILL.md +12 -0
- package/.agent-src/skills/adr-create/SKILL.md +12 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
- package/.agent-src/skills/agents-md-thin-root/SKILL.md +28 -10
- package/.agent-src/skills/ai-council/SKILL.md +28 -15
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
- package/.agent-src/skills/api-design/SKILL.md +13 -3
- package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
- package/.agent-src/skills/api-testing/SKILL.md +12 -0
- package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
- package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
- package/.agent-src/skills/authz-review/SKILL.md +12 -2
- package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
- package/.agent-src/skills/blade-ui/SKILL.md +12 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
- package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
- package/.agent-src/skills/canvas-design/SKILL.md +12 -0
- package/.agent-src/skills/character-consistency/SKILL.md +23 -11
- package/.agent-src/skills/check-refs/SKILL.md +12 -0
- package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
- package/.agent-src/skills/code-review/SKILL.md +12 -0
- package/.agent-src/skills/command-routing/SKILL.md +12 -0
- package/.agent-src/skills/command-writing/SKILL.md +14 -2
- package/.agent-src/skills/comp-banding/SKILL.md +12 -0
- package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
- package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
- package/.agent-src/skills/composer-packages/SKILL.md +12 -0
- package/.agent-src/skills/compress-memory/SKILL.md +12 -0
- package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
- package/.agent-src/skills/context-authoring/SKILL.md +18 -6
- package/.agent-src/skills/context-document/SKILL.md +17 -5
- package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
- package/.agent-src/skills/copilot-config/SKILL.md +12 -0
- package/.agent-src/skills/customer-research/SKILL.md +12 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
- package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
- package/.agent-src/skills/database/SKILL.md +14 -2
- package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
- package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
- package/.agent-src/skills/decision-record/SKILL.md +12 -0
- package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
- package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
- package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
- package/.agent-src/skills/description-assist/SKILL.md +12 -0
- package/.agent-src/skills/design-review/SKILL.md +12 -0
- package/.agent-src/skills/devcontainer/SKILL.md +12 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
- package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
- package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
- package/.agent-src/skills/docker/SKILL.md +12 -0
- package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
- package/.agent-src/skills/eloquent/SKILL.md +12 -0
- package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
- package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
- package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
- package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
- package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
- package/.agent-src/skills/fe-design/SKILL.md +12 -0
- package/.agent-src/skills/feature-planning/SKILL.md +12 -0
- package/.agent-src/skills/file-editor/SKILL.md +12 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
- package/.agent-src/skills/flux/SKILL.md +12 -0
- package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
- package/.agent-src/skills/forecasting/SKILL.md +12 -2
- package/.agent-src/skills/form-handler/SKILL.md +12 -0
- package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
- package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
- package/.agent-src/skills/git-workflow/SKILL.md +12 -0
- package/.agent-src/skills/github-ci/SKILL.md +12 -0
- package/.agent-src/skills/grafana/SKILL.md +12 -0
- package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
- package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
- package/.agent-src/skills/incident-commander/SKILL.md +12 -2
- package/.agent-src/skills/jira-integration/SKILL.md +12 -0
- package/.agent-src/skills/jobs-events/SKILL.md +12 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
- package/.agent-src/skills/laravel/SKILL.md +12 -0
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
- package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
- package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
- package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
- package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
- package/.agent-src/skills/lint-skills/SKILL.md +12 -0
- package/.agent-src/skills/livewire/SKILL.md +12 -0
- package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
- package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
- package/.agent-src/skills/markitdown/SKILL.md +14 -2
- package/.agent-src/skills/mcp/SKILL.md +12 -0
- package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
- package/.agent-src/skills/md-language-check/SKILL.md +13 -1
- package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
- package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
- package/.agent-src/skills/migration-architect/SKILL.md +12 -0
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
- package/.agent-src/skills/module-management/SKILL.md +12 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
- package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
- package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
- package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
- package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
- package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
- package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
- package/.agent-src/skills/openapi/SKILL.md +13 -1
- package/.agent-src/skills/org-design/SKILL.md +12 -0
- package/.agent-src/skills/override-management/SKILL.md +12 -0
- package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
- package/.agent-src/skills/performance/SKILL.md +12 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
- package/.agent-src/skills/persona-writing/SKILL.md +12 -0
- package/.agent-src/skills/pest-testing/SKILL.md +12 -0
- package/.agent-src/skills/php-coder/SKILL.md +12 -0
- package/.agent-src/skills/php-debugging/SKILL.md +12 -0
- package/.agent-src/skills/php-service/SKILL.md +12 -0
- package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
- package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
- package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
- package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
- package/.agent-src/skills/po-discovery/SKILL.md +12 -0
- package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
- package/.agent-src/skills/privacy-review/SKILL.md +12 -2
- package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
- package/.agent-src/skills/project-docs/SKILL.md +25 -13
- package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
- package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
- package/.agent-src/skills/quality-tools/SKILL.md +12 -2
- package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +64 -3
- package/.agent-src/skills/readme-writing/SKILL.md +64 -4
- package/.agent-src/skills/readme-writing-package/SKILL.md +60 -5
- package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
- package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
- package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
- package/.agent-src/skills/release-comms/SKILL.md +12 -2
- package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
- package/.agent-src/skills/retention-loops/SKILL.md +12 -0
- package/.agent-src/skills/review-routing/SKILL.md +12 -0
- package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
- package/.agent-src/skills/risk-officer/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
- package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
- package/.agent-src/skills/rule-writing/SKILL.md +13 -1
- package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
- package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
- package/.agent-src/skills/scene-expander/SKILL.md +18 -6
- package/.agent-src/skills/script-writing/SKILL.md +13 -1
- package/.agent-src/skills/secrets-management/SKILL.md +13 -3
- package/.agent-src/skills/security/SKILL.md +12 -0
- package/.agent-src/skills/security-audit/SKILL.md +12 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
- package/.agent-src/skills/skill-management/SKILL.md +12 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
- package/.agent-src/skills/skill-writing/SKILL.md +12 -0
- package/.agent-src/skills/sql-writing/SKILL.md +12 -0
- package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
- package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +53 -0
- package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
- package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
- package/.agent-src/skills/technical-specification/SKILL.md +12 -0
- package/.agent-src/skills/terraform/SKILL.md +12 -0
- package/.agent-src/skills/terragrunt/SKILL.md +12 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
- package/.agent-src/skills/test-performance/SKILL.md +13 -1
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
- package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
- package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
- package/.agent-src/skills/traefik/SKILL.md +12 -0
- package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
- package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
- package/.agent-src/skills/video-director/SKILL.md +18 -6
- package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
- package/.agent-src/skills/voc-extract/SKILL.md +12 -2
- package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
- package/.agent-src/templates/agent-settings.md +5 -5
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
- package/.agent-src/templates/agents/proposal.example.md +12 -0
- package/.agent-src/templates/command.md +1 -1
- package/.agent-src/templates/contexts/auth-model.md +2 -2
- package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
- package/.agent-src/templates/contexts/deployment-order.md +2 -2
- package/.agent-src/templates/contexts/observability.md +3 -3
- package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
- package/.agent-src/templates/contexts.md +1 -1
- package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
- package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
- package/.agent-src/templates/rule.md +1 -1
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +7 -4
- package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
- package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
- package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
- package/.agent-src/templates/scripts/work_engine/state.py +53 -0
- package/.agent-src/templates/skill-archive-note.md +4 -4
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +12 -9
- package/CHANGELOG.md +268 -90
- package/CONTRIBUTING.md +61 -0
- package/README.md +173 -558
- package/config/agent-settings.template.yml +11 -8
- package/config/discovery/packs.yml +162 -0
- package/config/discovery/unassigned-artefacts.yml +68 -0
- package/config/discovery/workspaces.yml +59 -0
- package/config/gitignore-block.txt +36 -23
- package/dist/cli/agent-config.js +199 -0
- package/dist/cli/agent-config.js.map +1 -0
- package/dist/cli/bash/runBash.js +40 -0
- package/dist/cli/bash/runBash.js.map +1 -0
- package/dist/cli/commands/doctorShell.js +91 -0
- package/dist/cli/commands/doctorShell.js.map +1 -0
- package/dist/cli/commands/packs.js +59 -0
- package/dist/cli/commands/packs.js.map +1 -0
- package/dist/cli/commands/settings.js +35 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/uiServe.js +119 -0
- package/dist/cli/commands/uiServe.js.map +1 -0
- package/dist/cli/commands/versions.js +64 -0
- package/dist/cli/commands/versions.js.map +1 -0
- package/dist/cli/commands/workspaces.js +58 -0
- package/dist/cli/commands/workspaces.js.map +1 -0
- package/dist/cli/discovery/loadManifest.js +62 -0
- package/dist/cli/discovery/loadManifest.js.map +1 -0
- package/dist/cli/log/logger.js +41 -0
- package/dist/cli/log/logger.js.map +1 -0
- package/dist/cli/paths.js +60 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/python/resolvePython.js +38 -0
- package/dist/cli/python/resolvePython.js.map +1 -0
- package/dist/cli/registry.js +77 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/discovery/deprecation-report.md +7 -0
- package/dist/discovery/discovery-manifest.json +9893 -0
- package/dist/discovery/discovery-manifest.json.sha256 +1 -0
- package/dist/discovery/discovery-manifest.summary.md +93 -0
- package/dist/discovery/orphan-report.md +10 -0
- package/dist/discovery/packs.json +1002 -0
- package/dist/discovery/trust-report.md +26 -0
- package/dist/discovery/workspaces.json +705 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -0
- package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
- package/dist/mcp/registry-manifest.json +63 -0
- package/dist/router.json +1623 -0
- package/dist/server/app.js +125 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/io/atomicMultiWrite.js +204 -0
- package/dist/server/io/atomicMultiWrite.js.map +1 -0
- package/dist/server/io/atomicWrite.js +79 -0
- package/dist/server/io/atomicWrite.js.map +1 -0
- package/dist/server/io/substituteTemplate.js +87 -0
- package/dist/server/io/substituteTemplate.js.map +1 -0
- package/dist/server/io/yamlIO.js +162 -0
- package/dist/server/io/yamlIO.js.map +1 -0
- package/dist/server/port.js +97 -0
- package/dist/server/port.js.map +1 -0
- package/dist/server/routes/discovery.js +72 -0
- package/dist/server/routes/discovery.js.map +1 -0
- package/dist/server/routes/ping.js +57 -0
- package/dist/server/routes/ping.js.map +1 -0
- package/dist/server/routes/schema.js +41 -0
- package/dist/server/routes/schema.js.map +1 -0
- package/dist/server/routes/settings.js +236 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/userMd.js +127 -0
- package/dist/server/routes/userMd.js.map +1 -0
- package/dist/server/routes/wizard.js +374 -0
- package/dist/server/routes/wizard.js.map +1 -0
- package/dist/server/schemas/settings.js +137 -0
- package/dist/server/schemas/settings.js.map +1 -0
- package/dist/server/token.js +75 -0
- package/dist/server/token.js.map +1 -0
- package/dist/server/writeRoot.js +84 -0
- package/dist/server/writeRoot.js.map +1 -0
- package/dist/server/writeRoot.test.js +91 -0
- package/dist/server/writeRoot.test.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +83 -0
- package/dist/shared/userMd/formAdapter.js.map +1 -0
- package/dist/shared/userMd/schema.js +46 -0
- package/dist/shared/userMd/schema.js.map +1 -0
- package/dist/shared/userMd/utils.js +88 -0
- package/dist/shared/userMd/utils.js.map +1 -0
- package/dist/ui/assets/index-D-DY1ywI.js +35 -0
- package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
- package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
- package/dist/ui/index.html +14 -0
- package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
- package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
- package/docs/adrs/router/0001-three-tier-routing.md +5 -5
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
- package/docs/adrs/schema/README.md +1 -1
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +3 -3
- package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
- package/docs/architecture.md +3 -2
- package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
- package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
- package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
- package/docs/catalog.md +92 -100
- package/docs/contracts/CHANGELOG-conventions.md +1 -1
- package/docs/contracts/STABILITY.md +1 -1
- package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
- package/docs/contracts/adr-chat-history-split.md +1 -1
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
- package/docs/contracts/adr-install-user-type-axis.md +1 -1
- package/docs/contracts/adr-mcp-runtime.md +2 -2
- package/docs/contracts/agent-user-schema.md +17 -11
- package/docs/contracts/ai-council-config.md +13 -13
- package/docs/contracts/audit-log-v1.md +2 -2
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/compression-default-kill-criterion.md +3 -3
- package/docs/contracts/consumer-bridge.md +79 -0
- package/docs/contracts/decision-trace-v1.md +5 -5
- package/docs/contracts/discovery-manifest.md +209 -0
- package/docs/contracts/discovery-manifest.schema.json +219 -0
- package/docs/contracts/explain-trace.schema.json +144 -0
- package/docs/contracts/file-ownership-matrix.json +288 -328
- package/docs/contracts/file-ownership-matrix.md +1 -1
- package/docs/contracts/frontmatter-contract.md +140 -0
- package/docs/contracts/ghostwriter-schema.md +3 -3
- package/docs/contracts/gui-wizard.md +223 -0
- package/docs/contracts/hook-architecture-v1.md +10 -10
- package/docs/contracts/installer-agent-mode.md +137 -0
- package/docs/contracts/kernel-membership.md +5 -5
- package/docs/contracts/linter-structural-model.md +3 -3
- package/docs/contracts/load-context-schema.md +5 -5
- package/docs/contracts/local-server-api.md +134 -0
- package/docs/contracts/low-impact-corpus-format.md +1 -1
- package/docs/contracts/mcp-cloud-scope.md +2 -2
- package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
- package/docs/contracts/mcp-phase-1-scope.md +5 -4
- package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
- package/docs/contracts/mcp-tool-inventory.md +9 -9
- package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
- package/docs/contracts/memory-visibility-v1.md +2 -2
- package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
- package/docs/contracts/namespace.md +7 -7
- package/docs/contracts/one-off-script-lifecycle.md +1 -1
- package/docs/contracts/package-self-orientation.md +1 -1
- package/docs/contracts/provider-lifecycle.md +7 -7
- package/docs/contracts/router-blending.md +1 -1
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/rule-router.md +4 -4
- package/docs/contracts/settings-api.md +207 -0
- package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
- package/docs/contracts/smoke-contracts.md +3 -3
- package/docs/contracts/tier-3-contrib-plugin.md +1 -1
- package/docs/contracts/trust-and-safety.md +144 -0
- package/docs/contracts/universal-skills.md +1 -1
- package/docs/contracts/write-engine.md +1 -1
- package/docs/customization.md +139 -13
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
- package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +16 -4
- package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
- package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
- package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +234 -0
- package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
- package/docs/decisions/ADR-016-installer-architecture.md +189 -0
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
- package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
- package/docs/decisions/ADR-021-deployment-shape.md +153 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
- package/docs/decisions/INDEX.md +10 -0
- package/docs/deploy/connector-setup.md +129 -0
- package/docs/deploy/env-vars.md +70 -0
- package/docs/deploy/policy-cookbook.md +130 -0
- package/docs/deploy/quickstart.md +112 -0
- package/docs/distribution/mcp-submission-checklist.md +95 -0
- package/docs/distribution/public-install-smoke.md +68 -0
- package/docs/distribution/registries.md +55 -0
- package/docs/distribution/telemetry-privacy.md +128 -0
- package/docs/distribution/telemetry-schema.md +174 -0
- package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
- package/docs/examples/agent-user.example.md +3 -1
- package/docs/featured-skills.md +95 -0
- package/docs/getting-started-by-role.md +19 -1
- package/docs/getting-started.md +5 -4
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
- package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
- package/docs/guidelines/agent-infra/tool-integration.md +1 -1
- package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
- package/docs/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/prompt-templates.md +2 -2
- package/docs/hook-payload-capture.md +3 -3
- package/docs/installation.md +39 -18
- package/docs/maintainers/dev-mode.md +105 -0
- package/docs/migrations/commands-1.15.0.md +3 -3
- package/docs/parity/bench-ruflo.json +1 -1
- package/docs/parity/ruflo.md +3 -3
- package/docs/profiles.md +1 -1
- package/docs/quality.md +2 -2
- package/docs/recruits/_template.md +3 -3
- package/docs/setup/enterprise-and-offline.md +3 -3
- package/docs/setup/mcp-server-docker.md +5 -3
- package/docs/setup/per-ide/claude-desktop.md +3 -2
- package/docs/skills-catalog.md +62 -18
- package/docs/wizard.md +156 -0
- package/llms.txt +61 -17
- package/package.json +63 -3
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_archive/README.md +2 -2
- package/scripts/_archive/_p4_migrate.py +1 -1
- package/scripts/_cli/cmd_doctor.py +155 -7
- package/scripts/_cli/cmd_explain.py +108 -3
- package/scripts/_cli/cmd_migrate.py +2 -2
- package/scripts/_cli/cmd_migrate_to_global.py +415 -0
- package/scripts/_cli/cmd_settings_migrate.py +146 -0
- package/scripts/_cli/explain_last/__init__.py +122 -0
- package/scripts/_cli/explain_last/assumptions.py +59 -0
- package/scripts/_cli/explain_last/council.py +105 -0
- package/scripts/_cli/explain_last/halt.py +44 -0
- package/scripts/_cli/explain_last/inputs.py +125 -0
- package/scripts/_cli/explain_last/memory.py +94 -0
- package/scripts/_cli/explain_last/provider.py +52 -0
- package/scripts/_cli/explain_last/render.py +52 -0
- package/scripts/_cli/explain_last/route.py +59 -0
- package/scripts/_cli/explain_last/scrubber.py +105 -0
- package/scripts/_cli/explain_last/sections/__init__.py +35 -0
- package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
- package/scripts/_cli/explain_last/sections/council.py +27 -0
- package/scripts/_cli/explain_last/sections/halt.py +31 -0
- package/scripts/_cli/explain_last/sections/header.py +24 -0
- package/scripts/_cli/explain_last/sections/inputs.py +27 -0
- package/scripts/_cli/explain_last/sections/memory.py +21 -0
- package/scripts/_cli/explain_last/sections/pack.py +16 -0
- package/scripts/_cli/explain_last/sections/provider.py +26 -0
- package/scripts/_cli/explain_last/sections/route.py +22 -0
- package/scripts/_cli/explain_last/state_loader.py +76 -0
- package/scripts/_dispatch.bash +987 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +7 -4
- package/scripts/_lib/agent_src.py +157 -0
- package/scripts/_lib/agents_overlay.py +3 -3
- package/scripts/_phase4_bucket.py +210 -0
- package/scripts/agent-config +50 -947
- package/scripts/ai-video/adapters/higgsfield.sh +1 -1
- package/scripts/ai-video/adapters/sora.sh +1 -1
- package/scripts/ai-video/test-pipeline.sh +2 -2
- package/scripts/ai_council/_default_prices.py +5 -5
- package/scripts/ai_council/advisors.py +1 -1
- package/scripts/ai_council/clients.py +2 -2
- package/scripts/ai_council/compile_corpus.py +9 -8
- package/scripts/ai_council/config.py +3 -3
- package/scripts/ai_council/events_log.py +8 -4
- package/scripts/ai_council/low_impact_corpus.py +1 -1
- package/scripts/ai_council/low_impact_intake.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
- package/scripts/ai_council/pricing.py +8 -7
- package/scripts/ai_council/probation_gate.py +1 -1
- package/scripts/ai_council/redact_low_impact_entry.py +1 -1
- package/scripts/ai_council/session.py +13 -13
- package/scripts/ai_council/shadow_dispatch.py +2 -2
- package/scripts/annotate_discovery.py +149 -0
- package/scripts/audit_adr_coverage.py +1 -1
- package/scripts/audit_auto_rules.py +2 -2
- package/scripts/audit_cloud_compatibility.py +1 -1
- package/scripts/audit_command_surface.py +2 -2
- package/scripts/audit_likelihood.py +4 -4
- package/scripts/audit_overlap.py +3 -3
- package/scripts/audit_skill_descriptions.py +18 -6
- package/scripts/audit_user_type_axis.py +1 -1
- package/scripts/build_discovery_manifest.py +658 -0
- package/scripts/build_mcp_registry_manifest.py +181 -0
- package/scripts/build_rule_trigger_matrix.py +2 -2
- package/scripts/capture_showcase_session.py +1 -1
- package/scripts/chat_history.py +5 -5
- package/scripts/check_always_budget.py +7 -2
- package/scripts/check_artefact_checksums.py +104 -0
- package/scripts/check_cluster_patterns.py +20 -4
- package/scripts/check_command_count_messaging.py +33 -14
- package/scripts/check_council_layout.py +26 -20
- package/scripts/check_council_references.py +53 -14
- package/scripts/check_discovery_determinism.py +70 -0
- package/scripts/check_kernel_rule_bundle.py +2 -2
- package/scripts/check_no_roadmap_refs.py +2 -2
- package/scripts/check_one_off_location.py +1 -1
- package/scripts/check_overlay_cascade_subdirs.py +7 -3
- package/scripts/check_public_links.py +2 -2
- package/scripts/check_references.py +19 -23
- package/scripts/check_release_includes_discovery.py +61 -0
- package/scripts/check_reply_consistency.py +32 -9
- package/scripts/check_template_pin_drift.py +24 -7
- package/scripts/check_token_optimizer_freshness.py +18 -3
- package/scripts/ci_summary.py +2 -2
- package/scripts/ci_time_ratio.py +1 -1
- package/scripts/command_suggester/__init__.py +1 -1
- package/scripts/compile_router.py +34 -2
- package/scripts/compress.py +162 -44
- package/scripts/config/presets.py +19 -1
- package/scripts/config/profiles.py +16 -1
- package/scripts/context_hygiene_hook.py +2 -2
- package/scripts/council_cli.py +22 -22
- package/scripts/council_prune.py +3 -3
- package/scripts/discovery_stats.py +70 -0
- package/scripts/expected_perms.json +47 -0
- package/scripts/extract_audit_patterns.py +2 -2
- package/scripts/gen_discovery_baseline.py +127 -0
- package/scripts/generate_index.py +78 -46
- package/scripts/generate_ownership_matrix.py +99 -44
- package/scripts/generate_pack_manifests.py +183 -0
- package/scripts/hook_manifest.yaml +5 -5
- package/scripts/hooks/cline-dispatcher.sh +1 -1
- package/scripts/hooks/cowork-dispatcher.sh +1 -1
- package/scripts/hooks/dispatch_hook.py +3 -3
- package/scripts/hooks/gemini-dispatcher.sh +1 -1
- package/scripts/hooks/replay_hook.py +1 -1
- package/scripts/hooks/state_io.py +5 -5
- package/scripts/hooks_doctor.py +4 -4
- package/scripts/install +18 -1
- package/scripts/install-hooks.sh +2 -2
- package/scripts/install.py +937 -62
- package/scripts/install.sh +147 -27
- package/scripts/inventory_frontmatter.py +1 -1
- package/scripts/lint_agents_layout.py +183 -0
- package/scripts/lint_agents_md.py +1 -1
- package/scripts/lint_archived_skills.py +35 -19
- package/scripts/lint_artefact_frontmatter.py +180 -0
- package/scripts/lint_bench_corpus.py +14 -2
- package/scripts/lint_command_tiers.py +15 -2
- package/scripts/lint_discovery_manifest.py +136 -0
- package/scripts/lint_discovery_vocabulary.py +148 -0
- package/scripts/lint_explain_trace.py +80 -0
- package/scripts/lint_featured_skills.py +139 -0
- package/scripts/lint_framework_leakage.py +33 -6
- package/scripts/lint_framework_leakage_allowlist.json +63 -62
- package/scripts/lint_ghostwriter_source.py +1 -1
- package/scripts/lint_global_paths.py +147 -0
- package/scripts/lint_load_context.py +3 -3
- package/scripts/lint_mcp_registry_manifest.py +69 -0
- package/scripts/lint_media_policy_linkage.py +6 -6
- package/scripts/lint_orchestration_dsl.py +6 -3
- package/scripts/lint_pack_boundaries.py +147 -0
- package/scripts/lint_pack_first_win.py +103 -0
- package/scripts/lint_positioning.py +143 -0
- package/scripts/lint_readme_jargon.py +131 -0
- package/scripts/lint_readme_size.py +33 -0
- package/scripts/lint_rule_interactions.py +23 -5
- package/scripts/lint_rule_tiers.py +14 -5
- package/scripts/lint_skill_tools.py +1 -1
- package/scripts/lint_topics_yaml.py +89 -0
- package/scripts/lint_trust_coherence.py +212 -0
- package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
- package/scripts/mcp_server/telemetry.py +2 -2
- package/scripts/mcp_server/tools.py +27 -11
- package/scripts/mcp_telemetry_health.py +2 -2
- package/scripts/mcp_telemetry_store.py +1 -1
- package/scripts/measure_augment_budget.py +3 -3
- package/scripts/measure_density.py +2 -2
- package/scripts/measure_frugality_savings.py +3 -3
- package/scripts/measure_roadmap_trajectory.py +1 -1
- package/scripts/measure_rule_budget.py +25 -7
- package/scripts/memory_report.py +1 -1
- package/scripts/migrate_command_suggestions.py +3 -3
- package/scripts/minimal_safe_diff_hook.py +1 -1
- package/scripts/move_artefact.py +143 -0
- package/scripts/new_skill.py +148 -0
- package/scripts/onboarding_gate_hook.py +4 -4
- package/scripts/plan_physical_move.py +353 -0
- package/scripts/prepack-check.mjs +62 -0
- package/scripts/probe_projection_fidelity.py +2 -2
- package/scripts/refine_ticket_detect.py +31 -8
- package/scripts/schemas/command.schema.json +45 -1
- package/scripts/schemas/persona.schema.json +1 -1
- package/scripts/schemas/rule.schema.json +44 -4
- package/scripts/schemas/skill.schema.json +41 -1
- package/scripts/score_skill_selection.py +1 -1
- package/scripts/skill_collision_clusters.py +1 -1
- package/scripts/skill_linter.py +250 -120
- package/scripts/skill_overlap.py +1 -1
- package/scripts/skill_tools/run_block_d_eval.py +1 -1
- package/scripts/skill_trigger_eval.py +28 -8
- package/scripts/skill_usage_collect.py +3 -3
- package/scripts/skill_usage_report.py +3 -3
- package/scripts/smoke/kernel.sh +1 -1
- package/scripts/smoke/router.sh +24 -5
- package/scripts/smoke/skills.sh +15 -7
- package/scripts/smoke_quickstart.py +12 -3
- package/scripts/snapshot_agent_outputs.py +144 -0
- package/scripts/spotcheck_thin_root.py +1 -1
- package/scripts/sync_github_metadata.py +147 -0
- package/scripts/sync_gitignore.py +15 -5
- package/scripts/update_counts.py +45 -17
- package/scripts/update_prices.py +4 -3
- package/scripts/validate_decision_engine.py +9 -1
- package/scripts/validate_discovery_manifest.py +94 -0
- package/scripts/validate_frontmatter.py +39 -20
- package/scripts/verify_before_complete_hook.py +1 -1
- package/scripts/verify_physical_move.py +185 -0
- package/scripts/verify_roadmap_closure.py +1 -1
- package/templates/agent-user.md +34 -0
- package/templates/agent-user.yml +21 -0
- package/templates/minimal/agents-overrides-readme.md +46 -0
- package/templates/minimal/overrides-gitkeep +2 -0
- package/.agent-src/commands/onboard.md +0 -467
- package/templates/minimal/agents-gitkeep +0 -2
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-18
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Settings GUI — REST API Contract (v1)
|
|
7
|
+
|
|
8
|
+
> Local-only HTTP API exposed by `agent-config ui:serve` and reused by
|
|
9
|
+
> `agent-config settings` / `agent-config setup`. Listens on `127.0.0.1`
|
|
10
|
+
> only; no auth, no cross-origin. The browser SPA is the sole client —
|
|
11
|
+
> the legacy `/onboard` chat skill has been retired.
|
|
12
|
+
>
|
|
13
|
+
> Server-side validators live in `src/server/schemas/`; the JSON-Schema
|
|
14
|
+
> emitted at `GET /api/v1/schema` is derived from those Zod modules via
|
|
15
|
+
> `zod-to-json-schema` so client and server cannot drift.
|
|
16
|
+
|
|
17
|
+
## Conventions
|
|
18
|
+
|
|
19
|
+
- Base path: `/api/v1`. Any breaking change bumps the version segment.
|
|
20
|
+
- Content type: `application/json; charset=utf-8` on every request and
|
|
21
|
+
response unless noted.
|
|
22
|
+
- Errors: HTTP status carries the verdict; bodies are
|
|
23
|
+
`{ error: { code, message, fields?: Array<{ path, message }> } }`.
|
|
24
|
+
- Time format: ISO-8601 UTC (`2026-05-20T14:23:11.842Z`).
|
|
25
|
+
- File mtime: integer milliseconds since epoch (`fs.statSync(...).mtimeMs`
|
|
26
|
+
truncated to integer) — wire-stable across JSON parsers.
|
|
27
|
+
- Optimistic locking: every endpoint that mutates an on-disk file
|
|
28
|
+
echoes `lastModified` on read and requires `If-Unmodified-Since` on
|
|
29
|
+
write. Drift returns **409 Conflict** with the current file body so
|
|
30
|
+
the client can render a 3-way merge.
|
|
31
|
+
|
|
32
|
+
## Endpoints
|
|
33
|
+
|
|
34
|
+
### `GET /api/v1/schema`
|
|
35
|
+
|
|
36
|
+
Returns the JSON-Schema rendition of `settingsSchema` and `userMdSchema`
|
|
37
|
+
so the SPA can build forms without bundling Zod.
|
|
38
|
+
|
|
39
|
+
Response (200):
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"settings": { "$schema": "...", "type": "object", "properties": { ... } },
|
|
44
|
+
"userMd": { "$schema": "...", "type": "object", "properties": { ... } },
|
|
45
|
+
"generatedAt": "2026-05-20T14:23:11.842Z"
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### `GET /api/v1/settings`
|
|
50
|
+
|
|
51
|
+
Returns the **three-layer merged** settings tree plus the freshness
|
|
52
|
+
token for optimistic locking. Merge order (per **ADR-020** + roadmap
|
|
53
|
+
`road-to-global-only-install` § Phase 2.2):
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
defaults (config/agent-settings.template.yml)
|
|
57
|
+
< global (~/.event4u/agent-config/settings/.agent-settings.yml)
|
|
58
|
+
< project (<projectRoot>/settings/.agent-settings.yml, optional)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Defaults come from the package template with `__COST_PROFILE__` /
|
|
62
|
+
`__USER_TYPE__` placeholders substituted for their permissive defaults
|
|
63
|
+
(`balanced` / `""`). Global and project layers are read with the typed
|
|
64
|
+
subdir preferred over the legacy flat path. The route mirrors
|
|
65
|
+
`scripts/install.py::read_layered_settings` 1:1 so the Python installer
|
|
66
|
+
and the Fastify GUI cannot drift.
|
|
67
|
+
|
|
68
|
+
Response (200):
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"values": { "cost_profile": "balanced", "...": "..." },
|
|
73
|
+
"lastModified": 1747749791842,
|
|
74
|
+
"path": "settings/.agent-settings.yml",
|
|
75
|
+
"legacyHints": { "user_name": "Matze" }
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
`legacyHints` is an out-of-band sidecar carrying values that have moved
|
|
80
|
+
out of `settingsSchema` but still live in a pre-v2 file on disk. Keys
|
|
81
|
+
are omitted when empty, never `null`. Current hints:
|
|
82
|
+
|
|
83
|
+
| Key | Source (legacy) | New home |
|
|
84
|
+
| ----------- | ---------------------- | --------------------------------------- |
|
|
85
|
+
| `user_name` | `personal.user_name` | `.agent-user.md` → `identity.name` |
|
|
86
|
+
|
|
87
|
+
The wizard consumes hints on first run only — when `.agent-user.md`
|
|
88
|
+
does not yet exist — to pre-fill the merged identity field. Subsequent
|
|
89
|
+
PUTs strip the legacy keys (Zod-unknown), so the next read returns no
|
|
90
|
+
hints.
|
|
91
|
+
|
|
92
|
+
Errors: **404** when **neither** the global nor the project file
|
|
93
|
+
exists (defaults alone are not an "installed" state — the SPA should
|
|
94
|
+
redirect to `/#/wizard/Welcome`); **500** with `code=YAML_PARSE` when
|
|
95
|
+
either layer is on disk but unparseable (body includes the line/column).
|
|
96
|
+
|
|
97
|
+
### `POST /api/v1/settings/diff`
|
|
98
|
+
|
|
99
|
+
Computes the merged delta without writing. Used by the **Preview
|
|
100
|
+
changes** modal. Request:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"values": { "...": "..." },
|
|
105
|
+
"ifUnmodifiedSince": 1747749791842
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Response (200): `{ "changes": [{ "path": "cost_profile", "from": "minimal", "to": "balanced" }, ...] }`.
|
|
110
|
+
|
|
111
|
+
Errors: **409** on mtime drift; **422** on validation failure (`fields`
|
|
112
|
+
populated).
|
|
113
|
+
|
|
114
|
+
### `PUT /api/v1/settings`
|
|
115
|
+
|
|
116
|
+
Validates, merges with disk, writes atomically.
|
|
117
|
+
|
|
118
|
+
Request: same shape as `/diff`. Required header:
|
|
119
|
+
`If-Unmodified-Since: <ms-epoch>`.
|
|
120
|
+
|
|
121
|
+
Response (200): `{ "lastModified": <new-ms-epoch>, "writtenPaths": [".agent-settings.yml"] }`.
|
|
122
|
+
|
|
123
|
+
Errors: **412 Precondition Required** when the header is absent;
|
|
124
|
+
**409 Conflict** when the on-disk mtime is newer than the header value;
|
|
125
|
+
**422 Unprocessable Entity** with per-field errors on validation
|
|
126
|
+
failure; **500** with `code=ATOMIC_WRITE` if the temp-rename loop fails.
|
|
127
|
+
|
|
128
|
+
### `GET /api/v1/user-md`
|
|
129
|
+
|
|
130
|
+
Reads `<projectRoot>/.agent-user.md`. Returns `{ body: '', exists: false, lastModified: null }`
|
|
131
|
+
when the file is missing (wizard pre-fill case).
|
|
132
|
+
|
|
133
|
+
### `GET /api/v1/user-md/template`
|
|
134
|
+
|
|
135
|
+
Returns the package-shipped template (`templates/agent-user.md`) when
|
|
136
|
+
present, else 204 No Content. Wizard uses this to pre-fill the textarea
|
|
137
|
+
on first run.
|
|
138
|
+
|
|
139
|
+
### `PUT /api/v1/user-md`
|
|
140
|
+
|
|
141
|
+
Validates the body through `userMdSchema` (`gray-matter` parse must
|
|
142
|
+
succeed; ≤ 8 000 chars). Atomic-writes with mode 0600.
|
|
143
|
+
|
|
144
|
+
Required header: `If-Unmodified-Since: <ms-epoch>` (omitted only when
|
|
145
|
+
`exists=false` on the prior GET — server treats absence as "create new").
|
|
146
|
+
|
|
147
|
+
### `GET /api/v1/wizard/state`
|
|
148
|
+
|
|
149
|
+
Returns the persisted partial wizard state, or
|
|
150
|
+
`{ step: 0, totalSteps: <N>, partial: {}, startedAt: null }` when no
|
|
151
|
+
state file exists.
|
|
152
|
+
|
|
153
|
+
### `POST /api/v1/wizard/state`
|
|
154
|
+
|
|
155
|
+
Persists partial state between step transitions. Body:
|
|
156
|
+
`{ step: number, partial: Record<string, unknown> }`.
|
|
157
|
+
|
|
158
|
+
### `POST /api/v1/wizard/finish`
|
|
159
|
+
|
|
160
|
+
Two-Phase-Commit (council HIGH 2026-05-18): assigns a `txnId`, writes
|
|
161
|
+
`settings.yml.tmp-{txnId}` + `user-md.tmp-{txnId}` + an empty
|
|
162
|
+
`wizard.commit-intent-{txnId}` marker, renames both target files, then
|
|
163
|
+
deletes the marker. Server boot replays orphaned markers idempotently.
|
|
164
|
+
|
|
165
|
+
Response (200): `{ writtenPaths: string[], txnId: string }`.
|
|
166
|
+
|
|
167
|
+
Errors: **500** with `code=TXN_PARTIAL` when the marker survives a crash
|
|
168
|
+
(client should redirect the user to a "your last save is being
|
|
169
|
+
recovered" screen and refetch state).
|
|
170
|
+
|
|
171
|
+
## CLI: `agent-config settings migrate`
|
|
172
|
+
|
|
173
|
+
Companion to the layered reader (ADR-020). Lifts an existing
|
|
174
|
+
project-local `.agent-user.yml` / `.agent-settings.yml` into
|
|
175
|
+
`~/.event4u/agent-config/`. Idempotent — refuses to overwrite a
|
|
176
|
+
non-empty global file without `--force`. Order matches Phase 5
|
|
177
|
+
amendment A2 (`copy → verify`; the destructive `move` step is owned by
|
|
178
|
+
`migrate-to-global`, not this subcommand).
|
|
179
|
+
|
|
180
|
+
Flags:
|
|
181
|
+
|
|
182
|
+
- `--from <path>` — project root to read from (default: `cwd`).
|
|
183
|
+
- `--force` — overwrite a non-empty global file.
|
|
184
|
+
- `--dry-run` — list intended copies; zero writes; exit 0.
|
|
185
|
+
|
|
186
|
+
Exit codes: `0` on success or no-op; `1` on validation failure or a
|
|
187
|
+
non-empty global file without `--force`.
|
|
188
|
+
|
|
189
|
+
## Status codes summary
|
|
190
|
+
|
|
191
|
+
| Code | Meaning |
|
|
192
|
+
| ---- | ---------------------------------------------------- |
|
|
193
|
+
| 200 | Success |
|
|
194
|
+
| 204 | No content (template-not-shipped case) |
|
|
195
|
+
| 404 | Target file missing |
|
|
196
|
+
| 409 | `If-Unmodified-Since` drift |
|
|
197
|
+
| 412 | `If-Unmodified-Since` header missing on write |
|
|
198
|
+
| 422 | Validation failure (`error.fields` populated) |
|
|
199
|
+
| 500 | YAML parse / atomic-write / 2PC partial recovery |
|
|
200
|
+
|
|
201
|
+
## Test fixtures
|
|
202
|
+
|
|
203
|
+
Round-trip fixtures live in `tests/server/fixtures/`. Every endpoint
|
|
204
|
+
above has a happy-path test in `tests/server/<endpoint>.test.ts` and at
|
|
205
|
+
least one error-path test (409 or 422). The schema↔template parity
|
|
206
|
+
test (`tests/server/schemas/parity.test.ts`) is the gate that keeps
|
|
207
|
+
`settingsSchema` and `config/agent-settings.template.yml` in lockstep.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://event4u.app/contracts/settings-gui-agent-mode.schema.json",
|
|
4
|
+
"title": "settings-gui-agent-mode",
|
|
5
|
+
"description": "Machine-readable mode of `agent-config settings`. When invoked with `--agent`, the CLI emits a single JSON envelope to stdout instead of opening a browser; the caller (chat agent, CI script, IDE extension) drives the wizard or settings editor via the same `/api/v1/*` routes through this envelope. Lives at `docs/contracts/settings-gui-agent-mode.schema.json` per the frontend-engineer council finding (roadmap line 333).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["version", "kind", "endpoint", "auth"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"version": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "1",
|
|
13
|
+
"description": "Envelope schema version. Bumped on breaking changes."
|
|
14
|
+
},
|
|
15
|
+
"kind": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["wizard", "settings"],
|
|
18
|
+
"description": "Which mode the server booted in. `wizard` = first-run flow; `settings` = settings editor."
|
|
19
|
+
},
|
|
20
|
+
"endpoint": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["base", "discoveryFile"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"base": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"format": "uri",
|
|
28
|
+
"pattern": "^http://127\\.0\\.0\\.1:[0-9]+/?$",
|
|
29
|
+
"description": "Fastify server URL. Always 127.0.0.1; the port is picked from the foundation roadmap's port-picker."
|
|
30
|
+
},
|
|
31
|
+
"discoveryFile": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Absolute path to `.agent-config/skill-bridge.port` / `.token` / `.pid` discovery file the caller should read for handshake."
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"auth": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"additionalProperties": false,
|
|
40
|
+
"required": ["scheme", "token"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"scheme": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"const": "Bearer"
|
|
45
|
+
},
|
|
46
|
+
"token": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Random per-boot token; the caller MUST send `Authorization: Bearer <token>` on every API request. Token rotates on every `agent-config settings` boot."
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"routes": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Stable list of routes the caller may use. Schema-bound to roadmap step 0.4; new routes added here MUST land in `docs/contracts/settings-api.md` simultaneously.",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"properties": {
|
|
57
|
+
"settings": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"properties": {
|
|
61
|
+
"get": {"type": "string", "const": "/api/v1/settings"},
|
|
62
|
+
"diff": {"type": "string", "const": "/api/v1/settings/diff"},
|
|
63
|
+
"put": {"type": "string", "const": "/api/v1/settings"}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"userMd": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"additionalProperties": false,
|
|
69
|
+
"properties": {
|
|
70
|
+
"get": {"type": "string", "const": "/api/v1/user-md"},
|
|
71
|
+
"put": {"type": "string", "const": "/api/v1/user-md"},
|
|
72
|
+
"template": {"type": "string", "const": "/api/v1/user-md/template"}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"wizard": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"additionalProperties": false,
|
|
78
|
+
"properties": {
|
|
79
|
+
"state": {"type": "string", "const": "/api/v1/wizard/state"},
|
|
80
|
+
"finish": {"type": "string", "const": "/api/v1/wizard/finish"}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"shutdown": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"required": ["signal", "timeoutSeconds"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"signal": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"enum": ["SIGTERM", "SIGINT"],
|
|
93
|
+
"description": "Signal the caller sends to gracefully stop the server."
|
|
94
|
+
},
|
|
95
|
+
"timeoutSeconds": {
|
|
96
|
+
"type": "integer",
|
|
97
|
+
"minimum": 1,
|
|
98
|
+
"maximum": 60,
|
|
99
|
+
"description": "Caller's grace window before SIGKILL. Server drains in-flight requests within this window."
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"capabilities": {
|
|
104
|
+
"type": "array",
|
|
105
|
+
"description": "Optional feature flags the server advertises. Callers MAY ignore unknown values for forward compatibility.",
|
|
106
|
+
"items": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"enum": ["wizard.resumeState", "settings.diff", "settings.optimisticLock", "userMd.template", "wizard.crashRecovery"]
|
|
109
|
+
},
|
|
110
|
+
"uniqueItems": true
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"examples": [
|
|
114
|
+
{
|
|
115
|
+
"version": "1",
|
|
116
|
+
"kind": "settings",
|
|
117
|
+
"endpoint": {
|
|
118
|
+
"base": "http://127.0.0.1:41999/",
|
|
119
|
+
"discoveryFile": "/Users/dev/proj/.agent-config/skill-bridge.port"
|
|
120
|
+
},
|
|
121
|
+
"auth": {
|
|
122
|
+
"scheme": "Bearer",
|
|
123
|
+
"token": "9f3a7b2c1d4e8f6a"
|
|
124
|
+
},
|
|
125
|
+
"capabilities": ["settings.diff", "settings.optimisticLock"]
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
}
|
|
@@ -34,8 +34,8 @@ the paths touched in the PR:
|
|
|
34
34
|
|
|
35
35
|
| Tier | Globs that trigger | Script |
|
|
36
36
|
|---|---|---|
|
|
37
|
-
| kernel | `.agent-src.uncompressed/rules/**`, `.agent-src/rules/**`, `router.json`, `scripts/measure_rule_budget.py` | `scripts/smoke/kernel.sh` |
|
|
38
|
-
| router | `router.json`, `.agent-src.uncompressed/rules/**`, `.agent-src.uncompressed/skills/**`, `docs/contracts/**`, `docs/guidelines/**` | `scripts/smoke/router.sh` |
|
|
37
|
+
| kernel | `.agent-src.uncompressed/rules/**`, `.agent-src/rules/**`, `dist/router.json`, `scripts/measure_rule_budget.py` | `scripts/smoke/kernel.sh` |
|
|
38
|
+
| router | `dist/router.json`, `.agent-src.uncompressed/rules/**`, `.agent-src.uncompressed/skills/**`, `docs/contracts/**`, `docs/guidelines/**` | `scripts/smoke/router.sh` |
|
|
39
39
|
| schema | `.agent-src.uncompressed/skills/**`, `.agent-src.uncompressed/rules/**`, `scripts/schemas/**`, `scripts/skill_linter.py`, `scripts/validate_frontmatter.py` | `scripts/smoke/schema.sh` |
|
|
40
40
|
| skills | `.agent-src.uncompressed/skills/**` | `scripts/smoke/skills.sh` |
|
|
41
41
|
|
|
@@ -131,7 +131,7 @@ the final baseline line) for CI summary parsing.
|
|
|
131
131
|
| Symptom | Likely cause | Fix |
|
|
132
132
|
|---|---|---|
|
|
133
133
|
| `kernel.sh` reports > 9 missing fences | Kernel rule lost its Iron Law block during edit | Restore the fence; update `EXEMPT_FROM_FENCE` only for new dispatch indexes |
|
|
134
|
-
| `router.sh` reports > 0 broken pointers | `router.json` references an id without a rule file | Add the rule or remove the route — never edit the smoke baseline up |
|
|
134
|
+
| `router.sh` reports > 0 broken pointers | `dist/router.json` references an id without a rule file | Add the rule or remove the route — never edit the smoke baseline up |
|
|
135
135
|
| `schema.sh` reports FAILs | A skill / rule lost a required field | Restore via [`scripts/schemas/skill.schema.json`](../../scripts/schemas/skill.schema.json) |
|
|
136
136
|
| `skills.sh` 5/5 random sample fails | Hand-edit broke frontmatter or renamed directory without updating `name:` | Restore filename ↔ slug coupling |
|
|
137
137
|
|
|
@@ -34,7 +34,7 @@ Tier-3 is the explicit overflow bucket.
|
|
|
34
34
|
|
|
35
35
|
The following surfaces are Tier-3 candidates as of 2026-05-12. They
|
|
36
36
|
were surfaced during the
|
|
37
|
-
[`2026-05-12-installer-expansion`](../../agents/council
|
|
37
|
+
[`2026-05-12-installer-expansion`](../../agents/runtime/council/sessions/2026-05-12-installer-expansion/synthesis.md)
|
|
38
38
|
council round and have **no entries** in `_VALID_TOOLS`,
|
|
39
39
|
`USER_SCOPE_PATHS`, `SCOPE_SUPPORT`, or the bash `VALID_TOOLS` set.
|
|
40
40
|
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-21
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Trust & Safety Layer — Phase 5 of the monorepo migration
|
|
7
|
+
|
|
8
|
+
> **Status:** active · **Stability:** beta · **Owner:** monorepo-phase-5
|
|
9
|
+
> · **Authoritative ADR:** [`ADR-018`](../decisions/ADR-018-trust-and-safety-layer.md)
|
|
10
|
+
|
|
11
|
+
Phase 1 stamped every artefact with `trust.level`,
|
|
12
|
+
`trust.confidence`, and `trust.human_review_required`. Phase 5
|
|
13
|
+
**enforces** those fields: the installer surfaces them at selection
|
|
14
|
+
time, the compressor injects banners into compiled output, the
|
|
15
|
+
runtime gates `human_review_required: true` artefacts before final
|
|
16
|
+
output, and a lint catches drift. This contract is what those four
|
|
17
|
+
consumers depend on.
|
|
18
|
+
|
|
19
|
+
## § 1 — Trust levels
|
|
20
|
+
|
|
21
|
+
A closed enum on `trust.level`:
|
|
22
|
+
|
|
23
|
+
| level | meaning |
|
|
24
|
+
|---------------|----------------------------------------------------------------------|
|
|
25
|
+
| `core` | Iron-Law / structural. Cannot be downgraded. Kernel rules sit here. |
|
|
26
|
+
| `professional`| Domain expertise the user opted into; no human-review floor. |
|
|
27
|
+
| `advisory` | High-impact judgement. Installer **must** confirm; banner injected. |
|
|
28
|
+
| `restricted` | Reserved for future legal / regulated content. Same surface as advisory, stricter copy. |
|
|
29
|
+
| `experimental`| Pre-stable. May be removed without ADR. |
|
|
30
|
+
|
|
31
|
+
`trust.confidence` is a parallel signal (`high` · `medium` · `low`)
|
|
32
|
+
used by the manifest's summary; it does **not** gate behaviour.
|
|
33
|
+
|
|
34
|
+
`trust.human_review_required: true` is the per-artefact banner gate.
|
|
35
|
+
Independent of `trust.level` so a `professional` artefact can still
|
|
36
|
+
demand review on its specific surface.
|
|
37
|
+
|
|
38
|
+
## § 2 — HRR banner
|
|
39
|
+
|
|
40
|
+
The compressor (`scripts/compress.py`) prepends every artefact whose
|
|
41
|
+
frontmatter declares `trust.human_review_required: true` with:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
<!-- agent-config:human-review-banner -->
|
|
45
|
+
> HUMAN REVIEW REQUIRED · trust: <level> · owner: <domain>
|
|
46
|
+
|
|
47
|
+
<original body>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- The HTML comment is the parser-stable marker
|
|
51
|
+
(`_HRR_BANNER_MARKER` in `scripts/compress.py`). Runtime detection
|
|
52
|
+
greps for this string, never the prose line.
|
|
53
|
+
- Idempotent: re-compressing a file that already carries the marker
|
|
54
|
+
leaves it unchanged.
|
|
55
|
+
- `<domain>` is the first pack id that ships the artefact (e.g.
|
|
56
|
+
`finance-basic`, `founder-strategy`); falls back to `core` for
|
|
57
|
+
unscoped artefacts.
|
|
58
|
+
|
|
59
|
+
## § 3 — Domain safety floors
|
|
60
|
+
|
|
61
|
+
Each pack that ships any `advisory`/`restricted` artefact MUST also
|
|
62
|
+
ship at least one rule whose logical filename contains
|
|
63
|
+
`safety-floor`. The current set:
|
|
64
|
+
|
|
65
|
+
| pack | safety-floor rule |
|
|
66
|
+
|-------------------------|----------------------------------------------------|
|
|
67
|
+
| `core` (universal) | `rules/engineering-safety-floor.md` |
|
|
68
|
+
| `pack-finance-basic` | `rules/finance-safety-floor.md` |
|
|
69
|
+
| `pack-finance-advanced` | inherits `finance-safety-floor` from `pack-finance-basic` |
|
|
70
|
+
| `pack-founder-strategy` | `rules/strategy-safety-floor.md` |
|
|
71
|
+
|
|
72
|
+
A safety-floor rule:
|
|
73
|
+
|
|
74
|
+
- Carries `trust.level: advisory` and `trust.human_review_required: true`
|
|
75
|
+
itself — it ships with the banner.
|
|
76
|
+
- Names what the agent must **not** issue (final investment call, binding
|
|
77
|
+
legal advice, single-path strategic verdict) and what it must surface
|
|
78
|
+
instead (alternatives, sensitivity, assumptions, jurisdiction).
|
|
79
|
+
- Loads automatically alongside the rest of the pack — no opt-in.
|
|
80
|
+
|
|
81
|
+
## § 4 — Installer flow
|
|
82
|
+
|
|
83
|
+
[`packages/core/installer/src/trust-escalation.ts`](../../packages/core/installer/src/trust-escalation.ts)
|
|
84
|
+
implements the gate:
|
|
85
|
+
|
|
86
|
+
1. **Display.** The pack picker reads `packs[].trust_summary` from
|
|
87
|
+
`dist/discovery/discovery-manifest.json` and renders one line per pack:
|
|
88
|
+
`Finance basic: 3 advisory · 3 professional · human-review on 1`.
|
|
89
|
+
2. **Confirm.** Selecting a pack with any `advisory`/`restricted`
|
|
90
|
+
artefact triggers a confirm prompt. Non-interactive mode (CI,
|
|
91
|
+
agent-mode) requires `--accept-advisory=<pack-id>[,<pack-id>...]`
|
|
92
|
+
explicitly; absence aborts with a non-zero exit.
|
|
93
|
+
3. **Agent-mode.** Emits a structured `confirm` question type with the
|
|
94
|
+
trust counts inline; the host agent must relay it verbatim per
|
|
95
|
+
`command-suggestion-policy`.
|
|
96
|
+
4. **Lockfile.** `.agent-config.lock.json` records the accepted trust
|
|
97
|
+
counts per pack at install time. A later `sync` that finds the
|
|
98
|
+
manifest's `trust_summary` has **escalated** (more advisory /
|
|
99
|
+
restricted artefacts than were accepted) re-runs the confirm step
|
|
100
|
+
before applying.
|
|
101
|
+
|
|
102
|
+
## § 5 — Coherence lint
|
|
103
|
+
|
|
104
|
+
`scripts/lint_trust_coherence.py` (wired into `ci-fast` and `ci-full`)
|
|
105
|
+
asserts three invariants over `dist/discovery/discovery-manifest.json`:
|
|
106
|
+
|
|
107
|
+
1. **Safety-floor presence.** Every pack with
|
|
108
|
+
`trust_summary.advisory + trust_summary.restricted > 0` ships at
|
|
109
|
+
least one artefact whose logical path contains `safety-floor`.
|
|
110
|
+
2. **Banner presence.** Every artefact with
|
|
111
|
+
`trust.human_review_required: true` has its compiled output under
|
|
112
|
+
`.agent-src/<logical>` and that output contains
|
|
113
|
+
`<!-- agent-config:human-review-banner -->`.
|
|
114
|
+
3. **Kernel trust floor.** Every rule listed in `dist/router.json` `kernel[]`
|
|
115
|
+
declares `trust.level: core`. No escalation (advisory blocks the
|
|
116
|
+
Iron-Law floor) and no demotion (experimental cannot guarantee it).
|
|
117
|
+
|
|
118
|
+
Exits 0 clean, 1 on any violation. Tests in
|
|
119
|
+
`tests/test_lint_trust_coherence.py` lock the seven failure modes.
|
|
120
|
+
|
|
121
|
+
## § 6 — What this contract does **not** do
|
|
122
|
+
|
|
123
|
+
- **Per-user permissions.** Trust is a property of artefacts, not of
|
|
124
|
+
users. The installer confirms once at install / sync time; there is
|
|
125
|
+
no runtime per-action authorisation.
|
|
126
|
+
- **Rewriting the Iron Law floor.** `non-destructive-by-default`,
|
|
127
|
+
`commit-policy`, `scope-control § git-ops`, `security-sensitive-stop`
|
|
128
|
+
keep their universal scope — this contract references them, never
|
|
129
|
+
re-declares them. See [`safety-model`](safety-model.md) and
|
|
130
|
+
[`kernel-membership`](kernel-membership.md).
|
|
131
|
+
- **Versioning the trust enum.** A new level (e.g. a future
|
|
132
|
+
`regulated`) requires a follow-on ADR; this contract enumerates the
|
|
133
|
+
current closed set.
|
|
134
|
+
|
|
135
|
+
## § 7 — References
|
|
136
|
+
|
|
137
|
+
- ADR: [`ADR-018 — Trust & Safety Layer`](../decisions/ADR-018-trust-and-safety-layer.md)
|
|
138
|
+
- Compressor implementation: [`scripts/compress.py`](../../scripts/compress.py)
|
|
139
|
+
(`_inject_hrr_banner`, `_HRR_BANNER_MARKER`)
|
|
140
|
+
- Installer implementation: [`packages/core/installer/src/trust-escalation.ts`](../../packages/core/installer/src/trust-escalation.ts)
|
|
141
|
+
- Lint implementation: [`scripts/lint_trust_coherence.py`](../../scripts/lint_trust_coherence.py)
|
|
142
|
+
- Sibling contracts: [`safety-model`](safety-model.md) ·
|
|
143
|
+
[`kernel-membership`](kernel-membership.md) ·
|
|
144
|
+
[`ADR-013` — discovery frontmatter](../decisions/ADR-013-discovery-frontmatter-contract.md)
|
|
@@ -76,7 +76,7 @@ Adding a skill to this allowlist:
|
|
|
76
76
|
1. Open a PR that edits this file + the relevant skill's `recommended_for_user_types:` (omitted = universal).
|
|
77
77
|
2. Cite ≥ 4 user-type prompts from `tests/eval/corpus-non-dev.yaml` that select the skill.
|
|
78
78
|
3. Require approval from one Tier-1 reviewer (architecture-review-lens or skill-writing).
|
|
79
|
-
4. Document the inclusion in `agents/eval-findings/` with the supporting eval prompts.
|
|
79
|
+
4. Document the inclusion in `agents/evidence/eval-findings/` with the supporting eval prompts.
|
|
80
80
|
|
|
81
81
|
Removing a skill is breaking. It must be announced in `STABILITY.md` with a deprecation window ≥ one minor release.
|
|
82
82
|
|
|
@@ -24,7 +24,7 @@ consumer command; the **only** axis of variation is:
|
|
|
24
24
|
|
|
25
25
|
| Consumer command | Style source | Footer |
|
|
26
26
|
|---|---|---|
|
|
27
|
-
| `/ghostwriter:write` | `agents/ghostwriter/<slug>.md` (selected) | **Mandatory** |
|
|
27
|
+
| `/ghostwriter:write` | `agents/reference/ghostwriter/<slug>.md` (selected) | **Mandatory** |
|
|
28
28
|
| `/post-as:ghostwriter` | Same as above (thin alias) | **Mandatory** |
|
|
29
29
|
| `/post-as:me` | `.agent-user.md` (project root) | **Omitted** — user is the author |
|
|
30
30
|
|