@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,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 016
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-05-21
|
|
5
|
+
decision: installer-architecture
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: v2.x · monorepo-phase-3-typescript-installer
|
|
9
|
+
type: prospective
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-016 — TypeScript Installer Architecture
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-05-21 · external AI Council pass (`claude-sonnet-4-5`
|
|
17
|
+
+ `gpt-4o`, 2 rounds, `design` lens, actual cost $0.13) on
|
|
18
|
+
[`agents/roadmaps/monorepo-phase-3-typescript-installer.md`](../../agents/roadmaps/monorepo-phase-3-typescript-installer.md).
|
|
19
|
+
Council issued **conditional approval** with five blockers; this ADR
|
|
20
|
+
folds each blocker into the design before Phase 3.1 starts.
|
|
21
|
+
|
|
22
|
+
Session: [`agents/runtime/council/responses/phase-3-installer-design.json`](../../agents/runtime/council/responses/phase-3-installer-design.json) <!-- council-ref-allowed: ADR decision-trace -->
|
|
23
|
+
|
|
24
|
+
## Context
|
|
25
|
+
|
|
26
|
+
Phase 3 of the monorepo plan replaces the shell-based `install.sh` with
|
|
27
|
+
a TypeScript Core Installer that drives interactive TUI, non-interactive
|
|
28
|
+
CI flags, and a structured **agent-mode** JSON protocol over stdio. It
|
|
29
|
+
consumes [`dist/discovery/discovery-manifest.json`](../../dist/discovery/discovery-manifest.json)
|
|
30
|
+
(locked by [ADR-015](ADR-015-discovery-manifest-contract.md)) and
|
|
31
|
+
writes managed files into the consumer's `.augment/` and `.agent-src/`,
|
|
32
|
+
tracked in `agents/agent-config.lock.yml`.
|
|
33
|
+
|
|
34
|
+
The council raised five architectural risks that, left unaddressed,
|
|
35
|
+
would force post-merge rework in Phase 5 (trust) and Phase 6 (browser
|
|
36
|
+
wizard). This ADR locks the resolution of each.
|
|
37
|
+
|
|
38
|
+
## Decision
|
|
39
|
+
|
|
40
|
+
### 1. Lockfile schema v1 records provenance, not just paths
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
schema_version: 1
|
|
44
|
+
agent_config_version: 2.0.0
|
|
45
|
+
manifest_sha256: <hex> # sha256 of the consumed discovery-manifest.json
|
|
46
|
+
generated_at: 2026-05-21T12:00:00Z
|
|
47
|
+
workspaces: [engineering, governance]
|
|
48
|
+
packs:
|
|
49
|
+
- id: pack.laravel
|
|
50
|
+
version: 2.0.0
|
|
51
|
+
auto_selected: false
|
|
52
|
+
required_by: []
|
|
53
|
+
files:
|
|
54
|
+
- path: .augment/skills/laravel/SKILL.md
|
|
55
|
+
pack: pack.laravel
|
|
56
|
+
pack_version: 2.0.0
|
|
57
|
+
sha256: <hex>
|
|
58
|
+
manifest_sha256: <hex> # which manifest sourced this file
|
|
59
|
+
managed: true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`manifest_sha256` is per-file (not just per-lockfile) so Phase 5 trust
|
|
63
|
+
gates can answer "which manifest claimed this artefact was safe?"
|
|
64
|
+
without needing a lockfile rewrite.
|
|
65
|
+
|
|
66
|
+
### 2. Overrides live in a separate file the installer never writes
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
# agents/agent-config.overrides.yml — user-managed, installer reads but never writes
|
|
70
|
+
schema_version: 1
|
|
71
|
+
overrides:
|
|
72
|
+
- path: agents/overrides/skills/laravel/SKILL.md
|
|
73
|
+
shadows: .augment/skills/laravel/SKILL.md
|
|
74
|
+
reason: "Custom prompt for our team's Laravel style"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The lockfile (`.lock.yml`) is **append-only by the installer**;
|
|
78
|
+
overrides (`.overrides.yml`) are **read-only to the installer**.
|
|
79
|
+
`validate` cross-references the two. This resolves the source-of-truth
|
|
80
|
+
ambiguity the council flagged on `managed: false`.
|
|
81
|
+
|
|
82
|
+
### 3. Merge decision table replaces "three-way merge" handwaving
|
|
83
|
+
|
|
84
|
+
| Disk | Lock | Upstream | Override? | Action |
|
|
85
|
+
|---------|------|----------|-----------|--------------------------------------|
|
|
86
|
+
| A | A | A | — | no-op |
|
|
87
|
+
| A | A | B | no | write B, update lock |
|
|
88
|
+
| A | A | B | yes | write B to `.augment/`, leave override |
|
|
89
|
+
| A | A | absent | — | offer prune |
|
|
90
|
+
| X (drift) | A | A | — | warn, suggest `validate --fix` |
|
|
91
|
+
| X (drift) | A | B | no | error: manual merge required |
|
|
92
|
+
| X (drift) | A | B | yes | error: override may be stale |
|
|
93
|
+
| absent | A | B | — | write B (recreate) |
|
|
94
|
+
|
|
95
|
+
Encoded in `src/sync/merge-strategy.ts`; covered by
|
|
96
|
+
`tests/sync-algorithm.test.ts` with one case per row.
|
|
97
|
+
|
|
98
|
+
### 4. Agent mode: strict question-ID validation (stateless)
|
|
99
|
+
|
|
100
|
+
Of the three options the council surfaced (session token, nonce,
|
|
101
|
+
strict sequencing) we adopt **strict sequencing**: the CLI tracks the
|
|
102
|
+
current question id in the manifest of expected answers; any
|
|
103
|
+
`--answer` that does not match the current question id returns:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{ "status": "error", "protocol_version": 1, "reason": "out_of_order",
|
|
107
|
+
"expected_question_id": "q1.workspaces", "received": "q2.packs" }
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Stateless (no session file), enforceable, and easy to test. Nonces
|
|
111
|
+
can be added later under the same protocol version if the threat model
|
|
112
|
+
hardens.
|
|
113
|
+
|
|
114
|
+
### 5. Atomic writes via staging directory
|
|
115
|
+
|
|
116
|
+
Every command that writes to `.augment/`, `.agent-src/`, or the
|
|
117
|
+
lockfile stages changes under `.augment/.agent-config-staging/<uuid>/`,
|
|
118
|
+
verifies sha256s against intended manifest entries, then performs:
|
|
119
|
+
|
|
120
|
+
1. Atomic rename: `staging/.augment/foo.md` → `.augment/foo.md`
|
|
121
|
+
(per-file `fs.renameSync` is atomic on POSIX and Windows ≥ 10).
|
|
122
|
+
2. Lockfile written last (so a mid-flight crash leaves the lockfile
|
|
123
|
+
pointing at the previous-good state, not the partial new state).
|
|
124
|
+
3. Staging directory removed on success.
|
|
125
|
+
|
|
126
|
+
`init`, `sync`, and `prune` share the same `commitAtomic(staging)`
|
|
127
|
+
helper.
|
|
128
|
+
|
|
129
|
+
### 6. `protocol_version` field on every agent-mode response
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{ "status": "question", "protocol_version": 1, "id": "q1.workspaces", ... }
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Pinned at 1 for Phase 3; bumped to 2 only on breaking change.
|
|
136
|
+
Versioning the schema (not just `next_call`) lets Phase 5 add trust
|
|
137
|
+
banners without breaking existing agents.
|
|
138
|
+
|
|
139
|
+
## Consequences
|
|
140
|
+
|
|
141
|
+
**Positive**
|
|
142
|
+
|
|
143
|
+
- Phase 5 (trust) can add `trust_level` to lockfile packs without a
|
|
144
|
+
schema migration (already at `schema_version: 1`; trust fields
|
|
145
|
+
become optional v1 additions).
|
|
146
|
+
- Phase 6 (browser wizard) reuses the same agent-mode JSON shape over
|
|
147
|
+
a local HTTP server; the strict-sequencing model maps to HTTP
|
|
148
|
+
request/response naturally.
|
|
149
|
+
- `agents/agent-config.overrides.yml` becomes a Git-tracked
|
|
150
|
+
declaration of user intent — diffable, reviewable, and never
|
|
151
|
+
silently overwritten.
|
|
152
|
+
- Atomic writes give `sync` and `prune` crash safety without a
|
|
153
|
+
rollback subcommand.
|
|
154
|
+
|
|
155
|
+
**Negative**
|
|
156
|
+
|
|
157
|
+
- One extra YAML file in the consumer repo (overrides).
|
|
158
|
+
- Strict sequencing means agents must replay the conversation if they
|
|
159
|
+
lose state mid-call; this is the simplest threat-model resolution
|
|
160
|
+
but pushes complexity onto agent authors.
|
|
161
|
+
- Per-file `manifest_sha256` adds ~64 bytes per lockfile entry; for a
|
|
162
|
+
500-file install that's 32 KB. Acceptable.
|
|
163
|
+
|
|
164
|
+
**Deferred to Phase 5**
|
|
165
|
+
|
|
166
|
+
- npm package signature verification (SLSA Level 3 / `npm
|
|
167
|
+
provenance`). Reviewer A's "sign the package, not just the
|
|
168
|
+
manifest" call. Phase 5 owns trust gates; Phase 3 only records
|
|
169
|
+
provenance.
|
|
170
|
+
|
|
171
|
+
## Rejected alternatives
|
|
172
|
+
|
|
173
|
+
- **Single lockfile with `overrides:` section** — the original spec.
|
|
174
|
+
Rejected because the installer cannot detect untracked
|
|
175
|
+
user-authored overrides without either scanning `agents/overrides/`
|
|
176
|
+
(which a malicious agent could pollute) or trusting user edits to
|
|
177
|
+
the lockfile (which breaks "lockfile is installer-generated").
|
|
178
|
+
- **Nonce-based agent mode** — overkill for v1. Re-evaluate when
|
|
179
|
+
agent mode lands on a remote surface.
|
|
180
|
+
- **Rollback subcommand with lockfile history** — atomic writes
|
|
181
|
+
already give us crash safety; full version history is a Phase 6
|
|
182
|
+
concern (the browser wizard wants a timeline).
|
|
183
|
+
|
|
184
|
+
## References
|
|
185
|
+
|
|
186
|
+
- Roadmap: [`agents/roadmaps/monorepo-phase-3-typescript-installer.md`](../../agents/roadmaps/monorepo-phase-3-typescript-installer.md)
|
|
187
|
+
- Discovery manifest: [ADR-015](ADR-015-discovery-manifest-contract.md)
|
|
188
|
+
- CLI shell precedent: [ADR-012](ADR-012-typescript-cli-shell.md)
|
|
189
|
+
- Council session: [`agents/runtime/council/responses/phase-3-installer-design.json`](../../agents/runtime/council/responses/phase-3-installer-design.json) <!-- council-ref-allowed: ADR decision-trace -->
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 017
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-05-21
|
|
5
|
+
decision: monorepo-physical-layout
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: v2.x · monorepo-phase-4-physical-package-layout
|
|
9
|
+
type: prospective
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-017 — Monorepo Physical Package Layout
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-05-21 · external AI Council pass (`claude-sonnet-4-5`
|
|
17
|
+
+ `gpt-4o`, 2 rounds, `design` lens, actual cost $0.0961) on the Phase 4
|
|
18
|
+
roadmap. Council issued **conditional approval** with four blockers and
|
|
19
|
+
two refinements; this revision folds each into the design before the
|
|
20
|
+
`--apply` step runs.
|
|
21
|
+
|
|
22
|
+
Session: [`agents/runtime/council/responses/phase-4-physical-layout.json`](../../agents/runtime/council/responses/phase-4-physical-layout.json) <!-- council-ref-allowed: ADR decision-trace -->
|
|
23
|
+
|
|
24
|
+
Companion artefacts:
|
|
25
|
+
- [`agents/roadmaps/monorepo-phase-4-physical-package-layout.md`](../../agents/roadmaps/monorepo-phase-4-physical-package-layout.md)
|
|
26
|
+
- [`dist/migration/move-plan.json`](../../dist/migration/move-plan.json) (94 moves, 432 core, 0 conflicts)
|
|
27
|
+
- [`dist/migration/pre-move-snapshot.json`](../../dist/migration/pre-move-snapshot.json) (744 files hashed)
|
|
28
|
+
- [`scripts/plan_physical_move.py`](../../scripts/plan_physical_move.py) (plan + apply)
|
|
29
|
+
- [`scripts/verify_physical_move.py`](../../scripts/verify_physical_move.py) (post-move diff vs. snapshot)
|
|
30
|
+
|
|
31
|
+
## Context
|
|
32
|
+
|
|
33
|
+
Phases 1–3 produced the artefact metadata (`packs[]`, `workspaces[]`,
|
|
34
|
+
`trust.level`, `install.removable`), the discovery manifest, and the
|
|
35
|
+
TypeScript installer **without** moving a single file. The on-disk
|
|
36
|
+
source tree is still flat:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
.agent-src.uncompressed/
|
|
40
|
+
rules/ # 72 entries
|
|
41
|
+
skills/ # 218 entries
|
|
42
|
+
commands/ # 129 entries
|
|
43
|
+
personas/ # 24 entries
|
|
44
|
+
contexts/ # 32 entries
|
|
45
|
+
templates/ # 24 scaffolds
|
|
46
|
+
…
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This means the metadata says "this skill belongs to `pack.laravel`" but
|
|
50
|
+
the file lives next to a Symfony skill and a finance persona. Consumers
|
|
51
|
+
of the npm release, the consumer-side `.augment/` overlay, and the
|
|
52
|
+
upcoming Phase 5 trust gates would all benefit from physical separation
|
|
53
|
+
that mirrors the manifest. Phase 4 introduces that separation in one PR
|
|
54
|
+
with a deterministic, history-preserving migration.
|
|
55
|
+
|
|
56
|
+
The four risks the council flagged on Phase 3 (history loss, stale path
|
|
57
|
+
refs, cross-pack drift, hand-edited paths) all bite hardest here.
|
|
58
|
+
|
|
59
|
+
## Decision
|
|
60
|
+
|
|
61
|
+
### 1. Layout — one core, one folder per pack
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
packages/
|
|
65
|
+
core/
|
|
66
|
+
installer/ # TS CLI (already there post-Phase 3)
|
|
67
|
+
.agent-src.uncompressed/ # rules + kernel skills + scaffolds
|
|
68
|
+
pack-php/.agent-src.uncompressed/
|
|
69
|
+
pack-laravel/.agent-src.uncompressed/
|
|
70
|
+
…
|
|
71
|
+
pack-ai-video/.agent-src.uncompressed/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
No flag day: every commit between "before" and "after" the move builds
|
|
75
|
+
and ships. The TS installer needs zero behavioural changes — only the
|
|
76
|
+
`manifest-loader.ts` path roots flip.
|
|
77
|
+
|
|
78
|
+
### 2. Mapping rules (deterministic, lockfile-stable)
|
|
79
|
+
|
|
80
|
+
Implemented in [`scripts/plan_physical_move.py`](../../scripts/plan_physical_move.py):
|
|
81
|
+
|
|
82
|
+
1. **Kernel rules** → `packages/core/` (allowlist, sanity-checked against
|
|
83
|
+
[`docs/contracts/kernel-membership.md`](../contracts/kernel-membership.md) §4).
|
|
84
|
+
The locked set is 10 entries; `user-interrupt-priority` was admitted
|
|
85
|
+
post-P2.2 and is included.
|
|
86
|
+
2. **Core-trust artefacts** (`trust.level: core` AND
|
|
87
|
+
`install.removable: false`) → `packages/core/`.
|
|
88
|
+
3. **Non-frontmatter trees** (`templates/`, `profiles/`, `presets/`,
|
|
89
|
+
`contexts/`, `user-types/`, `scripts/`, `ghostwriter/`, `packs/`,
|
|
90
|
+
`personas/`) → `packages/core/` verbatim. These are scaffolding and
|
|
91
|
+
product internals, not pack-routable artefacts.
|
|
92
|
+
4. **Skill auxiliary files** (`prompts/*.md`, sub-pages inside a skill
|
|
93
|
+
directory) → inherit the destination of the nearest `SKILL.md` in
|
|
94
|
+
the parent directory tree. Codified to fix 9 false-positive conflicts
|
|
95
|
+
on Phase 4 dry-run.
|
|
96
|
+
5. **Pack-routable artefacts** → `packages/pack-<id>/`, where `<id>` is
|
|
97
|
+
the first entry in `packs[]`. Tie-breaking by alphabetic pack id.
|
|
98
|
+
6. **Quarantined scaffolds** (the 26 entries in
|
|
99
|
+
[`config/discovery/unassigned-artefacts.yml`](../../config/discovery/unassigned-artefacts.yml))
|
|
100
|
+
→ `packages/core/` with `unassigned scaffold:` reason recorded in the
|
|
101
|
+
move plan. The top-level `.agent-src.uncompressed/README.md` was added
|
|
102
|
+
here during dry-run.
|
|
103
|
+
7. **`primary pack: meta`** → `packages/core/` (package-internal
|
|
104
|
+
scaffolding, not a real pack).
|
|
105
|
+
8. **Unknown / missing pack** → fall back to `packages/core/` AND emit
|
|
106
|
+
a conflict. `--apply` refuses to run if `conflicts > 0`.
|
|
107
|
+
|
|
108
|
+
### 3. Mechanic — `git mv` only
|
|
109
|
+
|
|
110
|
+
Every move uses `git mv` so `git log --follow` keeps working on every
|
|
111
|
+
artefact post-move. The plan script's `--apply` mode is the only entry
|
|
112
|
+
point; it refuses if any conflict remains. No human-edited paths.
|
|
113
|
+
|
|
114
|
+
### 4. Byte-identity contract
|
|
115
|
+
|
|
116
|
+
`task sync` + `task build-discovery` after the move must produce
|
|
117
|
+
`.agent-src/`, `.augment/`, and `dist/discovery/discovery-manifest.json`
|
|
118
|
+
byte-identical to the pre-move snapshot **except** for
|
|
119
|
+
`artefacts[].path` values. [`scripts/verify_physical_move.py`](../../scripts/verify_physical_move.py)
|
|
120
|
+
captures a post-move snapshot and diffs against
|
|
121
|
+
`dist/migration/pre-move-snapshot.json`; the only allowed delta is the
|
|
122
|
+
`path` field per artefact.
|
|
123
|
+
|
|
124
|
+
### 5. Rollback
|
|
125
|
+
|
|
126
|
+
The whole move is a single PR. `git revert <merge-sha>` restores the
|
|
127
|
+
prior layout in one commit; the next `task sync` round-trip is back to
|
|
128
|
+
the pre-move snapshot. No data migration, no manifest schema change, no
|
|
129
|
+
installer behaviour change.
|
|
130
|
+
|
|
131
|
+
## Consequences
|
|
132
|
+
|
|
133
|
+
### Positive
|
|
134
|
+
|
|
135
|
+
- Metadata-to-disk parity: a consumer can now `cd packages/pack-laravel`
|
|
136
|
+
and see exactly what `pack.laravel` ships, no manifest indirection.
|
|
137
|
+
- Phase 5 (trust) lands cleanly inside `packages/core/installer/` and
|
|
138
|
+
reads per-pack metadata from `packages/pack-*/.agent-src.uncompressed/`.
|
|
139
|
+
- Phase 6 (browser wizard) maps packs 1:1 to its left-nav.
|
|
140
|
+
- Cross-pack drift is now lintable (`task lint-pack-boundaries` in
|
|
141
|
+
Phase 4.4 of the roadmap).
|
|
142
|
+
- `git log --follow` keeps working — no history loss.
|
|
143
|
+
|
|
144
|
+
### Negative
|
|
145
|
+
|
|
146
|
+
- One large PR (~526 file moves). Reviewers need the move plan as the
|
|
147
|
+
primary review artefact, not per-file diff inspection.
|
|
148
|
+
- Editors with the old tree open will hit broken paths until they pull.
|
|
149
|
+
Mitigated by docs-update in the same PR (`AGENTS.md`, `README.md`,
|
|
150
|
+
`docs/architecture.md`).
|
|
151
|
+
- Path refs in CI workflows, Taskfile, and the discovery scanner need
|
|
152
|
+
one-line updates. The roadmap enumerates each.
|
|
153
|
+
|
|
154
|
+
### Neutral
|
|
155
|
+
|
|
156
|
+
- The npm tarball shape changes (paths only). The installer copies
|
|
157
|
+
files by manifest entry, not by source path, so consumers see no
|
|
158
|
+
difference.
|
|
159
|
+
|
|
160
|
+
## Alternatives considered
|
|
161
|
+
|
|
162
|
+
1. **Phased move (one pack per PR).** Rejected: 16 PRs, partial states
|
|
163
|
+
on disk for weeks, `task sync` invariants harder to enforce.
|
|
164
|
+
2. **Symlink farm.** Rejected: Windows support, npm tarball duplication,
|
|
165
|
+
and the installer would have to dereference paths.
|
|
166
|
+
3. **Stay flat, lift packs into manifest-only.** Rejected: this is the
|
|
167
|
+
current state; it forfeits the metadata-to-disk parity that Phase 5
|
|
168
|
+
and Phase 6 depend on.
|
|
169
|
+
|
|
170
|
+
## Council resolution (Round 2)
|
|
171
|
+
|
|
172
|
+
Four blocking items and two refinements raised by the council; each
|
|
173
|
+
resolved before `--apply` runs.
|
|
174
|
+
|
|
175
|
+
### B1 — Final source location of `.agent-src.uncompressed/`
|
|
176
|
+
|
|
177
|
+
The council asked whether the source tree nests inside `packages/core/`
|
|
178
|
+
(current design) or becomes a peer `pack-core/`. **Decision: keep
|
|
179
|
+
`packages/core/.agent-src.uncompressed/`.** Three reasons:
|
|
180
|
+
|
|
181
|
+
1. `packages/core/` is the engine + installer + kernel rules +
|
|
182
|
+
scaffolding (templates, profiles, presets, contexts, user-types).
|
|
183
|
+
None of that is pack-routable; making it a "pack" inverts the
|
|
184
|
+
product mental model.
|
|
185
|
+
2. The installer in `packages/core/installer/` already lives next to
|
|
186
|
+
the manifest loader; co-locating the rules that bootstrap the
|
|
187
|
+
installer reduces cross-package import chains.
|
|
188
|
+
3. The TS installer consumes `dist/discovery/discovery-manifest.json`,
|
|
189
|
+
not source paths, so the "location is privileged" critique does not
|
|
190
|
+
bite — the manifest is the API.
|
|
191
|
+
|
|
192
|
+
### B2 — `git mv` rename detection at scale
|
|
193
|
+
|
|
194
|
+
Default `diff.renameLimit` since git 2.9 is 1000. Plan: 94 explicit
|
|
195
|
+
`git mv` operations + 1 directory rename for `core/`. Each move is
|
|
196
|
+
content-identical (no edits during move). Test gate: after `--apply`,
|
|
197
|
+
run `git diff --name-status HEAD~1` and assert `R100` (100 % rename
|
|
198
|
+
similarity) on every moved file. Verification script enforces this.
|
|
199
|
+
|
|
200
|
+
### B3 — Consumer-facing output contract
|
|
201
|
+
|
|
202
|
+
`task sync` writes `.agent-src/` (compressed) and `.augment/` (overlay)
|
|
203
|
+
at repo root — **unchanged** location and structure. The byte-identity
|
|
204
|
+
contract covers exactly these two trees plus the discovery manifest.
|
|
205
|
+
What changes:
|
|
206
|
+
|
|
207
|
+
- `dist/discovery/discovery-manifest.json` `artefacts[].path` values
|
|
208
|
+
(path-only delta, enforced by `verify_physical_move.py`).
|
|
209
|
+
- npm tarball internal paths (consumers never touch these; installer
|
|
210
|
+
uses manifest entries).
|
|
211
|
+
|
|
212
|
+
What stays identical: `.agent-src/`, `.augment/`, manifest checksums
|
|
213
|
+
of non-path fields, lockfile schema, installer behaviour.
|
|
214
|
+
|
|
215
|
+
### B4 — Installer dual-layout support
|
|
216
|
+
|
|
217
|
+
Not required. Consumers install via `npm install
|
|
218
|
+
@event4u/agent-config@<version>`; each version ships a self-consistent
|
|
219
|
+
tarball. There is no "consumer pulls mid-PR" scenario because consumers
|
|
220
|
+
do not consume the source repo — they consume the published tarball.
|
|
221
|
+
Source-tree contributors who pull the merge commit move atomically
|
|
222
|
+
with the layout. The "dual-layout" complexity the council proposed
|
|
223
|
+
exists in code-host-as-CDN ecosystems we do not target.
|
|
224
|
+
|
|
225
|
+
### R1 — `primary_pack` frontmatter field
|
|
226
|
+
|
|
227
|
+
`scripts/plan_physical_move.py` already uses `packs[0]` as the
|
|
228
|
+
destination. Round-2 hardening: the plan also reads an explicit
|
|
229
|
+
`primary_pack:` frontmatter field when present and prefers it over
|
|
230
|
+
`packs[0]`. Lint that requires `primary_pack` on every pack-routable
|
|
231
|
+
artefact lands in Phase 4.4 (out of scope for the move itself; the
|
|
232
|
+
move uses today's data and the new fallback).
|
|
233
|
+
|
|
234
|
+
### R2 — Pre-move pack-boundary lint
|
|
235
|
+
|
|
236
|
+
The current plan dry-run finds 0 conflicts after the auxiliary-file
|
|
237
|
+
inheritance rule landed. A cross-pack-reference lint (an artefact in
|
|
238
|
+
`pack.laravel` citing one in `pack.symfony` without a declared
|
|
239
|
+
dependency) is deferred to Phase 4.4 — the move itself does not edit
|
|
240
|
+
file contents, so cross-pack references survive the move byte-identical.
|
|
241
|
+
|
|
242
|
+
## Compliance + verification
|
|
243
|
+
|
|
244
|
+
- `scripts/plan_physical_move.py` is the only mover. Hand-edited paths
|
|
245
|
+
fail `task verify-physical-move`.
|
|
246
|
+
- `scripts/verify_physical_move.py` enforces the byte-identity
|
|
247
|
+
contract.
|
|
248
|
+
- `task ci` runs both as a hard gate post-move.
|
|
249
|
+
- Per-pack lint matrix lands in Phase 4.4 of the roadmap.
|
|
250
|
+
|
|
251
|
+
## Future work
|
|
252
|
+
|
|
253
|
+
- Phase 4.4 — per-pack `pack.yaml` + boundary lint.
|
|
254
|
+
- Phase 4.5 — contributor scaffolders (`task new-skill`,
|
|
255
|
+
`task move-artefact`).
|
|
256
|
+
- Phase 6 (optional) — split distribution per pack as separate npm
|
|
257
|
+
packages. Specification removed 2026-05-24 (drift audit, finding
|
|
258
|
+
F-1): the 150-line "documented-only" addendum had zero consumers
|
|
259
|
+
and ~6 months of unmaintained drift versus the bundled-tarball
|
|
260
|
+
model. Restore from git history at `d06af2c5` if a real consumer
|
|
261
|
+
ever asks for a single-pack install path.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 018
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-05-21
|
|
5
|
+
decision: trust-and-safety-layer
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: v2.x · monorepo-phase-5-trust-safety-layer
|
|
9
|
+
type: prospective
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-018 — Trust & Safety Layer
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-05-21 · external AI Council pass on the Phase 5
|
|
17
|
+
roadmap (`claude-sonnet-4-5` + `gpt-4o`, `design` lens). Council
|
|
18
|
+
confirmed the closed-enum trust ladder, the per-pack safety-floor
|
|
19
|
+
rule, and the compressor-injected HRR banner; refinement folded into
|
|
20
|
+
the lint script and the installer's confirm copy.
|
|
21
|
+
|
|
22
|
+
Session: [`agents/runtime/council/responses/phase-5-trust-safety.json`](../../agents/runtime/council/responses/phase-5-trust-safety.json) <!-- council-ref-allowed: ADR decision-trace -->
|
|
23
|
+
|
|
24
|
+
Companion artefacts:
|
|
25
|
+
- Contract: [`docs/contracts/trust-and-safety.md`](../contracts/trust-and-safety.md)
|
|
26
|
+
- Roadmap: [`agents/roadmaps/monorepo-phase-5-trust-safety-layer.md`](../../agents/roadmaps/monorepo-phase-5-trust-safety-layer.md)
|
|
27
|
+
- Lint: [`scripts/lint_trust_coherence.py`](../../scripts/lint_trust_coherence.py) + [`tests/test_lint_trust_coherence.py`](../../tests/test_lint_trust_coherence.py)
|
|
28
|
+
- Compressor: [`scripts/compress.py`](../../scripts/compress.py) (`_inject_hrr_banner`)
|
|
29
|
+
- Installer: [`packages/core/installer/src/trust-escalation.ts`](../../packages/core/installer/src/trust-escalation.ts)
|
|
30
|
+
|
|
31
|
+
## Context
|
|
32
|
+
|
|
33
|
+
[`ADR-013`](ADR-013-discovery-frontmatter-contract.md) added the three
|
|
34
|
+
trust fields (`trust.level`, `trust.confidence`,
|
|
35
|
+
`trust.human_review_required`) as the discovery-frontmatter contract
|
|
36
|
+
in Phase 1 of the monorepo migration. Phase 2's discovery manifest
|
|
37
|
+
([`ADR-015`](ADR-015-discovery-manifest-contract.md)) rolled them up
|
|
38
|
+
into `packs[].trust_summary`. Phases 3 and 4 wired the TypeScript
|
|
39
|
+
installer ([`ADR-016`](ADR-016-installer-architecture.md)) and moved
|
|
40
|
+
sources into `packages/` ([`ADR-017`](ADR-017-monorepo-physical-layout.md)).
|
|
41
|
+
|
|
42
|
+
After Phase 4 we had the **metadata** end-to-end but **no enforcement**:
|
|
43
|
+
|
|
44
|
+
- Installer treated all packs identically — no surface for advisory
|
|
45
|
+
content, no confirm step before opting into legally-flavoured
|
|
46
|
+
finance / strategy material.
|
|
47
|
+
- Compressor preserved frontmatter but did not propagate the
|
|
48
|
+
`human_review_required` signal into the compiled artefact, so the
|
|
49
|
+
runtime had no parser-stable hook to gate output on.
|
|
50
|
+
- Domain-specific safety floors (finance, founder-strategy,
|
|
51
|
+
engineering) existed only as drafts under
|
|
52
|
+
`agents/tmp/refactor-package.txt`; they were not first-class
|
|
53
|
+
artefacts shipped with their packs.
|
|
54
|
+
- No lint existed to catch drift between declared trust level and
|
|
55
|
+
the absence of the matching guardrail rule.
|
|
56
|
+
|
|
57
|
+
The existing universal floors (`non-destructive-by-default`,
|
|
58
|
+
`commit-policy`, `scope-control § git-ops`, `security-sensitive-stop`)
|
|
59
|
+
covered the **action** surface — destruction, push, secrets, prod —
|
|
60
|
+
but said nothing about **output** quality on advisory domains
|
|
61
|
+
(investment calls, valuation verdicts, strategic recommendations).
|
|
62
|
+
Without a Phase 5, a user installing `pack-finance-basic` could
|
|
63
|
+
receive a final "yes, invest" answer with no review banner and no
|
|
64
|
+
sensitivity required.
|
|
65
|
+
|
|
66
|
+
## Decision
|
|
67
|
+
|
|
68
|
+
Ship a four-piece trust & safety layer:
|
|
69
|
+
|
|
70
|
+
1. **Closed-enum trust ladder.** `core` · `professional` · `advisory`
|
|
71
|
+
· `restricted` · `experimental`. Authoritative table and meaning
|
|
72
|
+
live in [`trust-and-safety § 1`](../contracts/trust-and-safety.md#-1--trust-levels).
|
|
73
|
+
2. **HRR banner injection.** The compressor scans frontmatter and
|
|
74
|
+
prepends `<!-- agent-config:human-review-banner -->\n> HUMAN REVIEW
|
|
75
|
+
REQUIRED · trust: <level> · owner: <domain>` to any artefact with
|
|
76
|
+
`trust.human_review_required: true`. Idempotent on re-compression.
|
|
77
|
+
3. **Per-pack safety-floor rules.** `core` ships
|
|
78
|
+
`engineering-safety-floor.md`; `pack-finance-basic` ships
|
|
79
|
+
`finance-safety-floor.md`; `pack-founder-strategy` ships
|
|
80
|
+
`strategy-safety-floor.md`. Each is itself `advisory` +
|
|
81
|
+
`human_review_required: true`, so it carries the banner and loads
|
|
82
|
+
automatically with the pack.
|
|
83
|
+
4. **Installer confirm + lockfile escalation.** The pack picker shows
|
|
84
|
+
the trust mix per pack; selecting an advisory/restricted pack
|
|
85
|
+
triggers a confirm prompt (or `--accept-advisory=<pack-id>` in
|
|
86
|
+
non-interactive mode). Accepted trust counts are recorded in
|
|
87
|
+
`.agent-config.lock.json`. Subsequent `sync` runs that find an
|
|
88
|
+
escalation re-confirm before applying.
|
|
89
|
+
5. **Coherence lint.** `scripts/lint_trust_coherence.py` enforces:
|
|
90
|
+
(a) safety-floor presence per advisory/restricted pack;
|
|
91
|
+
(b) HRR banner presence in compiled output;
|
|
92
|
+
(c) kernel rules declare `trust.level: core`. Wired into
|
|
93
|
+
`ci-fast` and `ci-full`.
|
|
94
|
+
|
|
95
|
+
## Consequences
|
|
96
|
+
|
|
97
|
+
### Good
|
|
98
|
+
|
|
99
|
+
- **Single source of trust truth.** The frontmatter field is the
|
|
100
|
+
one input; the installer, compressor, lint, and runtime all read
|
|
101
|
+
it. No parallel registry, no duplicated copy.
|
|
102
|
+
- **Banner is parser-stable.** The HTML-comment marker survives every
|
|
103
|
+
downstream surface (Augment, Claude, Cursor, Windsurf) because it is
|
|
104
|
+
Markdown comment syntax, not prose. Runtime detection greps the
|
|
105
|
+
marker, never the human-readable line.
|
|
106
|
+
- **Coherence is enforceable in CI.** A pack that ships advisory
|
|
107
|
+
content without its safety-floor rule fails the build. A kernel
|
|
108
|
+
rule downgraded to advisory fails the build. A
|
|
109
|
+
`human_review_required` artefact whose compiled output drifted
|
|
110
|
+
fails the build.
|
|
111
|
+
- **Lockfile catches drift across releases.** An upgrade that
|
|
112
|
+
escalates a previously-`professional` artefact to `advisory`
|
|
113
|
+
re-confirms with the user instead of silently applying.
|
|
114
|
+
|
|
115
|
+
### Trade-offs
|
|
116
|
+
|
|
117
|
+
- **One more lint** (~200 LOC + 7 tests) added to `ci-fast`. Live
|
|
118
|
+
manifest run is sub-second; budget impact negligible.
|
|
119
|
+
- **Closed enum** means new trust levels (e.g. a future `regulated`)
|
|
120
|
+
require a follow-on ADR. Accepted as the price for stable lint
|
|
121
|
+
invariants.
|
|
122
|
+
- **Banner is visible in compiled output**, so users browsing
|
|
123
|
+
`.agent-src/` will see "HUMAN REVIEW REQUIRED" on advisory rules.
|
|
124
|
+
Treated as a feature, not a leak: the banner is the gate.
|
|
125
|
+
|
|
126
|
+
### Rejected alternatives
|
|
127
|
+
|
|
128
|
+
- **Per-user permission system.** Considered and rejected: trust is a
|
|
129
|
+
property of artefacts, not users. The installer's once-per-install
|
|
130
|
+
confirm is the gate; a runtime per-action authorisation would
|
|
131
|
+
duplicate the universal floors (`non-destructive-by-default` etc.)
|
|
132
|
+
without adding signal.
|
|
133
|
+
- **Re-declaring the Iron-Law floors here.** The four floors stay
|
|
134
|
+
where they live (`kernel-membership`, `safety-model`); this ADR
|
|
135
|
+
references them, never restates them. Avoids contradictory edits.
|
|
136
|
+
- **Open-ended trust enum.** A free-form string would let packs invent
|
|
137
|
+
their own levels and bypass the lint. Closed enum keeps the
|
|
138
|
+
contract enforceable.
|
|
139
|
+
|
|
140
|
+
## Open questions
|
|
141
|
+
|
|
142
|
+
- A future `regulated` level for healthcare / regulated-finance content
|
|
143
|
+
is anticipated but not in scope; will follow `pack-healthcare` or
|
|
144
|
+
similar.
|
|
145
|
+
- Per-artefact `owner` field is currently derived (first pack id).
|
|
146
|
+
Future ADR may promote `trust.owner` to an explicit frontmatter
|
|
147
|
+
key when more than one pack ships the same artefact under different
|
|
148
|
+
ownership stories.
|
|
149
|
+
|
|
150
|
+
## References
|
|
151
|
+
|
|
152
|
+
- Contract: [`docs/contracts/trust-and-safety.md`](../contracts/trust-and-safety.md)
|
|
153
|
+
- Roadmap: [`agents/roadmaps/monorepo-phase-5-trust-safety-layer.md`](../../agents/roadmaps/monorepo-phase-5-trust-safety-layer.md)
|
|
154
|
+
- Predecessors: [`ADR-013`](ADR-013-discovery-frontmatter-contract.md)
|
|
155
|
+
· [`ADR-015`](ADR-015-discovery-manifest-contract.md)
|
|
156
|
+
· [`ADR-016`](ADR-016-installer-architecture.md)
|
|
157
|
+
· [`ADR-017`](ADR-017-monorepo-physical-layout.md)
|
|
158
|
+
- Sibling: [`safety-model`](../contracts/safety-model.md) ·
|
|
159
|
+
[`kernel-membership`](../contracts/kernel-membership.md)
|