@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
|
@@ -18,7 +18,7 @@ keep-beta-until: 2026-08-12
|
|
|
18
18
|
This contract defines the **schema** of the file-ownership matrix: the
|
|
19
19
|
machine-readable JSON at `docs/contracts/file-ownership-matrix.json` and
|
|
20
20
|
the human-readable mirror at
|
|
21
|
-
`agents/contexts/structural/file-ownership-matrix.md`. Both are
|
|
21
|
+
`agents/settings/contexts/structural/file-ownership-matrix.md`. Both are
|
|
22
22
|
regenerated from `.agent-src.uncompressed/` by the generator and locked
|
|
23
23
|
by CI.
|
|
24
24
|
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-19
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Per-artefact frontmatter contract
|
|
7
|
+
|
|
8
|
+
> Companion to [`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md)
|
|
9
|
+
> and [`discovery-manifest.schema.json`](discovery-manifest.schema.json). The
|
|
10
|
+
> ADR is the decision; this file is the worked-example reference linters,
|
|
11
|
+
> installer, and contributors cite at runtime.
|
|
12
|
+
|
|
13
|
+
Every `.md` artefact under `.agent-src.uncompressed/` MUST declare the five
|
|
14
|
+
ADR-013 discovery keys. The release-time manifest builder
|
|
15
|
+
(`scripts/build_discovery_manifest.py`) derives all workspace/pack assignment
|
|
16
|
+
from these alone — **no manual workspace or pack list is ever maintained**.
|
|
17
|
+
|
|
18
|
+
## Required keys
|
|
19
|
+
|
|
20
|
+
| Key | Type | Vocabulary | Source |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| `workspaces` | `array<string>`, ≥1 | [`config/discovery/workspaces.yml`](../../config/discovery/workspaces.yml) | role-based axis |
|
|
23
|
+
| `packs` | `array<string>`, ≥1 | [`config/discovery/packs.yml`](../../config/discovery/packs.yml) | functional axis |
|
|
24
|
+
| `lifecycle` | enum | `active` · `experimental` · `deprecated` · `archived` | review cycle |
|
|
25
|
+
| `trust.level` | enum | `core` · `professional` · `experimental` · `advisory` · `restricted` | safety gate |
|
|
26
|
+
| `trust.confidence` | enum | `high` · `medium` · `low` | curator signal |
|
|
27
|
+
| `trust.human_review_required` | bool | — | reviewer routing |
|
|
28
|
+
| `install.default` | bool | — | ships-by-default toggle |
|
|
29
|
+
| `install.removable` | bool | — | core / removable axis |
|
|
30
|
+
|
|
31
|
+
Vocabularies are **closed**. New entries require an amendment to
|
|
32
|
+
[`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md) in the
|
|
33
|
+
same PR. The linter
|
|
34
|
+
([`scripts/lint_artefact_frontmatter.py`](../../scripts/lint_artefact_frontmatter.py))
|
|
35
|
+
rejects free-text values.
|
|
36
|
+
|
|
37
|
+
## Worked examples
|
|
38
|
+
|
|
39
|
+
### Skill — `laravel/SKILL.md`
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
---
|
|
43
|
+
name: laravel
|
|
44
|
+
description: "Writes Laravel PHP — Eloquent, Artisan, FormRequests, jobs, policies."
|
|
45
|
+
source: package
|
|
46
|
+
domain: engineering
|
|
47
|
+
workspaces:
|
|
48
|
+
- engineering
|
|
49
|
+
packs:
|
|
50
|
+
- laravel
|
|
51
|
+
lifecycle: active
|
|
52
|
+
trust:
|
|
53
|
+
level: professional
|
|
54
|
+
confidence: high
|
|
55
|
+
human_review_required: false
|
|
56
|
+
install:
|
|
57
|
+
default: false
|
|
58
|
+
removable: true
|
|
59
|
+
---
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Rule — `rules/commit-policy.md`
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
---
|
|
66
|
+
type: "always"
|
|
67
|
+
tier: "safety-floor"
|
|
68
|
+
description: "Commit policy — never commit unless explicitly authorized this turn."
|
|
69
|
+
alwaysApply: true
|
|
70
|
+
source: package
|
|
71
|
+
workspaces:
|
|
72
|
+
- engineering
|
|
73
|
+
packs:
|
|
74
|
+
- engineering-base
|
|
75
|
+
lifecycle: active
|
|
76
|
+
trust:
|
|
77
|
+
level: core
|
|
78
|
+
confidence: high
|
|
79
|
+
human_review_required: false
|
|
80
|
+
install:
|
|
81
|
+
default: true
|
|
82
|
+
removable: false
|
|
83
|
+
---
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Command — `commands/cost-report.md`
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
---
|
|
90
|
+
name: cost-report
|
|
91
|
+
tier: 2
|
|
92
|
+
description: "Capture token cost from the active session and surface the 50/75/90/100% budget ladder."
|
|
93
|
+
workspaces:
|
|
94
|
+
- agent-config-maintainer
|
|
95
|
+
packs:
|
|
96
|
+
- meta
|
|
97
|
+
lifecycle: active
|
|
98
|
+
trust:
|
|
99
|
+
level: core
|
|
100
|
+
confidence: high
|
|
101
|
+
human_review_required: false
|
|
102
|
+
install:
|
|
103
|
+
default: true
|
|
104
|
+
removable: false
|
|
105
|
+
---
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Quarantine
|
|
109
|
+
|
|
110
|
+
Artefacts that genuinely cannot yet carry frontmatter (early scaffolds,
|
|
111
|
+
generated stubs) MUST be listed in
|
|
112
|
+
[`config/discovery/unassigned-artefacts.yml`](../../config/discovery/unassigned-artefacts.yml)
|
|
113
|
+
with a `reason`. A quarantined entry MUST NOT also carry the five keys —
|
|
114
|
+
the linter rejects that collision.
|
|
115
|
+
|
|
116
|
+
## Enforcement
|
|
117
|
+
|
|
118
|
+
| Surface | What runs | When |
|
|
119
|
+
|---|---|---|
|
|
120
|
+
| Local | `task lint-artefact-frontmatter` | manual / pre-commit |
|
|
121
|
+
| Pre-commit | `pre-commit-roadmap-progress` template | when `.agent-src.uncompressed/*.md`, `config/discovery/*.yml`, or the linter itself is staged |
|
|
122
|
+
| CI | `task ci` → `lint-artefact-frontmatter` | every push / PR |
|
|
123
|
+
|
|
124
|
+
Install the pre-commit hook with:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
./agent-config hooks:install # combined hook (roadmap + frontmatter)
|
|
128
|
+
./agent-config hooks:install --print # dump to stdout for manual chaining
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The hook is opt-in per concern — it short-circuits when no relevant files
|
|
132
|
+
are staged.
|
|
133
|
+
|
|
134
|
+
## Roundtrip invariant
|
|
135
|
+
|
|
136
|
+
Frontmatter survives the `task sync` compression pipeline. Path-bearing
|
|
137
|
+
keys (`load_context`) may be rewritten relative to the projected location,
|
|
138
|
+
but the five Phase-1 keys above are byte-stable between
|
|
139
|
+
`.agent-src.uncompressed/`, `.agent-src/`, and `.augment/`. Enforced by
|
|
140
|
+
`tests/test_frontmatter_roundtrip.py`.
|
|
@@ -21,7 +21,7 @@ explicit `accept` step on `/ghostwriter:fetch` re-runs.
|
|
|
21
21
|
|
|
22
22
|
## Storage model (dual)
|
|
23
23
|
|
|
24
|
-
- **Consumer projects** — `agents/ghostwriter/<slug>.md`. Real-person
|
|
24
|
+
- **Consumer projects** — `agents/reference/ghostwriter/<slug>.md`. Real-person
|
|
25
25
|
profiles live here. **Gitignored by default** via the package-managed
|
|
26
26
|
`.gitignore` block. A `--shared` opt-in to commit profiles is
|
|
27
27
|
deferred to v2; only the doc note lands in v1.
|
|
@@ -298,7 +298,7 @@ The lint runs in `task ci` and fails on:
|
|
|
298
298
|
2. Any allowlisted file missing `fictional: true` in frontmatter.
|
|
299
299
|
3. Any package-source file (`fictional: true`) carrying an `aliases:`
|
|
300
300
|
field (aliases are a consumer-only feature; see [§ Aliases](#aliases)).
|
|
301
|
-
4. Any consumer-side file under `agents/ghostwriter/` with `fictional: true`
|
|
301
|
+
4. Any consumer-side file under `agents/reference/ghostwriter/` with `fictional: true`
|
|
302
302
|
(fictional profiles belong in the package source, not consumer trees).
|
|
303
303
|
5. Any consumer-side `aliases:` entry that violates the storage rules:
|
|
304
304
|
shorter than 2 characters, non-Latin scripts (homoglyph protection),
|
|
@@ -325,7 +325,7 @@ cluster registration.
|
|
|
325
325
|
|
|
326
326
|
## Gitignore
|
|
327
327
|
|
|
328
|
-
`agents/ghostwriter/*.md` (except `README.md`) is added to the
|
|
328
|
+
`agents/reference/ghostwriter/*.md` (except `README.md`) is added to the
|
|
329
329
|
package-managed `.gitignore` block ([`config/gitignore-block.txt`](../../config/gitignore-block.txt))
|
|
330
330
|
and ignored by default. A `--shared` opt-in to commit profiles is
|
|
331
331
|
deferred to v2.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-19
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GUI wizard — local browser installer
|
|
7
|
+
|
|
8
|
+
> Companion to the agent-mode protocol
|
|
9
|
+
> ([`installer-agent-mode.md`](installer-agent-mode.md)) and the
|
|
10
|
+
> trust-and-safety layer ([`trust-and-safety.md`](trust-and-safety.md)).
|
|
11
|
+
> The wizard is a thin HTTP wrapper around the same install plan, the
|
|
12
|
+
> same lockfile, and the same atomic-write semantics as the CLI/TUI
|
|
13
|
+
> paths. It is **optional by design** — the CLI is the canonical entry
|
|
14
|
+
> point; the wizard exists for non-technical users who want a visual
|
|
15
|
+
> picker.
|
|
16
|
+
|
|
17
|
+
## Source of truth
|
|
18
|
+
|
|
19
|
+
- Server: [`packages/core/installer/src/gui/server.ts`](../../packages/core/installer/src/gui/server.ts)
|
|
20
|
+
- Handlers: [`packages/core/installer/src/gui/handlers.ts`](../../packages/core/installer/src/gui/handlers.ts)
|
|
21
|
+
- Security primitives: [`packages/core/installer/src/gui/security.ts`](../../packages/core/installer/src/gui/security.ts)
|
|
22
|
+
- Inlined SPA: [`packages/core/installer/src/gui/static-assets.ts`](../../packages/core/installer/src/gui/static-assets.ts)
|
|
23
|
+
- Transaction log: [`packages/core/installer/src/gui/transaction-log.ts`](../../packages/core/installer/src/gui/transaction-log.ts)
|
|
24
|
+
- Tests: [`packages/core/installer/tests/gui-*.test.ts`](../../packages/core/installer/tests/)
|
|
25
|
+
|
|
26
|
+
## Local-only invariant
|
|
27
|
+
|
|
28
|
+
The server **must** bind to `127.0.0.1` and reject any request whose
|
|
29
|
+
`Host` header is not in `{ "127.0.0.1:<port>", "localhost:<port>" }`.
|
|
30
|
+
`Origin` is additionally checked on every POST. No CDN, no analytics,
|
|
31
|
+
no cross-origin asset, no remote endpoint — CSP
|
|
32
|
+
`default-src 'self'` is set on every response.
|
|
33
|
+
|
|
34
|
+
## Boot sequence
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
npx @event4u/agent-config init --gui [--gui-port=<n>] [--no-open] [--gui-idle=<s>]
|
|
38
|
+
│
|
|
39
|
+
├─► inspect agents/runtime/gui/server.pid → abort if live
|
|
40
|
+
├─► load dist/discovery/discovery-manifest.json (walks up from CWD)
|
|
41
|
+
├─► generate per-server CSRF token (64-hex)
|
|
42
|
+
├─► http.createServer + listen({ host: '127.0.0.1', port: 0 })
|
|
43
|
+
├─► write agents/runtime/gui/server.pid (POSIX pid, single line)
|
|
44
|
+
├─► default-spawn the OS browser opener (skipped with --no-open)
|
|
45
|
+
└─► return GuiServerHandle { url, port, csrfToken, pidFile, close }
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Idle timeout (default 600 s, configurable via `--gui-idle`) is keyed on
|
|
49
|
+
the **last HTTP request timestamp**, not on SSE event activity.
|
|
50
|
+
|
|
51
|
+
## Endpoints
|
|
52
|
+
|
|
53
|
+
| Method | Path | Purpose |
|
|
54
|
+
|--------|------------------|------------------------------------------------------|
|
|
55
|
+
| GET | `/` | SPA shell with CSRF token injected via `<meta>` |
|
|
56
|
+
| GET | `/app.css` | Static stylesheet |
|
|
57
|
+
| GET | `/app.js` | Inlined SPA logic |
|
|
58
|
+
| GET | `/api/manifest` | `{ manifest, sha256 }` — bytes-identical to disk |
|
|
59
|
+
| GET | `/api/auto-detect` | `{ signals: { composer, package, pyproject } }` |
|
|
60
|
+
| POST | `/api/preview` | `{ plan, lockfileSha256 }` for current selection |
|
|
61
|
+
| POST | `/api/apply` | SSE: `plan-file`, `progress`, `done`, `error` |
|
|
62
|
+
| POST | `/api/cancel` | Flush in-flight transaction log, close SSE stream |
|
|
63
|
+
|
|
64
|
+
All POSTs require:
|
|
65
|
+
|
|
66
|
+
1. `Origin` header matching `http://127.0.0.1:<port>` or
|
|
67
|
+
`http://localhost:<port>`.
|
|
68
|
+
2. Body field `csrf` matching the per-server token (timing-safe
|
|
69
|
+
compare in `security.ts`).
|
|
70
|
+
|
|
71
|
+
A bad CSRF returns `403` with no body. A bad Origin or Host returns
|
|
72
|
+
`403` with a short plaintext reason.
|
|
73
|
+
|
|
74
|
+
## Transaction log + rollback
|
|
75
|
+
|
|
76
|
+
Every `POST /api/apply` writes append-only JSONL entries to
|
|
77
|
+
`<projectRoot>/agents/runtime/gui/install-<ts>.log`. Shapes are
|
|
78
|
+
declared in
|
|
79
|
+
[`types.ts § TransactionLogEntry`](../../packages/core/installer/src/gui/types.ts):
|
|
80
|
+
|
|
81
|
+
- `start` — workspaces + packs selected
|
|
82
|
+
- `plan` — one entry per planned write (`path`, `pack`)
|
|
83
|
+
- `commit` — `filesWritten`, `lockfileSha256`
|
|
84
|
+
- `cancel` — explicit `POST /api/cancel`
|
|
85
|
+
- `error` — terminating failure with `message`
|
|
86
|
+
|
|
87
|
+
The next `--gui` boot inspects the most recent log and offers to roll
|
|
88
|
+
back if it ended on `start`/`plan`/`error` without a matching
|
|
89
|
+
`commit`/`cancel`. The CLI path consumes the same log, so a mid-install
|
|
90
|
+
crash can be undone from either entry point.
|
|
91
|
+
|
|
92
|
+
## SSE event framing
|
|
93
|
+
|
|
94
|
+
Every `POST /api/apply` event is `data: <json>\n\n`. The terminal event
|
|
95
|
+
is one of:
|
|
96
|
+
|
|
97
|
+
```jsonc
|
|
98
|
+
{ "type": "done", "filesWritten": 12, "lockfileSha256": "<64-hex>" }
|
|
99
|
+
{ "type": "error", "message": "<reason>" }
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The browser closes the EventSource on either; the server flushes the
|
|
103
|
+
transaction log and unblocks the idle timer.
|
|
104
|
+
|
|
105
|
+
## Tarball budget
|
|
106
|
+
|
|
107
|
+
GUI assets under `packages/core/installer/src/gui/` (inlined HTML +
|
|
108
|
+
CSS + JS in `static-assets.ts`) must stay **≤ 200 KB compiled**. The
|
|
109
|
+
constraint is enforced by reviewer judgment for now; a CI check is
|
|
110
|
+
tracked under the Phase 6 follow-ups.
|
|
111
|
+
|
|
112
|
+
## Security failure modes covered
|
|
113
|
+
|
|
114
|
+
- **Remote exploitation** — loopback bind, Host allowlist, Origin
|
|
115
|
+
allowlist, CSRF token, CSP `default-src 'self'`.
|
|
116
|
+
- **DNS rebinding** — Host header check covers POSTs that omit
|
|
117
|
+
`Origin` (form posts).
|
|
118
|
+
- **Zombie servers** — ephemeral port + PID file + last-request idle
|
|
119
|
+
timer. Stale PIDs (process gone) are silently overwritten on next
|
|
120
|
+
boot; live PIDs block boot with a helpful message.
|
|
121
|
+
- **Mid-install crash** — transaction log + boot-time rollback prompt.
|
|
122
|
+
- **Hidden state** — closing the tab triggers idle timeout; no
|
|
123
|
+
cross-tab session.
|
|
124
|
+
|
|
125
|
+
## Non-goals (documented contract)
|
|
126
|
+
|
|
127
|
+
- Not a hosted SaaS — no auth, no account model, no telemetry.
|
|
128
|
+
- Not a settings editor — read-only on the lockfile; writes go
|
|
129
|
+
through the same install plan as the CLI.
|
|
130
|
+
- Not a CI surface — every operation is reachable via `--gui-port=0
|
|
131
|
+
--no-open` is supported for headless smoke tests, but the canonical
|
|
132
|
+
CI path is the flag-driven non-interactive CLI.
|
|
133
|
+
|
|
134
|
+
## Apply payload — versioning handshake (road-to-global-only-install Phase 0.4 · D12)
|
|
135
|
+
|
|
136
|
+
`/api/apply` accepts a discriminated-union body keyed on
|
|
137
|
+
`schema_version`. The full JSON Schema lives at
|
|
138
|
+
[`schemas/wizard-apply-payload.schema.json`](../../schemas/wizard-apply-payload.schema.json).
|
|
139
|
+
|
|
140
|
+
| `schema_version` | Variant | Shape |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| `"installer-v1"` | `InstallerPayloadV1` | `{ ai_tools[], configs{}, dry_run? }` — legacy Installer-GUI, AI tools only. |
|
|
143
|
+
| `"wizard-v2"` | `WizardPayloadV2` | `{ tools[], packs[], settings{}, scope_to_project_only?, dry_run? }` — unified 9-step wizard. |
|
|
144
|
+
|
|
145
|
+
**D12 (locked).** Single `/api/apply` endpoint with a `schema_version`
|
|
146
|
+
discriminator — **not** two endpoints with a shared Python backend.
|
|
147
|
+
Reasoning: one bind, one CSRF token, one transaction log; the
|
|
148
|
+
Python `scripts/install.py` payload-router branches on
|
|
149
|
+
`schema_version` before any disk write. The dual-endpoint variant was
|
|
150
|
+
considered and rejected for doubling the CSRF + idle-timer surface
|
|
151
|
+
with no observability gain.
|
|
152
|
+
|
|
153
|
+
`schema_version` is **required**. Servers MUST reject any body that
|
|
154
|
+
lacks it (HTTP 400, single-line error pointing at the schema). This
|
|
155
|
+
locks the contract before Phase 1 implementation so no implicit fork
|
|
156
|
+
can sneak in at Phase 1.5.
|
|
157
|
+
|
|
158
|
+
## Unified 9-step flow (road-to-global-only-install § Phase 1.6)
|
|
159
|
+
|
|
160
|
+
The maintainer-facing wizard at `src/server/routes/wizard.ts` switches
|
|
161
|
+
between two step layouts based on the server-side `extendedSteps`
|
|
162
|
+
flag (default `false` for v2.x users; flipped to `true` by the
|
|
163
|
+
`agent-config setup` CLI when the npm-version kill-switch is in
|
|
164
|
+
effect):
|
|
165
|
+
|
|
166
|
+
| `extendedSteps` | Steps | Layout |
|
|
167
|
+
|---|---|---|
|
|
168
|
+
| `false` | 7 | `editor → personality → cost → roadmap-quality → memory → user-md → review` |
|
|
169
|
+
| `true` | 9 | `ai-tools → packs → editor → personality → cost → roadmap-quality → memory → user-md → review` |
|
|
170
|
+
|
|
171
|
+
The step shapes themselves are declared in
|
|
172
|
+
[`src/ui/wizard/steps.ts`](../../src/ui/wizard/steps.ts) — the two
|
|
173
|
+
prepended lead steps (`ai-tools`, `packs`) carry no `paths` and use
|
|
174
|
+
dedicated renderers in `WizardPage.tsx`. `getWizardSteps({ extended })`
|
|
175
|
+
is the single resolver; the UI consumes the active list via
|
|
176
|
+
`getActiveSteps()` / `activeTotalSteps()` so a server toggle takes
|
|
177
|
+
effect on the next reload without a code change.
|
|
178
|
+
|
|
179
|
+
### `GET /api/v1/wizard/state` payload
|
|
180
|
+
|
|
181
|
+
```jsonc
|
|
182
|
+
{
|
|
183
|
+
"step": 0,
|
|
184
|
+
"totalSteps": 9,
|
|
185
|
+
"partial": {},
|
|
186
|
+
"startedAt": null,
|
|
187
|
+
"extendedSteps": true
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
`extendedSteps` is **advisory** — older server bundles MAY omit it,
|
|
192
|
+
and the UI treats `undefined` as `false`. `totalSteps` reflects the
|
|
193
|
+
flow that was active when the partial was written, which the UI uses
|
|
194
|
+
for resume continuity; the active step set is otherwise derived from
|
|
195
|
+
the current `extendedSteps` flag.
|
|
196
|
+
|
|
197
|
+
### State persistence + recovery
|
|
198
|
+
|
|
199
|
+
Per-session state is written to `<writeRoot>/state/wizard-state.json`
|
|
200
|
+
(under the global config root, typically
|
|
201
|
+
`~/.event4u/agent-config/state/wizard-state.json`). If the file
|
|
202
|
+
becomes malformed — partial JSON write, orphaned session from a
|
|
203
|
+
previous npm version, manual edit gone wrong — the recovery path is:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
agent-config doctor --repair wizard-state
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The repair unlinks the file (idempotent; absent files are a no-op
|
|
210
|
+
success). The next `agent-config setup` boots from step 1 with a
|
|
211
|
+
fresh `startedAt`. A matching `wizard-state` health check is part of
|
|
212
|
+
the standard `agent-config doctor` run and surfaces malformed JSON or
|
|
213
|
+
schema-shape drift before the next setup attempt.
|
|
214
|
+
|
|
215
|
+
### Extended-mode endpoints
|
|
216
|
+
|
|
217
|
+
`extendedSteps: true` activates two additional read-only endpoints:
|
|
218
|
+
|
|
219
|
+
| Method | Path | Purpose |
|
|
220
|
+
|--------|-------------------------------|---------|
|
|
221
|
+
| GET | `/api/v1/wizard/auto-detect` | Project-signal evidence (composer / package / pyproject / artisan / next.config) for the `ai-tools` step. 404 when extended-mode is off. |
|
|
222
|
+
| GET | `/api/v1/wizard/manifest` | Locked discovery-manifest (ADR-015) so the `packs` step can render supported AI IDs + every pack the manifest exposes. 404 when extended-mode is off. |
|
|
223
|
+
|
|
@@ -11,9 +11,9 @@ written, tested, and refactored against a stable surface.
|
|
|
11
11
|
|
|
12
12
|
**Scope.** Defines the dispatcher's stdin/stdout shape, exit-code
|
|
13
13
|
semantics, the `hook_manifest.yaml` schema, the concurrency contract
|
|
14
|
-
for `agents/state/` writes, and the Copilot fallback pattern. Does
|
|
14
|
+
for `agents/runtime/state/` writes, and the Copilot fallback pattern. Does
|
|
15
15
|
**not** specify per-platform install paths — those live in
|
|
16
|
-
[`chat-history-platform-hooks.md`](../../agents/contexts/chat-history-platform-hooks.md).
|
|
16
|
+
[`chat-history-platform-hooks.md`](../../agents/settings/contexts/chat-history-platform-hooks.md).
|
|
17
17
|
|
|
18
18
|
Last refreshed: 2026-05-04.
|
|
19
19
|
|
|
@@ -74,7 +74,7 @@ inferred from exit code only).
|
|
|
74
74
|
"decision": "allow" | "block" | "warn",
|
|
75
75
|
"reason": "human-readable, ≤ 200 chars",
|
|
76
76
|
"additional_context": "optional — surfaces back to the model on platforms that support it",
|
|
77
|
-
"state_writes": ["agents/state/chat-history.json", "…"]
|
|
77
|
+
"state_writes": ["agents/runtime/state/chat-history.json", "…"]
|
|
78
78
|
}
|
|
79
79
|
```
|
|
80
80
|
|
|
@@ -103,7 +103,7 @@ runs them **sequentially** in manifest order and reduces:
|
|
|
103
103
|
in manifest order. Concerns are never run in parallel — concurrency
|
|
104
104
|
guarantees rely on serial state writes.
|
|
105
105
|
|
|
106
|
-
## Feedback channel — `agents/state/.dispatcher/<session_id>/`
|
|
106
|
+
## Feedback channel — `agents/runtime/state/.dispatcher/<session_id>/`
|
|
107
107
|
|
|
108
108
|
Exit-code reduction collapses the severity ladder to a single
|
|
109
109
|
platform-native code, which can hide a `warn` behind a `block` or
|
|
@@ -112,7 +112,7 @@ without re-routing control flow, the dispatcher writes a feedback
|
|
|
112
112
|
directory per invocation:
|
|
113
113
|
|
|
114
114
|
```
|
|
115
|
-
agents/state/.dispatcher/<session_id>/
|
|
115
|
+
agents/runtime/state/.dispatcher/<session_id>/
|
|
116
116
|
<concern>.json — one file per concern that ran
|
|
117
117
|
summary.json — rollup written after the last concern
|
|
118
118
|
```
|
|
@@ -176,9 +176,9 @@ platform, every event key must be in the agent-config event vocabulary.
|
|
|
176
176
|
|
|
177
177
|
## Concurrency — atomic state writes
|
|
178
178
|
|
|
179
|
-
Concerns that write under `agents/state/` MUST use the pattern:
|
|
179
|
+
Concerns that write under `agents/runtime/state/` MUST use the pattern:
|
|
180
180
|
|
|
181
|
-
1. Acquire `fcntl.flock(LOCK_EX)` on `agents/state/.dispatcher.lock`.
|
|
181
|
+
1. Acquire `fcntl.flock(LOCK_EX)` on `agents/runtime/state/.dispatcher.lock`.
|
|
182
182
|
2. Write to a sibling `<dest>.tmp.<pid>` file in the same directory.
|
|
183
183
|
3. `os.replace(tmp, dest)` — POSIX-atomic on the same filesystem.
|
|
184
184
|
4. Release the lock.
|
|
@@ -195,7 +195,7 @@ writes (file ends with valid JSON, last-writer-wins).
|
|
|
195
195
|
## Copilot fallback pattern
|
|
196
196
|
|
|
197
197
|
Copilot has no hook surface. Concerns whose source rule cites
|
|
198
|
-
`agents/state/<concern>.json` MUST gain a "Copilot fallback" section
|
|
198
|
+
`agents/runtime/state/<concern>.json` MUST gain a "Copilot fallback" section
|
|
199
199
|
that:
|
|
200
200
|
|
|
201
201
|
- Names the state file the concern would have written.
|
|
@@ -242,12 +242,12 @@ The corpus is platform-shape-representative, not platform-exhaustive
|
|
|
242
242
|
|
|
243
243
|
## Replay mode — `AGENT_CONFIG_REPLAY=1`
|
|
244
244
|
|
|
245
|
-
Concerns that write under `agents/state/` MUST honor the
|
|
245
|
+
Concerns that write under `agents/runtime/state/` MUST honor the
|
|
246
246
|
`AGENT_CONFIG_REPLAY` env var: when set to `1`, skip all state
|
|
247
247
|
mutations and run as read-only. The dispatcher passes the env var
|
|
248
248
|
through to subprocess concerns unchanged. Concerns that do not honor
|
|
249
249
|
the flag are listed by `./agent-config hooks:doctor` as not
|
|
250
|
-
replay-safe; replay tests assert no `agents/state/` mutation
|
|
250
|
+
replay-safe; replay tests assert no `agents/runtime/state/` mutation
|
|
251
251
|
post-invocation.
|
|
252
252
|
|
|
253
253
|
## Stability
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-19
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Installer agent-mode protocol — JSON-over-stdio contract
|
|
7
|
+
|
|
8
|
+
> Companion to [ADR-016](../decisions/ADR-016-installer-architecture.md)
|
|
9
|
+
> § 4 and § 6. The ADR is the decision; this file is the worked-example
|
|
10
|
+
> reference that agents (Claude, Cursor, GPT, …) and the installer
|
|
11
|
+
> CLI share at runtime.
|
|
12
|
+
|
|
13
|
+
## Source of truth
|
|
14
|
+
|
|
15
|
+
The agent-mode state machine lives in
|
|
16
|
+
[`packages/core/installer/src/agent-mode/machine.ts`](../../packages/core/installer/src/agent-mode/machine.ts).
|
|
17
|
+
Envelope construction and `--answer` parsing live in
|
|
18
|
+
[`protocol.ts`](../../packages/core/installer/src/agent-mode/protocol.ts).
|
|
19
|
+
Both are unit-tested under
|
|
20
|
+
[`packages/core/installer/tests/agent-mode-*.test.ts`](../../packages/core/installer/tests/).
|
|
21
|
+
|
|
22
|
+
## Design constraints
|
|
23
|
+
|
|
24
|
+
- **Stateless across invocations** — the installer keeps no
|
|
25
|
+
server-side session. Every turn carries the full conversation as
|
|
26
|
+
repeated `--answer key=value` flags. An agent may re-issue from
|
|
27
|
+
scratch at any time.
|
|
28
|
+
- **Strict question-id sequencing** — answers must arrive in the
|
|
29
|
+
order the installer asks them (`q1.workspaces`, then `q2.packs`,
|
|
30
|
+
then optional `q3.confirm`). Out-of-order or unknown ids return
|
|
31
|
+
an `error` envelope, exit code 2.
|
|
32
|
+
- **Single-line JSON per turn** — stdout emits exactly one
|
|
33
|
+
newline-terminated JSON object per invocation; stderr is reserved
|
|
34
|
+
for diagnostics and is not part of the contract.
|
|
35
|
+
- **`protocol_version: 1`** — every envelope carries it; agents
|
|
36
|
+
refusing the version negotiate by aborting.
|
|
37
|
+
|
|
38
|
+
## Envelope shapes
|
|
39
|
+
|
|
40
|
+
### `question`
|
|
41
|
+
|
|
42
|
+
The installer is waiting for the next answer.
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"status": "question",
|
|
47
|
+
"protocol_version": 1,
|
|
48
|
+
"id": "q1.workspaces",
|
|
49
|
+
"prompt": "Which workspaces does this project need? (multi, comma-separated)",
|
|
50
|
+
"choices": [
|
|
51
|
+
{ "value": "engineering", "label": "Engineering" },
|
|
52
|
+
{ "value": "product", "label": "Product" }
|
|
53
|
+
],
|
|
54
|
+
"multi": true,
|
|
55
|
+
"next_call": "init --agent --answer q1.workspaces=<value>"
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
- `id` — the canonical question identifier; the agent echoes it as
|
|
60
|
+
`--answer <id>=<value>`.
|
|
61
|
+
- `multi: true` — comma-separated values allowed; `multi: false` —
|
|
62
|
+
exactly one value.
|
|
63
|
+
- `next_call` — the literal command the agent should issue next,
|
|
64
|
+
with `<value>` (and prior answers) substituted in.
|
|
65
|
+
|
|
66
|
+
### `done`
|
|
67
|
+
|
|
68
|
+
Terminal success; no further calls needed.
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"status": "done",
|
|
73
|
+
"protocol_version": 1,
|
|
74
|
+
"summary": { "files_written": 83, "lockfile_sha256": "c45b3035…" }
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### `error`
|
|
79
|
+
|
|
80
|
+
Terminal failure; exit code 2.
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"status": "error",
|
|
85
|
+
"protocol_version": 1,
|
|
86
|
+
"reason": "out_of_order",
|
|
87
|
+
"expected_question_id": "q1.workspaces",
|
|
88
|
+
"received": "q2.packs"
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Defined `reason` values: `answer_malformed`, `out_of_order`,
|
|
93
|
+
`unknown_workspace`, `unknown_pack`, `aborted_by_agent`.
|
|
94
|
+
|
|
95
|
+
## Turn-by-turn worked example
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Turn 1 — discover workspaces
|
|
99
|
+
$ installer init --agent
|
|
100
|
+
{"status":"question","id":"q1.workspaces", … "next_call":"… --answer q1.workspaces=<value>"}
|
|
101
|
+
|
|
102
|
+
# Turn 2 — answer workspaces, discover packs
|
|
103
|
+
$ installer init --agent --answer q1.workspaces=engineering
|
|
104
|
+
{"status":"question","id":"q2.packs", … "next_call":"… --answer q1.workspaces=engineering --answer q2.packs=<value>"}
|
|
105
|
+
|
|
106
|
+
# Turn 3 — answer packs, install completes
|
|
107
|
+
$ installer init --agent --answer q1.workspaces=engineering --answer q2.packs=engineering-base
|
|
108
|
+
{"status":"done","summary":{"files_written":83,"lockfile_sha256":"c45b3035…"}}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
When the pack selection pulls in extras via `requires_hint`, the
|
|
112
|
+
installer inserts a `q3.confirm` turn before completing:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
$ installer init --agent --answer q1.workspaces=engineering --answer q2.packs=symfony
|
|
116
|
+
{"status":"question","id":"q3.confirm", "prompt":"Auto-added packs: php. Continue?", "choices":[{"value":"yes","label":"yes"},{"value":"no","label":"no"}], "multi":false, … }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`q3.confirm=no` returns `reason: "aborted_by_agent"`.
|
|
120
|
+
|
|
121
|
+
## Flags relevant to agent mode
|
|
122
|
+
|
|
123
|
+
- `--manifest <path>` — override the manifest location (defaults to
|
|
124
|
+
walking up for `dist/discovery/discovery-manifest.json`).
|
|
125
|
+
- `--project-root <path>` — destination project root.
|
|
126
|
+
- `--dry-run` — resolve and emit the `done` envelope without
|
|
127
|
+
touching disk; used by agents that want a plan preview.
|
|
128
|
+
|
|
129
|
+
## Failure modes guarded against
|
|
130
|
+
|
|
131
|
+
- **Agent loops** — `protocol_version` mismatch on any side aborts
|
|
132
|
+
immediately; no implicit version negotiation.
|
|
133
|
+
- **State drift between turns** — the installer never reads
|
|
134
|
+
workdir state to recover answers; every fact must be carried in
|
|
135
|
+
`--answer` flags.
|
|
136
|
+
- **Silent partial install** — on any error after `q2.packs`,
|
|
137
|
+
exit code 2 with no disk writes (atomic via `StagingSession`).
|
|
@@ -47,7 +47,7 @@ skill / guideline per `rule-classification.md`.
|
|
|
47
47
|
> the ask-policy floor that the original four-gate test left as an
|
|
48
48
|
> implicit consequence of #1+#4. Both amendments preserve the
|
|
49
49
|
> existing 9-rule kernel set. See
|
|
50
|
-
> `agents/council
|
|
50
|
+
> `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json`. <!-- council-ref-allowed: contract decision trace -->
|
|
51
51
|
|
|
52
52
|
## § 2 — Empirical compression rate (pilot)
|
|
53
53
|
|
|
@@ -76,7 +76,7 @@ outlier and sits inside the roadmap-stated 0.6–0.75 band. Risk
|
|
|
76
76
|
asymmetry confirms the choice: under-estimating compressed size
|
|
77
77
|
blows the 25k cap mid-P2.2 (no abort path); over-estimating just
|
|
78
78
|
yields headroom. GPT-4o concurred. Source:
|
|
79
|
-
`agents/council
|
|
79
|
+
`agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json`. <!-- council-ref-allowed: contract decision trace -->
|
|
80
80
|
|
|
81
81
|
**Pilot caveat — already-lean floor.** `agent-authority` (1217 chars
|
|
82
82
|
pre-pilot) yielded only `r = 0.838`. Pre-compressed rules give less
|
|
@@ -231,7 +231,7 @@ that fires on every action decision. Swap proposal: `agent-authority`
|
|
|
231
231
|
the 9-rule set through P2.2. Re-evaluation trigger fires at P3.2
|
|
232
232
|
once the router schema and compiler ship; at that point
|
|
233
233
|
`agent-authority`'s routing role becomes redundant (each kernel rule
|
|
234
|
-
carries its own band as frontmatter, compiled into `router.json`),
|
|
234
|
+
carries its own band as frontmatter, compiled into `dist/router.json`),
|
|
235
235
|
clearing the way for the swap under a fresh ADR.
|
|
236
236
|
|
|
237
237
|
## § 6 — Abort criteria for P2.2
|
|
@@ -285,7 +285,7 @@ with the trigger-relaxed parameter, lock new value, re-attempt.
|
|
|
285
285
|
|---|---|---|
|
|
286
286
|
| 2026-05-06 | `scripts/measure_rule_budget.py` | baseline (32 403 chars across 9 always-rules) |
|
|
287
287
|
| 2026-05-06 | `docs/contracts/pilot/*.md` + `scripts/_pilot_measure.py` | empirical r distribution (3 pilots) |
|
|
288
|
-
| 2026-05-06 | `agents/council
|
|
289
|
-
| 2026-05-06 | `agents/council
|
|
288
|
+
| 2026-05-06 | `agents/runtime/council/sessions/20260506T044821Z-phase1-cross-check.json` | Council R1 (truncated at 1024 tokens) | <!-- council-ref-allowed: contract decision trace -->
|
|
289
|
+
| 2026-05-06 | `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json` | Council R2 (3500 tokens) — locks median r, splits criterion #3, adds criterion #5, raises per-rule cap to 2.5k, defines abort criteria | <!-- council-ref-allowed: contract decision trace -->
|
|
290
290
|
| 2026-05-06 | this file | kernel set locked: 9 rules, projected 23 071 chars (median r = 0.712) |
|
|
291
291
|
| 2026-05-06 | P2.2 compression + `scripts/iron_law_sha.py --all-kernel` | empirical: 25 590 chars (r_actual = 0.795 across kernel; longer rules compress less than the pilot median) — see `docs/decisions/ADR-002-kernel-bucket-overrides.md` (KERNEL_HARD raised 25k → 26k, 6 per-rule overrides ≤ 4k ceiling, all Iron-Law SHAs preserved) |
|
|
@@ -65,9 +65,9 @@ imperatives (`NEVER COMMIT.`).
|
|
|
65
65
|
|
|
66
66
|
Sweep covered all 310 lintable artifacts via
|
|
67
67
|
[`scripts/measure_density.py`](../../scripts/measure_density.py); raw
|
|
68
|
-
data lives at `agents
|
|
68
|
+
data lives at `agents/runtime/density/snapshot.jsonl` (local-only — re-run
|
|
69
69
|
`python3 scripts/measure_density.py --root .agent-src --jsonl
|
|
70
|
-
agents
|
|
70
|
+
agents/runtime/density/snapshot.jsonl` to regenerate).
|
|
71
71
|
|
|
72
72
|
| Type | Count | Avg density | Median | Bucket [0.4-0.6] | Bucket [0.6-1.0] |
|
|
73
73
|
|---|---|---|---|---|---|
|
|
@@ -172,7 +172,7 @@ keys** — the structural primitives are the contract.
|
|
|
172
172
|
## References
|
|
173
173
|
|
|
174
174
|
- `scripts/measure_density.py` — Phase 1.1 measurement tool.
|
|
175
|
-
- `agents
|
|
175
|
+
- `agents/runtime/density/snapshot.jsonl` — full per-artifact metrics
|
|
176
176
|
(gitignored, re-run the measurement script to regenerate).
|
|
177
177
|
- `scripts/skill_linter.py` — structural-model implementation
|
|
178
178
|
(`_density_score`, `_count_procedure_sections`,
|