@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
package/docs/customization.md
CHANGED
|
@@ -98,12 +98,12 @@ config. Use a subdirectory `.agent-settings.yml` to scope a single
|
|
|
98
98
|
field (e.g. a `cost_profile` override for `services/heavy-ml/`) without
|
|
99
99
|
duplicating the root file.
|
|
100
100
|
|
|
101
|
-
The user-global file is created **only on explicit opt-in via
|
|
102
|
-
|
|
101
|
+
The user-global file is created **only on explicit opt-in via the
|
|
102
|
+
setup wizard** (`agent-config setup`). The loader at
|
|
103
103
|
[`scripts/_lib/agent_settings.py`](../scripts/_lib/agent_settings.py)
|
|
104
|
-
is **read-only** — no script can create or mutate it without
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
is **read-only** — no script can create or mutate it without explicit
|
|
105
|
+
wizard confirmation. Edit the file by hand for mid-life changes;
|
|
106
|
+
`/sync-agent-settings` stays project-scoped and never touches
|
|
107
107
|
user-global state.
|
|
108
108
|
|
|
109
109
|
### Agent config version pin
|
|
@@ -134,6 +134,36 @@ Rules:
|
|
|
134
134
|
triggers a re-exec at the pinned version
|
|
135
135
|
(`npx @event4u/agent-config@<pin> <cmd>`).
|
|
136
136
|
|
|
137
|
+
### Editing settings
|
|
138
|
+
|
|
139
|
+
`.agent-settings.yml` has two write surfaces — both share one
|
|
140
|
+
canonical commit path:
|
|
141
|
+
|
|
142
|
+
#### Via the GUI (recommended)
|
|
143
|
+
|
|
144
|
+
Run `agent-config setup` for first-run onboarding (cost profile,
|
|
145
|
+
identity, personality, memory, roadmap quality, optional
|
|
146
|
+
`.agent-user.md`) or `agent-config settings` for subsequent edits.
|
|
147
|
+
Both launch the same Fastify server on `127.0.0.1`; the setup
|
|
148
|
+
command lands on `/#/wizard`, the settings command on `/#/settings`.
|
|
149
|
+
Form primitives, JSON schema, and the `commitMulti` 2PC write path
|
|
150
|
+
are shared. See [`docs/wizard.md`](wizard.md) for the step-by-step
|
|
151
|
+
tour.
|
|
152
|
+
|
|
153
|
+
#### By hand-editing the YAML (advanced)
|
|
154
|
+
|
|
155
|
+
Open `.agent-settings.yml` in an editor and save. Hand edits skip
|
|
156
|
+
the 2PC marker dance (your editor's atomic save is trusted), but
|
|
157
|
+
you lose the schema validation, optimistic locking, and template
|
|
158
|
+
substitution the GUI surfaces provide. Use this path for quick
|
|
159
|
+
tweaks, comments, or bulk edits across multiple keys.
|
|
160
|
+
|
|
161
|
+
#### Shared substrate
|
|
162
|
+
|
|
163
|
+
Both GUI surfaces call `commitMulti` (2PC + intent marker,
|
|
164
|
+
comment-preserving merge via `mergeIntoTemplate`); a crash mid-write
|
|
165
|
+
is recovered on the next server boot.
|
|
166
|
+
|
|
137
167
|
### Available settings
|
|
138
168
|
|
|
139
169
|
| Setting | Default | Description |
|
|
@@ -146,11 +176,11 @@ Rules:
|
|
|
146
176
|
| `personal.open_edited_files` | `false` | Open edited files in IDE |
|
|
147
177
|
| `personal.ide` | *(empty)* | IDE for file opening (`cursor`, `code`, `phpstorm`) |
|
|
148
178
|
| `pipelines.skill_improvement` | `true` | Post-task learning capture. Included in every profile except `custom`. |
|
|
149
|
-
| `chat_history.enabled` | `true` | Persistent JSONL log at `agents/.agent-chat-history` for crash recovery. |
|
|
179
|
+
| `chat_history.enabled` | `true` | Persistent JSONL log at `agents/runtime/.agent-chat-history` for crash recovery. |
|
|
150
180
|
| `chat_history.frequency` | per profile | Logging granularity: `per_turn`, `per_phase`, or `per_tool` (see matrix below). |
|
|
151
181
|
| `chat_history.max_size_kb` | per profile | Max file size before overflow handling (see matrix below). |
|
|
152
182
|
| `chat_history.on_overflow` | per profile | `rotate` drops oldest, `compress` marks for summarization (see matrix below). |
|
|
153
|
-
| `onboarding.onboarded` | `false` | Whether
|
|
183
|
+
| `onboarding.onboarded` | `false` | Whether the setup wizard has run. The `onboarding-gate` rule prompts for `agent-config setup` while this is `false`. |
|
|
154
184
|
| `ai_council.enabled` | `false` | Master switch for the `/council` command. Even when enabled, every consultation asks before spending tokens. |
|
|
155
185
|
| `ai_council.members.<provider>.enabled` | `false` | Per-provider opt-in (`anthropic`, `openai`). Tokens live in `~/.event4u/agent-config/<provider>.key` (mode 0600), never in this file. Legacy `~/.config/agent-config/<provider>.key` is read as a fallback. |
|
|
156
186
|
| `ai_council.members.<provider>.model` | per provider | Which model the provider sends the query to (e.g. `claude-sonnet-4-5`, `gpt-4o`). |
|
|
@@ -159,7 +189,7 @@ Rules:
|
|
|
159
189
|
| `ai_council.cost_budget.max_calls` | `10` | Maximum council members per invocation. |
|
|
160
190
|
| `ai_council.cost_budget.max_total_usd` | `0.0` | Per-invocation USD ceiling. `0` disables (token caps still apply). |
|
|
161
191
|
| `ai_council.cost_budget.daily_limit_usd` | `0.0` | Rolling 24h USD ceiling across all `/council` calls. `0` disables. Ledger lives at `~/.event4u/agent-config/council-spend.jsonl` (mode 0600). |
|
|
162
|
-
| `ai_council.session_retention_days` | `14` | Auto-prune for `agents/council
|
|
192
|
+
| `ai_council.session_retention_days` | `14` | Auto-prune for `agents/runtime/council/sessions/` audit folders. Older session directories are removed on the next `save()`. `0` disables (keep forever). |
|
|
163
193
|
|
|
164
194
|
> **Experimental.** AI Council is not yet validated by external users. API costs apply per consultation.
|
|
165
195
|
|
|
@@ -175,7 +205,7 @@ if the key file's permissions drift.
|
|
|
175
205
|
`cost_profile` is the master switch for rule-tier loading. The kernel
|
|
176
206
|
(always-loaded Iron-Law floor, ≤ 26k chars across 9 rules) ships in every
|
|
177
207
|
profile. Tier-1 and tier-2 rules are gated by profile and resolved at
|
|
178
|
-
session start from `router.json` (compiled by `scripts/compile_router.py`).
|
|
208
|
+
session start from `dist/router.json` (compiled by `scripts/compile_router.py`).
|
|
179
209
|
|
|
180
210
|
| Profile | Rule tiers loaded | Token footprint | Best for |
|
|
181
211
|
|---|---|---|---|
|
|
@@ -188,7 +218,7 @@ The kernel-and-router architecture is documented in
|
|
|
188
218
|
[`docs/contracts/rule-router.md`](contracts/rule-router.md) and
|
|
189
219
|
[`docs/contracts/kernel-membership.md`](contracts/kernel-membership.md).
|
|
190
220
|
Tier flags live in each rule's frontmatter (`tier: kernel | tier-1 | tier-2`);
|
|
191
|
-
the router compiles them into `router.json` deterministically.
|
|
221
|
+
the router compiles them into `dist/router.json` deterministically.
|
|
192
222
|
|
|
193
223
|
All profiles except `custom` ship with `pipelines.skill_improvement: true`,
|
|
194
224
|
so the agent captures learnings after meaningful tasks by default. Set it
|
|
@@ -314,15 +344,15 @@ shadowed.
|
|
|
314
344
|
| Subdir | Cascade? | User-global allowed? | Why |
|
|
315
345
|
|---|---|---|---|
|
|
316
346
|
| `agents/overrides/` | ✅ Yes — deepest wins by basename. | ✅ Yes — weakest layer. | Personal developer overrides. |
|
|
317
|
-
| `agents/contexts/` | ✅ Yes — deepest wins by basename. | ❌ No — project-shaped. | Shared knowledge; would leak across projects. |
|
|
347
|
+
| `agents/settings/contexts/` | ✅ Yes — deepest wins by basename. | ❌ No — project-shaped. | Shared knowledge; would leak across projects. |
|
|
318
348
|
| `agents/decisions/` | ✅ Yes — deepest wins by basename. | ❌ No — project-shaped ADRs. | Decisions are repo-bound. |
|
|
319
349
|
| `agents/roadmaps/` | ❌ No — project-rooted only. | ❌ No. | Active delivery plans. |
|
|
320
|
-
| `agents/state/`, `agents/memory/`, `agents/work_engine/`, `agents/.agent-prices.md`, `agents/council
|
|
350
|
+
| `agents/runtime/state/`, `agents/memory/`, `agents/work_engine/`, `agents/runtime/.agent-prices.md`, `agents/runtime/council/*/` | ❌ No — stateful / session-scoped. | ❌ No. | Per-session state, not shareable. |
|
|
321
351
|
|
|
322
352
|
**User-global asymmetry.** `~/.event4u/agent-config/agents/overrides/`
|
|
323
353
|
is the only user-global overlay path consulted by the loader (the
|
|
324
354
|
legacy `~/.config/agent-config/agents/overrides/` tree is read as a
|
|
325
|
-
fallback). Files under `~/.event4u/agent-config/agents/contexts/` or
|
|
355
|
+
fallback). Files under `~/.event4u/agent-config/agents/settings/contexts/` or
|
|
326
356
|
`.../agents/decisions/` are silently skipped — these kinds are
|
|
327
357
|
project-shaped and must not leak across projects.
|
|
328
358
|
|
|
@@ -334,6 +364,57 @@ between the code constants (`CASCADE_ELIGIBLE_KINDS`,
|
|
|
334
364
|
|
|
335
365
|
---
|
|
336
366
|
|
|
367
|
+
## Workspaces & packs (discovery)
|
|
368
|
+
|
|
369
|
+
Every shipped artefact (skill, rule, command, template) carries five
|
|
370
|
+
discovery keys in its frontmatter — `workspaces:`, `packs:`,
|
|
371
|
+
`lifecycle:`, `trust:`, `install:`. The contract is defined in
|
|
372
|
+
[ADR-013](decisions/ADR-013-discovery-frontmatter-contract.md) and the
|
|
373
|
+
closed vocabularies live in
|
|
374
|
+
[`config/discovery/workspaces.yml`](../config/discovery/workspaces.yml)
|
|
375
|
+
(9 workspaces) and
|
|
376
|
+
[`config/discovery/packs.yml`](../config/discovery/packs.yml) (21
|
|
377
|
+
packs).
|
|
378
|
+
|
|
379
|
+
At release time, `scripts/build_discovery_manifest.py` walks the source
|
|
380
|
+
trees, validates frontmatter against the vocabularies, and writes
|
|
381
|
+
`dist/discovery/discovery-manifest.json` + the human-readable
|
|
382
|
+
`discovery-manifest.summary.md`. The manifest ships inside the published
|
|
383
|
+
tarball and is the source of truth consumed by:
|
|
384
|
+
|
|
385
|
+
- `npx @event4u/agent-config workspaces ls` / `packs ls` (CLI)
|
|
386
|
+
- the installer's pack-selection prompts
|
|
387
|
+
- downstream tools that resolve "which skills install for workspace X".
|
|
388
|
+
|
|
389
|
+
> **Virtual packs and workspaces — a tag, not a directory.** A pack is a
|
|
390
|
+
> label in an artefact's frontmatter, not a folder on disk. A workspace
|
|
391
|
+
> is a label that groups packs, not a git submodule. The discovery
|
|
392
|
+
> scanner emits a JSON catalogue; it does **not** move files, create
|
|
393
|
+
> sub-`package.json` entries, or generate per-pack `node_modules/`.
|
|
394
|
+
> When you read "the Laravel pack", picture a filter over the shared
|
|
395
|
+
> artefact tree — not a separate npm package. The day ADR-011's
|
|
396
|
+
> extraction trigger flips, the same scan output drives the split;
|
|
397
|
+
> until then, every artefact lives under `.agent-src.uncompressed/`.
|
|
398
|
+
|
|
399
|
+
Alongside the JSON manifest, the scanner writes
|
|
400
|
+
`dist/discovery/discovery-manifest.json.sha256` — a sidecar hash that
|
|
401
|
+
lets downstream consumers detect tampering before trusting the
|
|
402
|
+
manifest's `trust.level` claims.
|
|
403
|
+
|
|
404
|
+
CI gates: `task lint-discovery-vocab` (vocabulary integrity),
|
|
405
|
+
`task lint-discovery-manifest` (manifest validity),
|
|
406
|
+
`task lint-artefact-frontmatter` (per-file frontmatter sanity), and
|
|
407
|
+
`task check-discovery-determinism` (byte-identical re-runs).
|
|
408
|
+
`task check-release-includes-discovery` is the prepublish guard that
|
|
409
|
+
refuses to ship a tarball without the manifest.
|
|
410
|
+
|
|
411
|
+
Consumer projects do **not** edit these YAMLs directly — they pick
|
|
412
|
+
packs at install time via `npx @event4u/agent-config install` and the
|
|
413
|
+
resulting `.agent-settings.yml` records which packs the project opted
|
|
414
|
+
into.
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
337
418
|
## Update check
|
|
338
419
|
|
|
339
420
|
`npx @event4u/agent-config <cmd>` checks the npm registry once per
|
|
@@ -378,4 +459,49 @@ dispatcher integration lives in [`scripts/agent-config`](../scripts/agent-config
|
|
|
378
459
|
|
|
379
460
|
---
|
|
380
461
|
|
|
462
|
+
## Explainability — `explain last`
|
|
463
|
+
|
|
464
|
+
`agent-config explain last` reconstructs the execution trace for the
|
|
465
|
+
most recent `/work`, `/implement-ticket`, `/council`, or `/video` run.
|
|
466
|
+
Read-only by construction — never writes back, never opens a network
|
|
467
|
+
socket. Output is the `ExplainTrace` v1 contract
|
|
468
|
+
([`docs/contracts/explain-trace.schema.json`](contracts/explain-trace.schema.json));
|
|
469
|
+
free-form strings pass through the shared PII scrubber before they hit
|
|
470
|
+
your terminal.
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
agent-config explain last # Markdown trace
|
|
474
|
+
agent-config explain last --json # ExplainTrace JSON
|
|
475
|
+
agent-config explain last --quiet # no trailing tip footer
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
Sample Markdown output:
|
|
479
|
+
|
|
480
|
+
```markdown
|
|
481
|
+
# explain last — run PROJ-1234
|
|
482
|
+
|
|
483
|
+
**Subject:** /implement-ticket · **Started:** 2026-05-19 10:14:22Z
|
|
484
|
+
|
|
485
|
+
## Why this route?
|
|
486
|
+
- Active rules: architecture, downstream-changes
|
|
487
|
+
- Kernel rules: 9
|
|
488
|
+
- Persona: senior-engineer
|
|
489
|
+
|
|
490
|
+
## Why this profile / preset?
|
|
491
|
+
| knob | value | source |
|
|
492
|
+
|---|---|---|
|
|
493
|
+
| profile.id | developer | user (.agent-settings.yml) |
|
|
494
|
+
| preset.id | balanced | profile.developer |
|
|
495
|
+
|
|
496
|
+
## Assumptions
|
|
497
|
+
- [x] api-rate-limit-is-100rpm — accepted in step `refine`
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
Disable for `cost_profile: minimal` CI runs by setting `explain.enable_last: false`
|
|
501
|
+
in `.agent-settings.yml`; the command then exits 0 with a one-line
|
|
502
|
+
notice instead of producing a trace. Exit codes: `0` rendered or
|
|
503
|
+
disabled · `1` no recent run found · `2` invocation error.
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
381
507
|
← [Back to README](../README.md)
|
|
@@ -103,7 +103,7 @@ migrations) so the migration plan reflects the final kernel set.
|
|
|
103
103
|
## References
|
|
104
104
|
|
|
105
105
|
- `docs/contracts/kernel-membership.md` § 4, § 5.2
|
|
106
|
-
- `agents/council
|
|
106
|
+
- `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json` <!-- council-ref-allowed: ADR decision trace -->
|
|
107
107
|
- `agents/roadmaps/road-to-kernel-and-router.md` § Decisions, § Phase 2
|
|
108
108
|
- `.agent-src.uncompressed/rules/agent-authority.md` (subject)
|
|
109
109
|
- `.agent-src.uncompressed/rules/autonomous-execution.md` (proposed promotion)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
`docs/contracts/kernel-membership.md` § 5.1 (median r=0.712, per-rule cap 2.5k,
|
|
7
7
|
kernel-bucket 25k).
|
|
8
8
|
- **Related:** ADR-001 (kernel-swap deferred); Council R2 cross-check session
|
|
9
|
-
`agents/council
|
|
9
|
+
`agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json`. <!-- council-ref-allowed: ADR decision trace -->
|
|
10
10
|
|
|
11
11
|
## Context
|
|
12
12
|
|
|
@@ -35,7 +35,7 @@ analytic passes ran:
|
|
|
35
35
|
|
|
36
36
|
**5.4** AI Council R3 (claude-sonnet-4-5 + gpt-4o, 2 rounds, prompt
|
|
37
37
|
mode) walked the candidate list. Council convergence and host
|
|
38
|
-
verdicts are recorded in `agents/reports/auto-rules-audit.md`
|
|
38
|
+
verdicts are recorded in `agents/runtime/reports/auto-rules-audit.md`
|
|
39
39
|
§ Phase 5.4. The dominant council insight:
|
|
40
40
|
|
|
41
41
|
> *"Rarity ≠ redundancy. Low corpus hits often indicate a
|
|
@@ -192,11 +192,11 @@ documentation rewrite for marginal additional savings.
|
|
|
192
192
|
governance pass; the stub-cost / body-cost ratio changes
|
|
193
193
|
drastically.
|
|
194
194
|
- Auto-rule count grows by ≥ 5 (history check via
|
|
195
|
-
`agents/.augment-budget-history.jsonl`) → repeat the audit
|
|
195
|
+
`agents/runtime/.augment-budget-history.jsonl`) → repeat the audit
|
|
196
196
|
with the same three-pass methodology.
|
|
197
197
|
- A retained rule (`upstream-proposal`, `slash-command-routing-policy`,
|
|
198
198
|
`analysis-skill-routing`'s sibling skill) shows a 30-day window
|
|
199
|
-
with zero documented activation in `agents/council
|
|
199
|
+
with zero documented activation in `agents/runtime/council/sessions/` →
|
|
200
200
|
open a follow-up ADR demoting it.
|
|
201
201
|
|
|
202
202
|
## Alternatives considered
|
|
@@ -224,13 +224,13 @@ documentation rewrite for marginal additional savings.
|
|
|
224
224
|
## References
|
|
225
225
|
|
|
226
226
|
- `agents/roadmaps/archive/road-to-augment-limit-fit.md` § Phase 5
|
|
227
|
-
- `agents/reports/auto-rules-audit.md` (full audit findings,
|
|
227
|
+
- `agents/runtime/reports/auto-rules-audit.md` (full audit findings,
|
|
228
228
|
council walk, host verdicts)
|
|
229
|
-
- `agents/reports/auto-rules-overlap.json` (Phase 5.2 data)
|
|
230
|
-
- `agents/reports/auto-rules-likelihood.json` (Phase 5.3 data)
|
|
231
|
-
- `agents/council
|
|
229
|
+
- `agents/runtime/reports/auto-rules-overlap.json` (Phase 5.2 data)
|
|
230
|
+
- `agents/runtime/reports/auto-rules-likelihood.json` (Phase 5.3 data)
|
|
231
|
+
- `agents/runtime/council/questions/augment-limit-fit-rule-governance.md` <!-- council-ref-allowed: ADR decision trace -->
|
|
232
232
|
(Phase 5.4 prompt)
|
|
233
|
-
- `agents/council
|
|
233
|
+
- `agents/runtime/council/responses/augment-limit-fit-rule-governance.json` <!-- council-ref-allowed: ADR decision trace -->
|
|
234
234
|
(Phase 5.4 R3 raw debate)
|
|
235
235
|
- `docs/decisions/ADR-rule-kernel-and-router.md` (kernel-membership
|
|
236
236
|
contract — Phase 5 changes leave kernel untouched per Lever C lock)
|
|
@@ -29,7 +29,7 @@ Python tools for skill / persona corpus maintenance:
|
|
|
29
29
|
|
|
30
30
|
The pilot was gated by **iter-1 AI-Council verdict** (members:
|
|
31
31
|
claude-sonnet-4-5 + gpt-4o · 2 rounds · 2026-05-01) <!-- council-ref-allowed: ADR decision trace -->
|
|
32
|
-
([`block-d-python-tools-pilot-verdict`](../../agents/council
|
|
32
|
+
([`block-d-python-tools-pilot-verdict`](../../agents/runtime/council/responses/block-d-python-tools-pilot-verdict.md)) <!-- council-ref-allowed: ADR decision trace -->
|
|
33
33
|
under strict invariants: stdlib-only (internal package imports
|
|
34
34
|
allowed), ≤ 200 LOC per tool, machine-readable output (`--json`),
|
|
35
35
|
embedded `_SAMPLE`, blind-labelled eval corpora, and a kill-switch if
|
|
@@ -37,9 +37,9 @@ embedded `_SAMPLE`, blind-labelled eval corpora, and a kill-switch if
|
|
|
37
37
|
|
|
38
38
|
## Eval Outcome (D5)
|
|
39
39
|
|
|
40
|
-
Corpora at `agents/eval-corpora/block-d/`. Runner:
|
|
40
|
+
Corpora at `agents/evidence/eval-corpora/block-d/`. Runner:
|
|
41
41
|
`scripts/skill_tools/run_block_d_eval.py`. Report:
|
|
42
|
-
[`agents/eval-corpora/block-d/report.json`](../../agents/eval-corpora/block-d/report.json).
|
|
42
|
+
[`agents/evidence/eval-corpora/block-d/report.json`](../../agents/evidence/eval-corpora/block-d/report.json).
|
|
43
43
|
|
|
44
44
|
| Tool | Target | Result | Verdict |
|
|
45
45
|
|---|---|---|---|
|
|
@@ -106,9 +106,9 @@ dir, and the `lint-skill-tools` task entry. Mark this ADR
|
|
|
106
106
|
## References
|
|
107
107
|
|
|
108
108
|
- Roadmap: [`road-to-better-skills-and-profiles`](../../agents/roadmaps/archive/road-to-better-skills-and-profiles.md) Block D.
|
|
109
|
-
- Council: [`block-d-python-tools-pilot-verdict`](../../agents/council
|
|
109
|
+
- Council: [`block-d-python-tools-pilot-verdict`](../../agents/runtime/council/responses/block-d-python-tools-pilot-verdict.md). <!-- council-ref-allowed: ADR decision trace -->
|
|
110
110
|
|
|
111
111
|
- Tools: [`scripts/skill_tools/`](../../scripts/skill_tools/).
|
|
112
112
|
- Linter: [`scripts/lint_skill_tools.py`](../../scripts/lint_skill_tools.py).
|
|
113
|
-
- Corpora + report: [`agents/eval-corpora/block-d/`](../../agents/eval-corpora/block-d/).
|
|
113
|
+
- Corpora + report: [`agents/evidence/eval-corpora/block-d/`](../../agents/evidence/eval-corpora/block-d/).
|
|
114
114
|
- Tests: `tests/test_lint_skill_tools.py`, `tests/test_score_skill_relevance.py`, `tests/test_audit_persona_coverage.py`, `tests/test_suggest_skill_for_task.py`.
|
|
@@ -31,7 +31,7 @@ phase: post-v2.1.0 · simplicity-and-everywhere
|
|
|
31
31
|
Originates from user ask: "Es macht keinen Sinn, das paket nicht
|
|
32
32
|
global zu installieren." Validated through AI Council (2 + 1 rounds,
|
|
33
33
|
2026-05-12 · members claude-sonnet-4-5 + gpt-4o). Council session:
|
|
34
|
-
[`agents/council
|
|
34
|
+
[`agents/runtime/council/sessions/2026-05-12-global-first-strategy/`](../../agents/runtime/council/sessions/2026-05-12-global-first-strategy/). <!-- council-ref-allowed: ADR decision trace -->
|
|
35
35
|
|
|
36
36
|
## Context
|
|
37
37
|
|
|
@@ -110,8 +110,8 @@ differ.
|
|
|
110
110
|
| 3 (targeted resolution) | same | $0.0252 | **3/4 convergence** |
|
|
111
111
|
|
|
112
112
|
Full responses:
|
|
113
|
-
[`responses.json`](../../agents/council
|
|
114
|
-
[`responses-round3.json`](../../agents/council
|
|
113
|
+
[`responses.json`](../../agents/runtime/council/sessions/2026-05-12-global-first-strategy/responses.json), <!-- council-ref-allowed: ADR decision trace -->
|
|
114
|
+
[`responses-round3.json`](../../agents/runtime/council/sessions/2026-05-12-global-first-strategy/responses-round3.json). <!-- council-ref-allowed: ADR decision trace -->
|
|
115
115
|
|
|
116
116
|
## Decision
|
|
117
117
|
|
|
@@ -262,6 +262,18 @@ maintainer manifest).
|
|
|
262
262
|
road-to-simplicity-and-everywhere" is **never built**. Roadmap
|
|
263
263
|
entry should be updated to point at `export` instead.
|
|
264
264
|
|
|
265
|
+
## Amendment 2026-05-23 — Global-only consumer scope (ADR-020)
|
|
266
|
+
|
|
267
|
+
[`ADR-020`](ADR-020-global-only-consumer-scope.md) finishes the job
|
|
268
|
+
this ADR started: the consumer surface becomes **global-only**
|
|
269
|
+
end-to-end. The project-default in this ADR is therefore historical;
|
|
270
|
+
new installs land at `~/.event4u/agent-config/` only. The project
|
|
271
|
+
tree retains exactly two artefacts — `agents/overrides/` and
|
|
272
|
+
`agents/.event4u-bridge.yml` — both written by
|
|
273
|
+
`scripts/install.py`. Maintainer-only project scope survives behind
|
|
274
|
+
`AGENT_CONFIG_DEV_MODE=1` (see
|
|
275
|
+
[`docs/maintainers/dev-mode.md`](../maintainers/dev-mode.md)).
|
|
276
|
+
|
|
265
277
|
## Amendment 2026-05-13 — Augment global-only
|
|
266
278
|
|
|
267
279
|
**Status:** Accepted · 2026-05-13 · signed off by Matze.
|
|
@@ -350,7 +362,7 @@ Out of scope for this ADR. Sequencing target for a separate roadmap:
|
|
|
350
362
|
## References
|
|
351
363
|
|
|
352
364
|
- Council session:
|
|
353
|
-
[`agents/council
|
|
365
|
+
[`agents/runtime/council/sessions/2026-05-12-global-first-strategy/`](../../agents/runtime/council/sessions/2026-05-12-global-first-strategy/) <!-- council-ref-allowed: ADR decision trace -->
|
|
354
366
|
- User-scope discovery matrix sources: agent vendor official docs
|
|
355
367
|
(Claude, Cursor, Windsurf, Cline, Augment, Copilot, Gemini, Aider,
|
|
356
368
|
Codex) accessed 2026-05-12.
|
|
@@ -20,7 +20,7 @@ Projektebene festhalten, welche Agents wir initialisiert haben, damit
|
|
|
20
20
|
bei jedem Sync das Verzeichnis aktualisiert werden kann?" Validated
|
|
21
21
|
through AI Council Round 1 (claude-sonnet-4-5 + gpt-4o, $0.0298 actual,
|
|
22
22
|
both converged on "yes, separate file"). Council session:
|
|
23
|
-
[`agents/council
|
|
23
|
+
[`agents/runtime/council/sessions/2026-05-12-project-settings-and-v1-v2/`](../../agents/runtime/council/sessions/2026-05-12-project-settings-and-v1-v2/). <!-- council-ref-allowed: ADR decision trace -->
|
|
24
24
|
|
|
25
25
|
## Context
|
|
26
26
|
|
|
@@ -156,5 +156,5 @@ for this ADR.
|
|
|
156
156
|
|
|
157
157
|
- [`ADR-007`](ADR-007-agent-discovery-scopes.md) — global-first install (this ADR depends on it).
|
|
158
158
|
- [`agents/roadmaps/road-to-global-first-install.md`](../../agents/roadmaps/road-to-global-first-install.md) Phase 3.
|
|
159
|
-
- [`agents/council
|
|
159
|
+
- [`agents/runtime/council/sessions/2026-05-12-project-settings-and-v1-v2/`](../../agents/runtime/council/sessions/2026-05-12-project-settings-and-v1-v2/) — full council transcripts. <!-- council-ref-allowed: ADR decision trace -->
|
|
160
160
|
- [`docs/guidelines/agent-infra/layered-settings.md`](../guidelines/agent-infra/layered-settings.md) — the existing 4-layer settings precedence; this ADR adds a parallel file outside that hierarchy.
|
|
@@ -14,7 +14,7 @@ phase: v2.x · step-15 Phase 1 prerequisite
|
|
|
14
14
|
|
|
15
15
|
**Proposed** · 2026-05-16 · pending Phase 1 of
|
|
16
16
|
[`agents/roadmaps/step-15-product-refinement.md`](../../agents/roadmaps/step-15-product-refinement.md).
|
|
17
|
-
Council v3 action #2 (`agents/council
|
|
17
|
+
Council v3 action #2 (`agents/runtime/council/responses/2026-05-16-step-15-product-refinement-v3.json`): <!-- council-ref-allowed: ADR decision-trace to originating council response -->
|
|
18
18
|
**"Profile / Pack / Preset boundary is undefined; Phase 2 will duplicate
|
|
19
19
|
Phase 1 abstractions"**. Promoted from Phase 2 to Phase 1 prerequisite —
|
|
20
20
|
the profile loader (Phase 1 item 1) cannot ship without the boundary.
|
|
@@ -129,4 +129,4 @@ DUPLICATION ACROSS AXES IS A CONTRACT VIOLATION.
|
|
|
129
129
|
|
|
130
130
|
- [`docs/contracts/cost-profile-defaults.md`](../contracts/cost-profile-defaults.md) — the existing `cost_profile` contract this ADR explicitly does **not** touch.
|
|
131
131
|
- [`agents/roadmaps/step-15-product-refinement.md`](../../agents/roadmaps/step-15-product-refinement.md) — Phase 1 items 1, 4 and Phase 2 item 7.
|
|
132
|
-
- [`agents/council
|
|
132
|
+
- [`agents/runtime/council/responses/2026-05-16-step-15-product-refinement-v3.json`](../../agents/runtime/council/responses/2026-05-16-step-15-product-refinement-v3.json) — Council v3 action #2 (origin). <!-- council-ref-allowed: ADR decision-trace to originating council response -->
|
|
@@ -14,7 +14,7 @@ type: prospective
|
|
|
14
14
|
## Status
|
|
15
15
|
|
|
16
16
|
**Accepted** · 2026-05-17 · one-round council pass complete
|
|
17
|
-
(`agents/council
|
|
17
|
+
(`agents/runtime/council/responses/adr-011-domain-pack-readiness.json/debate-round-1.json`, actual spend $0.0300). <!-- council-ref-allowed: ADR decision trace; convergence summary inline in §Council-debate-trace -->
|
|
18
18
|
Split verdict — Anthropic accepted *with* tightened trigger; OpenAI
|
|
19
19
|
accepted as written. The host folded Anthropic's structural critique
|
|
20
20
|
into the trigger and added the escape clause both members' reasoning
|
|
@@ -88,7 +88,7 @@ no path changes, no symlink relocation, no namespace prefix:
|
|
|
88
88
|
recorded in `persona-governance`)
|
|
89
89
|
- `.agent-src.uncompressed/commands/video/{from-script,scene,storyboard,stitch}.md`
|
|
90
90
|
- `scripts/ai-video/` (the 5 adapter scripts + `lib/`)
|
|
91
|
-
- `agents/policies/media/` (Phase 2 output — already structured as
|
|
91
|
+
- `agents/settings/policies/media/` (Phase 2 output — already structured as
|
|
92
92
|
a project-local policy directory, *not* a pack)
|
|
93
93
|
|
|
94
94
|
### (ii) The trigger that flips this decision
|
|
@@ -148,7 +148,7 @@ for ambiguity:
|
|
|
148
148
|
`higgsfield`, `sora`) — stay in `scripts/ai-video/`.
|
|
149
149
|
- The two remaining video personas — stay in `.agent-src.uncompressed/personas/`.
|
|
150
150
|
- The `/video:*` command cluster — stays in `.agent-src.uncompressed/commands/video/`.
|
|
151
|
-
- The `media-governance-routing` rule + `agents/policies/media/`
|
|
151
|
+
- The `media-governance-routing` rule + `agents/settings/policies/media/`
|
|
152
152
|
policy files — stay where Phase 2 placed them.
|
|
153
153
|
- The provider-lifecycle contract + the `provider-lifecycle-discipline`
|
|
154
154
|
rule — stay where Phase 3 placed them.
|
|
@@ -185,7 +185,7 @@ treats as a smell.
|
|
|
185
185
|
## Council-debate trace
|
|
186
186
|
|
|
187
187
|
One round · 2 members · actual spend $0.0300 · raw responses at
|
|
188
|
-
[`agents/council
|
|
188
|
+
[`agents/runtime/council/responses/adr-011-domain-pack-readiness.json/debate-round-1.json`](../../agents/runtime/council/responses/adr-011-domain-pack-readiness.json/debate-round-1.json). <!-- council-ref-allowed: ADR decision-trace to originating council response -->
|
|
189
189
|
|
|
190
190
|
| Member | Pick | Core argument | Folded back? |
|
|
191
191
|
|---|---|---|---|
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 012
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-05-19
|
|
5
|
+
decision: typescript-cli-shell
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: v2.x · typescript-cli-and-local-gui-foundation
|
|
9
|
+
type: prospective
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-012 — TypeScript CLI Shell & Local Fastify Server
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-05-19 · in-session council (8 items) +
|
|
17
|
+
external `claude-sonnet-4-5` + `gpt-4o` pass (5 items, cost $0.16) on
|
|
18
|
+
`agents/roadmaps/typescript-cli-and-local-gui-foundation.md`. All 13
|
|
19
|
+
items folded into Phase 0–5a or carved with rationale below.
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
`@event4u/agent-config` is distributed as an npm package and consumed
|
|
24
|
+
via `npx`. The current public entry point is `scripts/agent-config` —
|
|
25
|
+
a 955-LOC Bash dispatcher that delegates to `scripts/_cli/cmd_*.py`.
|
|
26
|
+
Two downstream roadmaps (`unified-setup-and-settings-gui`,
|
|
27
|
+
`explainability-v2-explain-last`) need an embedded local HTTP server
|
|
28
|
+
and a static UI bundle. Bash is the wrong substrate for that surface;
|
|
29
|
+
Node is on every consumer's machine already because `npx` itself
|
|
30
|
+
runs on Node.
|
|
31
|
+
|
|
32
|
+
This ADR locks the dependency surface, the source layout, and the
|
|
33
|
+
npm-package shape **before** any TypeScript is written. The Python
|
|
34
|
+
engine, lint scripts, hooks, and `scripts/work_engine/` stay where
|
|
35
|
+
they are — the TS layer is a thin distribution + UX shell that
|
|
36
|
+
subprocess-invokes Python for heavy work.
|
|
37
|
+
|
|
38
|
+
Related ADRs:
|
|
39
|
+
|
|
40
|
+
- [ADR-007 — Agent Discovery Scopes](ADR-007-agent-discovery-scopes.md)
|
|
41
|
+
- [ADR-010 — Profile/Pack/Preset Boundary](ADR-010-profile-pack-preset-boundary.md)
|
|
42
|
+
- [ADR-011 — Domain-Pack Readiness](ADR-011-domain-pack-readiness.md)
|
|
43
|
+
|
|
44
|
+
## Decision
|
|
45
|
+
|
|
46
|
+
### Runtime dependencies (frozen)
|
|
47
|
+
|
|
48
|
+
| Package | Why chosen |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `commander@^12` | Argv parsing; small footprint, zero transitive deps. |
|
|
51
|
+
| `fastify@^5` | HTTP server; fast cold start, schema-first request validation. Bumped from v4 during Phase 1 install: v4 transitive `fast-uri` carries 5 high-sev advisories that block the `npm audit --audit-level=high` security gate. |
|
|
52
|
+
| `@fastify/static@^9` | Static-file plugin for the built UI bundle. v9 fixes the `@fastify/static` path-traversal + route-guard-bypass advisories present in v7/v8. |
|
|
53
|
+
| `open@^10` | Cross-platform "open URL in browser"; single function, near-zero deps. |
|
|
54
|
+
| `zod@^3` | Runtime schema for IPC; reused by R2 GUI for settings validation. |
|
|
55
|
+
| `execa@^9` | Subprocess wrapper around Python; stream pass-through, Windows-safe escaping, predictable exit-code propagation. |
|
|
56
|
+
| `js-yaml@^4` | Read `.agent-settings.yml` from TS before delegating to Python. |
|
|
57
|
+
|
|
58
|
+
### Dev dependencies (frozen)
|
|
59
|
+
|
|
60
|
+
`typescript@^5.5`, `tsx@^4`, `vite@^5`, `vitest@^2`, `eslint@^9`,
|
|
61
|
+
`@typescript-eslint/eslint-plugin@^8`, `@typescript-eslint/parser@^8`,
|
|
62
|
+
`@types/node@^20`, `@types/js-yaml@^4`. No `ts-node`, no `nodemon`,
|
|
63
|
+
no `webpack`, no direct `rollup`.
|
|
64
|
+
|
|
65
|
+
### Forbidden in this roadmap
|
|
66
|
+
|
|
67
|
+
`inquirer`, `prompts`, `chalk`, `ora`, `boxen`, anything that emits
|
|
68
|
+
colour codes outside a TTY, anything pulling > 5 transitive deps.
|
|
69
|
+
Rationale: keep the binary light enough for `npx` first-run feel.
|
|
70
|
+
|
|
71
|
+
### Decision matrix
|
|
72
|
+
|
|
73
|
+
| Concern | Candidates | Chosen | Why rejected (others) |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| Argv parser | commander · yargs · meow · native | **commander** | yargs: 13 transitive deps; meow: ESM-only quirks; native: too verbose. |
|
|
76
|
+
| HTTP server | fastify · express · koa · native | **fastify** | express: legacy middleware shape, slower cold start; koa: smaller community for plugins we need; native: schema validation would be hand-rolled. |
|
|
77
|
+
| Open in browser | open · opn (deprecated) | **open** | opn unmaintained. |
|
|
78
|
+
| Subprocess | execa · node:child_process | **execa** | child_process: Windows escape tax + manual stream wiring; execa cost (~70 KB) is acceptable per roadmap Open Question 3, revisit on measurement. |
|
|
79
|
+
| Schema | zod · joi · ajv-direct | **zod** | joi: heavier; ajv: lower-level; zod is shared with R2 GUI. |
|
|
80
|
+
| Settings parse | js-yaml · yaml | **js-yaml** | yaml: stricter spec but slower for our shape; js-yaml is the de-facto standard. |
|
|
81
|
+
| UI build | vite · esbuild · rollup | **vite** | esbuild lacks HTML entry; rollup needs hand-wired HTML plugin; vite handles `index.html` + `<script type="module">` natively. |
|
|
82
|
+
|
|
83
|
+
### Source layout
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
src/
|
|
87
|
+
cli/
|
|
88
|
+
agent-config.ts # bin entry (#!/usr/bin/env node)
|
|
89
|
+
paths.ts # package-root walk-up, src/dist resolver
|
|
90
|
+
commands/ # one .ts per Tier-0/1/2 subcommand
|
|
91
|
+
python/
|
|
92
|
+
runPython.ts # execa wrapper, stdio inherit
|
|
93
|
+
resolvePython.ts # python3 / py / python detection
|
|
94
|
+
settings/readSettings.ts # .agent-settings.yml (read-only)
|
|
95
|
+
log/logger.ts # leveled logger, NO chalk
|
|
96
|
+
server/
|
|
97
|
+
app.ts # Fastify instance + route registration
|
|
98
|
+
port.ts # free-port picker (41000–41999)
|
|
99
|
+
auth/token.ts # per-process token in ~/.event4u/agent-config/
|
|
100
|
+
routes/
|
|
101
|
+
ping.ts # GET /api/v1/ping
|
|
102
|
+
ui/
|
|
103
|
+
index.html # mount point only
|
|
104
|
+
main.ts # bundle entry (Vite)
|
|
105
|
+
dist/
|
|
106
|
+
cli/ # tsc output of src/cli + src/server
|
|
107
|
+
ui/ # vite build output of src/ui
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
No `src/index.ts` god-file. No `src/utils.ts`. Path aliases via
|
|
111
|
+
`baseUrl: "./src"` and `paths: { "@cli/*": ["cli/*"], "@server/*": ["server/*"] }`.
|
|
112
|
+
|
|
113
|
+
### npm-package shape
|
|
114
|
+
|
|
115
|
+
- `"bin"` points at `dist/cli/agent-config.js` — but **only** after
|
|
116
|
+
Phase 5b ships. This ADR lands with `"bin"` still pointing at the
|
|
117
|
+
Bash file; the TS binary is shipped alongside for shadow mode.
|
|
118
|
+
- `"files"` adds `dist/`; keeps `scripts/agent-config`.
|
|
119
|
+
- `"engines": { "node": ">=20.11.0" }` — Node 20 LTS minimum.
|
|
120
|
+
- npm scripts: `build:cli`, `build:ui`, `build`, `typecheck`,
|
|
121
|
+
`lint:ts`, `test:ts`, `prepack` (runs `build` + asserts
|
|
122
|
+
`dist/cli/agent-config.js` exists and is executable). No
|
|
123
|
+
`postinstall`.
|
|
124
|
+
|
|
125
|
+
### Local server security floor
|
|
126
|
+
|
|
127
|
+
Per council `security-engineer` lens, `127.0.0.1` bind is necessary
|
|
128
|
+
but not sufficient. Mandated controls:
|
|
129
|
+
|
|
130
|
+
1. Bind only to `127.0.0.1` — any non-loopback attempt fails contract test.
|
|
131
|
+
2. Reject `Host` headers other than `127.0.0.1:<port>` or `localhost:<port>` (status `421`).
|
|
132
|
+
3. `Origin` allow-list: same-origin only (`null`, `127.0.0.1:<port>`, `localhost:<port>`).
|
|
133
|
+
4. Per-process token written to `~/.event4u/agent-config/local-server.token` (mode `0600`), required as `Authorization: Bearer <token>` on every `/api/*` route. `/ping` is exempt for liveness probes.
|
|
134
|
+
5. `npm audit --omit=dev --audit-level=high` runs in `task lint-ts` and blocks on regressions.
|
|
135
|
+
|
|
136
|
+
## Consequences
|
|
137
|
+
|
|
138
|
+
**Positive**
|
|
139
|
+
|
|
140
|
+
- TS entry surface gives R2 (GUI) and R4 (explain) a real substrate.
|
|
141
|
+
- Python becomes optional for Tier-0 commands (`versions`, `doctor`-fast-checks). Narrows the "Python required" surface to advanced subcommands.
|
|
142
|
+
- Frozen dep list resists casual scope creep.
|
|
143
|
+
- Token + Origin guard means the local server is safe even on a multi-user host.
|
|
144
|
+
|
|
145
|
+
**Negative**
|
|
146
|
+
|
|
147
|
+
- Node 20 LTS becomes a hard requirement for the published binary (Bash shim survives one minor cycle for users on Node < 20).
|
|
148
|
+
- +400 KB tarball budget (compiled JS + Vite output).
|
|
149
|
+
- Shadow-mode rollout (Phase 5a → 5b) costs one release cycle of dual-shipping.
|
|
150
|
+
|
|
151
|
+
**Accepted as risk**
|
|
152
|
+
|
|
153
|
+
- Embedding Fastify inside the CLI binary vs. splitting to a separate `@event4u/agent-config-ui` package (external reviewer's pushback). Rationale: ADR-012 + roadmap goal lock the embedded design as infrastructure reuse for R2/R4; revisit if R2 surfaces real integration friction.
|
|
154
|
+
- `execa` install weight (~70 KB) over `node:child_process`. Decide via measurement in Phase 1, not now.
|
|
155
|
+
|
|
156
|
+
## Council debate trace
|
|
157
|
+
|
|
158
|
+
In-session (2026-05-18): `backend-architect`, `security-engineer`,
|
|
159
|
+
`frontend-engineer`, `critical-challenger` — 8 items, all folded.
|
|
160
|
+
External pass: `agents/runtime/council/responses/2026-05-18T*-r1-ts-cli-foundation/`
|
|
161
|
+
— 5 items, all folded. Roadmap §"Council TODOs" lists every item
|
|
162
|
+
with its target phase.
|