@event4u/agent-config 7.5.0 → 8.0.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/.claude-plugin/marketplace.json +8 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +325 -0
- package/README.md +35 -5
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +1 -1
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/incident.md +2 -2
- package/dist/agent-src/commands/analyze/near-miss.md +2 -2
- package/dist/agent-src/commands/analyze/postmortem.md +2 -2
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/cost-report.md +25 -0
- package/dist/agent-src/commands/evals/analyze.json +30 -0
- package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +1 -1
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/load.md +12 -11
- package/dist/agent-src/commands/memory/promote.md +30 -0
- package/dist/agent-src/commands/memory/propose.md +16 -2
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +11 -7
- package/dist/agent-src/commands/optimize-project.md +243 -0
- package/dist/agent-src/commands/optimize.md +5 -0
- package/dist/agent-src/commands/pr/create.md +37 -8
- package/dist/agent-src/commands/prediction-pool.md +2 -2
- package/dist/agent-src/commands/profile/activate.md +3 -3
- package/dist/agent-src/commands/profile/deactivate.md +2 -2
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research/deep.md +5 -0
- package/dist/agent-src/commands/research/report.md +2 -1
- package/dist/agent-src/commands/roadmap/create.md +88 -10
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +15 -2
- package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
- package/dist/agent-src/commands/roadmap/process-step.md +4 -0
- package/dist/agent-src/commands/roadmap.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +1 -1
- package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
- package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
- package/dist/agent-src/commands/team-knowledge.md +64 -0
- package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
- package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
- package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
- package/dist/agent-src/contexts/override-system.md +1 -1
- package/dist/agent-src/personas/brand-strategist.md +0 -1
- package/dist/agent-src/personas/data-integrity.md +66 -0
- package/dist/agent-src/personas/design-director.md +0 -1
- package/dist/agent-src/personas/performance-engineer.md +66 -0
- package/dist/agent-src/personas/production-validator.md +73 -0
- package/dist/agent-src/rules/agent-authority.md +3 -4
- package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
- package/dist/agent-src/rules/architecture.md +2 -4
- package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
- package/dist/agent-src/rules/artifact-engagement-recording.md +2 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
- package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
- package/dist/agent-src/rules/autonomous-execution.md +3 -5
- package/dist/agent-src/rules/brand-consistency.md +3 -5
- package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
- package/dist/agent-src/rules/cli-output-handling.md +4 -6
- package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
- package/dist/agent-src/rules/commit-conventions.md +3 -5
- package/dist/agent-src/rules/commit-policy.md +8 -10
- package/dist/agent-src/rules/content-quoting-floor.md +88 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -5
- package/dist/agent-src/rules/copilot-routing.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
- package/dist/agent-src/rules/delegation-policy.md +10 -6
- package/dist/agent-src/rules/design-fidelity.md +3 -5
- package/dist/agent-src/rules/devcontainer-routing.md +4 -6
- package/dist/agent-src/rules/direct-answers.md +13 -17
- package/dist/agent-src/rules/docker-commands.md +3 -5
- package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
- package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
- package/dist/agent-src/rules/domain-safety-pii.md +3 -5
- package/dist/agent-src/rules/domain-safety-retention.md +3 -5
- package/dist/agent-src/rules/downstream-changes.md +3 -4
- package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
- package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
- package/dist/agent-src/rules/finance-safety-floor.md +3 -6
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
- package/dist/agent-src/rules/git-history-discipline.md +3 -5
- package/dist/agent-src/rules/guidelines.md +2 -4
- package/dist/agent-src/rules/icon-consistency.md +3 -5
- package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
- package/dist/agent-src/rules/improve-before-implement.md +5 -5
- package/dist/agent-src/rules/invite-challenge.md +3 -5
- package/dist/agent-src/rules/language-and-tone.md +13 -15
- package/dist/agent-src/rules/laravel-routing.md +3 -5
- package/dist/agent-src/rules/laravel-translations.md +3 -5
- package/dist/agent-src/rules/legal-safety-floor.md +3 -5
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
- package/dist/agent-src/rules/media-governance-routing.md +3 -5
- package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
- package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
- package/dist/agent-src/rules/missing-tool-handling.md +3 -5
- package/dist/agent-src/rules/model-recommendation.md +4 -6
- package/dist/agent-src/rules/no-attribution-footers.md +3 -5
- package/dist/agent-src/rules/no-cheap-questions.md +5 -8
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
- package/dist/agent-src/rules/no-roadmap-references.md +3 -5
- package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
- package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
- package/dist/agent-src/rules/onboarding-gate.md +4 -6
- package/dist/agent-src/rules/output-discipline.md +3 -5
- package/dist/agent-src/rules/package-ci-checks.md +3 -5
- package/dist/agent-src/rules/persona-governance.md +2 -4
- package/dist/agent-src/rules/php-coding.md +3 -5
- package/dist/agent-src/rules/preservation-guard.md +2 -4
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
- package/dist/agent-src/rules/reviewer-awareness.md +5 -6
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
- package/dist/agent-src/rules/role-mode-adherence.md +2 -4
- package/dist/agent-src/rules/rule-type-governance.md +3 -5
- package/dist/agent-src/rules/runtime-safety.md +2 -4
- package/dist/agent-src/rules/scope-control.md +10 -11
- package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
- package/dist/agent-src/rules/size-enforcement.md +2 -4
- package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
- package/dist/agent-src/rules/skill-quality.md +3 -5
- package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
- package/dist/agent-src/rules/source-confidentiality.md +3 -5
- package/dist/agent-src/rules/source-discovery-gate.md +3 -5
- package/dist/agent-src/rules/source-of-truth.md +3 -5
- package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
- package/dist/agent-src/rules/symfony-routing.md +4 -6
- package/dist/agent-src/rules/telegraph-speak.md +4 -5
- package/dist/agent-src/rules/think-before-action.md +7 -4
- package/dist/agent-src/rules/token-budget-discipline.md +29 -5
- package/dist/agent-src/rules/token-efficiency.md +3 -5
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
- package/dist/agent-src/rules/tool-safety.md +2 -4
- package/dist/agent-src/rules/ui-audit-gate.md +3 -6
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -5
- package/dist/agent-src/rules/upstream-proposal.md +4 -6
- package/dist/agent-src/rules/user-interaction.md +7 -5
- package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
- package/dist/agent-src/rules/verify-before-complete.md +12 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
- package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
- package/dist/agent-src/skills/adr-create/SKILL.md +48 -42
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
- package/dist/agent-src/skills/brand/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
- package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -3
- package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
- package/dist/agent-src/skills/code-review/SKILL.md +1 -0
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
- package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
- package/dist/agent-src/skills/context-document/SKILL.md +17 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
- package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +5 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +10 -4
- package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
- package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
- package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
- package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/laravel/SKILL.md +0 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
- package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/premortem/SKILL.md +0 -3
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +46 -45
- package/dist/agent-src/skills/roadmap-management/SKILL.md +21 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +32 -2
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
- package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +29 -0
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
- package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
- package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agent-settings.md +22 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
- package/dist/agent-src/templates/roadmaps.md +70 -2
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +3 -3
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
- package/dist/agent-src/templates/tickets.md +8 -8
- package/dist/cli/commands/recordTriggerEval.test.js +1 -1
- package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
- package/dist/cli/initRouting.js +4 -2
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +718 -240
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +43 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +29 -18
- package/dist/install/preflight.js +173 -0
- package/dist/install/preflight.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +1 -1
- package/dist/server/routes/settings.js +4 -0
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +108 -0
- package/docs/MIGRATION.md +3 -3
- package/docs/architecture.md +5 -5
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +70 -60
- package/docs/command-flows.md +15 -3
- package/docs/comparison.yaml +35 -0
- package/docs/contracts/agents-layout.md +148 -0
- package/docs/contracts/brand-token-consumption.md +5 -0
- package/docs/contracts/capability-boundary.md +5 -0
- package/docs/contracts/command-category-governance.md +5 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -1
- package/docs/contracts/conformance.md +84 -0
- package/docs/contracts/creative-pack-boundary.md +5 -0
- package/docs/contracts/discovery-manifest.schema.json +5 -4
- package/docs/contracts/file-ownership-matrix.json +4605 -985
- package/docs/contracts/governance-enforcement-projection.md +5 -0
- package/docs/contracts/gui-wizard.md +1 -1
- package/docs/contracts/hook-architecture-v1.md +2 -2
- package/docs/contracts/implement-ticket-flow.md +1 -1
- package/docs/contracts/kernel-membership.md +13 -0
- package/docs/contracts/mcp-tool-inventory.md +23 -23
- package/docs/contracts/no-runtime-boundary.md +6 -1
- package/docs/contracts/review-lens-schema.md +5 -0
- package/docs/contracts/rule-router.md +102 -8
- package/docs/contracts/skill-bundled-assets.md +1 -1
- package/docs/contracts/skill-dry-run.md +1 -1
- package/docs/contracts/subagent-boundary.md +5 -0
- package/docs/contracts/ticket-bundle-format.md +9 -4
- package/docs/contracts/tier-3-contrib-plugin.md +2 -2
- package/docs/contracts/write-engine.md +3 -0
- package/docs/customization.md +87 -15
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
- package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/distribution/awesome-list-submission.md +46 -0
- package/docs/distribution/launch-story-draft.md +58 -0
- package/docs/end-to-end-walkthroughs.md +2 -2
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
- package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
- package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/guidelines/code-clarity.md +19 -0
- package/docs/guidelines/design-antipatterns-triggers.json +2 -1
- package/docs/guidelines/design-antipatterns.md +10 -1
- package/docs/guidelines/design-modes.md +6 -0
- package/docs/guidelines/php/general.md +9 -1
- package/docs/guidelines/php/php-coding-patterns.md +7 -0
- package/docs/guides/cross-repo-retrieval.md +1 -1
- package/docs/guides/frontend-design-corpus-refresh.md +2 -2
- package/docs/guides/local-analytics.md +4 -4
- package/docs/guides/skill-discovery.md +1 -1
- package/docs/guides/skill-preview.md +1 -1
- package/docs/hook-payload-capture.md +6 -6
- package/docs/install-friction-report.md +66 -0
- package/docs/installation.md +1 -1
- package/docs/maintainers/optional-media-deps.md +50 -0
- package/docs/mcp-server.md +11 -12
- package/docs/media/proof-demo.cast +14 -0
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +1 -1
- package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
- package/docs/migration/node-floor.md +1 -1
- package/docs/migration/yaml-roundtrip-spike.md +1 -1
- package/docs/personas.md +16 -5
- package/docs/positioning-evidence.md +86 -0
- package/docs/proof.md +86 -0
- package/docs/skills-catalog.md +1 -1
- package/docs/troubleshooting.md +8 -8
- package/docs/wedge/production-validator/README.md +57 -0
- package/docs/wedge/production-validator/production-validator.md +56 -0
- package/docs/wizard.md +2 -2
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +59 -4
- package/src/config/agents-paths.yml +254 -0
- package/src/config/budgets.yml +16 -0
- package/src/config/discovery/packs.yml +1 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/gitignore-block.txt +25 -0
- package/src/config/host-capabilities.yml +31 -0
- package/src/config/profiles/balanced.ini +4 -0
- package/src/config/profiles/full.ini +4 -0
- package/src/config/profiles/minimal.ini +4 -0
- package/src/scripts/_cli/cmd_conformance.ts +716 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -2
- package/src/scripts/_cli/cmd_fleet.ts +401 -0
- package/src/scripts/_cli/cmd_preflight.ts +159 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/knowledge_events.ts +193 -0
- package/src/scripts/_lib/subagent_steering.ts +115 -3
- package/src/scripts/_lib/text_similarity.ts +75 -0
- package/src/scripts/ai-video/test-pipeline.sh +1 -1
- package/src/scripts/ai_council/clients.ts +19 -3
- package/src/scripts/append_contested.ts +112 -0
- package/src/scripts/audit_auto_rules.ts +11 -1
- package/src/scripts/audit_mcp_tools.ts +25 -11
- package/src/scripts/bench_ab_v2_run.ts +527 -40
- package/src/scripts/bench_ab_v2_stats.ts +6 -0
- package/src/scripts/bench_matrix.ts +266 -0
- package/src/scripts/bootstrap_knowledge.ts +267 -0
- package/src/scripts/build_discovery_manifest.ts +42 -2
- package/src/scripts/build_proof.ts +214 -0
- package/src/scripts/check_always_budget.ts +3 -0
- package/src/scripts/check_augment_description_cap.ts +2 -2
- package/src/scripts/check_claims.ts +270 -0
- package/src/scripts/check_comparison.ts +79 -0
- package/src/scripts/check_generated_artefact_headers.ts +109 -0
- package/src/scripts/check_generator_output_coverage.ts +142 -0
- package/src/scripts/check_gitignore_freshness.ts +127 -0
- package/src/scripts/check_knowledge_pages.ts +210 -0
- package/src/scripts/check_knowledge_sharing.ts +162 -0
- package/src/scripts/check_media_deps.ts +91 -0
- package/src/scripts/check_memory_contradiction.ts +280 -0
- package/src/scripts/check_memory_similarity.ts +134 -0
- package/src/scripts/check_quality_regression.ts +56 -10
- package/src/scripts/check_references.ts +3 -1
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_site_links.ts +135 -0
- package/src/scripts/check_skill_gaps.ts +99 -0
- package/src/scripts/check_token_quality_golden.ts +197 -11
- package/src/scripts/check_tracked_but_ignored.ts +67 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +30 -3
- package/src/scripts/condense.ts +350 -14
- package/src/scripts/consolidate_knowledge_events.ts +192 -0
- package/src/scripts/degrade_to_pointer.ts +136 -0
- package/src/scripts/design_slop_rules.test.ts +15 -0
- package/src/scripts/design_slop_rules.ts +28 -0
- package/src/scripts/emit_knowledge_event.ts +158 -0
- package/src/scripts/export_replay_corpus.ts +187 -0
- package/src/scripts/external_sources_denylist.json +7 -2
- package/src/scripts/fold_intake.ts +281 -0
- package/src/scripts/generate_capability_matrix.ts +9 -1
- package/src/scripts/generate_knowledge_index.ts +222 -0
- package/src/scripts/hook_manifest.yaml +26 -14
- package/src/scripts/hooks/dispatch_hook.ts +18 -0
- package/src/scripts/hot_context_hook.ts +372 -0
- package/src/scripts/install +47 -0
- package/src/scripts/install-hooks.sh +17 -0
- package/src/scripts/inventory_meta_layers.ts +11 -0
- package/src/scripts/janitor.ts +258 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
- package/src/scripts/lint_knowledge_scale.ts +250 -0
- package/src/scripts/lint_legal_pack.ts +67 -0
- package/src/scripts/lint_persona_governance.ts +8 -3
- package/src/scripts/lint_regression.ts +15 -0
- package/src/scripts/lint_roadmap_blockers.ts +202 -0
- package/src/scripts/lint_roadmap_complexity.ts +81 -2
- package/src/scripts/lint_subagent_determinism.ts +125 -0
- package/src/scripts/measure_augment_budget.ts +46 -6
- package/src/scripts/measure_patterns.ts +4 -3
- package/src/scripts/measure_skill_reduction.ts +6 -6
- package/src/scripts/migration_status.ts +6 -2
- package/src/scripts/mine_missing_guardrails.ts +189 -0
- package/src/scripts/parity/phase_gate.ts +1 -1
- package/src/scripts/parity/replay.ts +21 -0
- package/src/scripts/project_thin_rules.ts +120 -16
- package/src/scripts/release.ts +39 -1
- package/src/scripts/render_benchmark_composite.ts +378 -0
- package/src/scripts/roadmap_progress_hook.ts +101 -43
- package/src/scripts/schemas/skill.schema.json +27 -0
- package/src/scripts/schemas/subagent.schema.json +106 -0
- package/src/scripts/skill_linter.ts +1 -0
- package/src/scripts/smoke/kernel.sh +5 -4
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_gitignore.ts +4 -0
- package/src/scripts/update_skill_candidates.ts +172 -0
- package/src/scripts/validate_frontmatter.ts +1 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# B7 — comparison-honesty rows for the proof page.
|
|
2
|
+
#
|
|
3
|
+
# The point is the `checkable` column, not a takedown. For each dimension we
|
|
4
|
+
# cite OUR evidence as a resolvable pointer (file / file#substring / ledger id),
|
|
5
|
+
# and state what is PUBLICLY OBSERVABLE about the wider category — never a named
|
|
6
|
+
# competitor (source-confidentiality), never a counter-claim to their headline
|
|
7
|
+
# number. A category headline figure (e.g. an "84.8%" score) is cited ONLY as
|
|
8
|
+
# uncheckable: no reproducible methodology is published, so it cannot be verified
|
|
9
|
+
# either way — that is the whole point.
|
|
10
|
+
#
|
|
11
|
+
# check_comparison.ts enforces: every `our_evidence` resolves (reuses the
|
|
12
|
+
# check_claims pointer resolver); every `checkable: true` row's `our_evidence`
|
|
13
|
+
# resolves. build_proof renders these rows. check_no_external_sources guarantees
|
|
14
|
+
# no named source leaks in.
|
|
15
|
+
|
|
16
|
+
rows:
|
|
17
|
+
- claim: "No runtime — no background daemon, no state database, no auto-write memory."
|
|
18
|
+
our_evidence: "docs/contracts/no-runtime-boundary.md#file-first"
|
|
19
|
+
their_evidence: "Swarm-runtime tools in this category ship a background process and/or a state store by design; that is an architectural fact of the runtime approach, not a defect."
|
|
20
|
+
checkable: true
|
|
21
|
+
|
|
22
|
+
- claim: "Capability/benchmark results are published — including the runs where the package changed nothing."
|
|
23
|
+
our_evidence: "docs/benchmark.md"
|
|
24
|
+
their_evidence: "A category headline figure (e.g. an '84.8%' score) appears across marketing surfaces with no reproducible methodology published — so it cannot be verified either way."
|
|
25
|
+
checkable: true
|
|
26
|
+
|
|
27
|
+
- claim: "Every public claim binds to machine-checked evidence."
|
|
28
|
+
our_evidence: "docs/CLAIMS.md"
|
|
29
|
+
their_evidence: "Marketing claims in this category are not bound to a machine-checked ledger a reader can reproduce."
|
|
30
|
+
checkable: true
|
|
31
|
+
|
|
32
|
+
- claim: "Skills publish their own known limits, each with a witness test."
|
|
33
|
+
our_evidence: "tests/scripts/witness/check_refs_relative_gap.test.ts"
|
|
34
|
+
their_evidence: "Published known-limitation surfaces backed by reproducing tests are not a standard artifact in this category."
|
|
35
|
+
checkable: true
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-17
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `agents/` Directory Layout Contract
|
|
7
|
+
|
|
8
|
+
> **Do not bypass this contract.** Every entry at the `agents/` root — file or
|
|
9
|
+
> directory — must appear in this table. Unknown entries are CI violations
|
|
10
|
+
> (`lint_agents_layout.ts` enforces this in source-repo mode, warns in consumer
|
|
11
|
+
> mode). Adding a new top-level entry requires a PR that also updates this table
|
|
12
|
+
> and the classification manifest (`src/config/agents-paths.yml`).
|
|
13
|
+
|
|
14
|
+
## Design invariants
|
|
15
|
+
|
|
16
|
+
1. **The `agents/` root stays flat-minimal.** Content lives in typed
|
|
17
|
+
subdirectories. New flat files require a contract edit and explicit rationale
|
|
18
|
+
(six whitelisted flat files exist; no new ones without a deliberate decision).
|
|
19
|
+
2. **`agents/tmp/` is the user's inbox; `agents/tmp.old/` is the processed
|
|
20
|
+
archive.** The agent reads inbox files and moves them to `tmp.old/` after
|
|
21
|
+
consumption. The agent's own scratch goes to `agents/runtime/tmp/` or the
|
|
22
|
+
session scratchpad. See § User Inbox Workflow below.
|
|
23
|
+
3. **Both `tmp/` and `tmp.old/` are gitignored in every scope.** Consumer
|
|
24
|
+
projects would commit their inbox without the managed block entry.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Whitelisted flat files
|
|
29
|
+
|
|
30
|
+
| File | Git policy | Owner | Rationale |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| `index.md` | tracked-durable | agents (auto-regenerated) | Human-readable full index; regenerated by `./agent-config roadmap:progress` |
|
|
33
|
+
| `roadmaps-progress.md` | tracked-durable | agents (auto-regenerated) | Roadmap dashboard; regenerated by `./agent-config roadmap:progress` |
|
|
34
|
+
| `.agent-tools.yml` | tracked-durable | maintainer | Declares which tool projections `task generate-tools` builds |
|
|
35
|
+
| `.maintainer-workspace.md` | tracked-durable | maintainer | Maintainer-facing workspace notes; source-repo only |
|
|
36
|
+
| `.gitkeep` | tracked-durable | — | Keeps `agents/` in the tree even when all other files are ignored |
|
|
37
|
+
| `installed-tools.lock` | **local-only** (gitignored) | installer (`scripts/install.py`) | Per-user install inventory; leaks `$HOME`; consumer-only artefact, must never be committed in the source repo |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Directory table
|
|
42
|
+
|
|
43
|
+
Scope column: `pkg` = source repo only · `consumer` = consumer projects only · `both` = all.
|
|
44
|
+
|
|
45
|
+
| Directory | Scope | Git policy | Retention | Owner | Purpose |
|
|
46
|
+
|---|---|---|---|---|---|
|
|
47
|
+
| `decisions/` | pkg | tracked-durable | permanent | council + humans | Low-impact council corpus, open questions, per-decision ADRs |
|
|
48
|
+
| `evidence/` | pkg | tracked-durable (see notes) | permanent | tooling + humans | Research, analysis, audits, eval findings, metrics — everything evidential. Sub-dirs: `analysis/`, `audits/`, `architectural-drift/`, `archived-skills/`, `council/`, `eval-findings/`, `eval-corpora/`, `investigations/`, `mcp-sessions/`, `metrics/`, `notes/`, `reports/` |
|
|
49
|
+
| `features/` | pkg | tracked-durable | permanent | maintainer | Feature-flag status docs (long-form complement to `.agent-tools.yml`) |
|
|
50
|
+
| `knowledge/` | both | tracked-durable | permanent | human-gated (`/team-knowledge` skills) | Curated committed knowledge pages (sessions/, concepts/, procedures/, decisions/). Committed only after human review; never auto-written |
|
|
51
|
+
| `memory/` | both | mixed (see notes) | permanent (durable) / TTL (intake) | `/memory:*` skills | Layer 1 memory pipeline: `intake/` (gitignored JSONL), `knowledge/` subdir (mirrors top-level knowledge/). Intake is local-only; curated YAML in subdirs is committed |
|
|
52
|
+
| `notes/` | pkg | tracked-durable | permanent | maintainer | Ad-hoc analyst notes that are not evidence/reports (e.g. `visibility-sync-audit.md`). **Merge candidate** — new notes land in `evidence/notes/` going forward; existing file stays for now |
|
|
53
|
+
| `overrides/` | both | tracked-durable | permanent | humans (`/override:*`) | Per-project skill/rule/command/guideline overrides; the only consumer-committed customisation layer |
|
|
54
|
+
| `recruit-sessions/` | pkg | tracked-durable | permanent | maintainer | User-recruit study session data and runbooks |
|
|
55
|
+
| `reference/` | pkg | tracked-durable | permanent | maintainer | External reference material: `ai-video/`, `docs/`, `ghostwriter/` |
|
|
56
|
+
| `roadmap-assets/` | pkg | tracked-durable | permanent | maintainer | Supplemental assets for specific roadmaps (e.g. design-asset `.assets.md` files). **Merge candidate** — new assets can land in `evidence/` or alongside the roadmap file |
|
|
57
|
+
| `roadmaps/` | pkg | tracked-durable | permanent | agents + maintainer | Active roadmaps; sub-dirs: `archive/`, `later/`, `skipped/`, `stubs/` |
|
|
58
|
+
| `roles/` | pkg | tracked-durable | permanent | maintainer | Role-definition docs for consumer user-types (consultant, galabau, support, …) |
|
|
59
|
+
| `runtime/` | both | **local-only** (gitignored, entire tree) | session / TTL | multiple scripts | Volatile runtime artefacts: council sessions/responses, price cache, chat-history, budget history, hook state, logs, mcp-telemetry, dispatcher lock, tmp scratch. Nothing inside is ever committed |
|
|
60
|
+
| `settings/` | pkg | tracked-durable | permanent | maintainer | Long-lived package-level configuration and context documents: `contexts/`, `policies/` |
|
|
61
|
+
| `state/` | both | **local-only** (gitignored) | session / TTL | hooks | Tier-1 hook runtime state (context-hygiene, verify-before-complete, etc.), the hot-context working-memory cache (`hot-context.md` — bounded 400 words, fixed sections `Last Updated / Branch / Key Facts / Active Threads / Open Verifications / Recent Changes`, overwritten on every `stop`, restored on `session_start`), and GUI wizard resume snapshot. Never committed |
|
|
62
|
+
| `templates/` | pkg | tracked-durable | permanent | maintainer | Reusable template files for agents (currently empty; reserved for future use) |
|
|
63
|
+
| `tickets/` | pkg | tracked-durable | permanent | maintainer + `emit-tickets` | Ticket bundles (`_registry.yml`, per-bundle dirs); governed by `road-to-ticket-bundles.md` |
|
|
64
|
+
| `tmp/` | both | **local-only** (gitignored, BOTH scopes) | user-owned | **user only** | User inbox: free-form notes/todos for the agent to consume. Never auto-swept. See § User Inbox Workflow |
|
|
65
|
+
| `tmp.old/` | both | **local-only** (gitignored, BOTH scopes) | TTL (30 days) | agent (moves only) | Processed inbox archive: the agent moves consumed `tmp/` files here after processing. Auto-swept by janitor at 30-day TTL; user can also delete manually |
|
|
66
|
+
| `.harvest-local/` | pkg | **local-only** (gitignored) | retained evidence | maintainer | Source-confidentiality: named external-reference harvest evidence. 74 MB; never committed (see `source-confidentiality` rule) |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## User Inbox Workflow
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
agents/tmp/ ← USER drops notes, todos, draft ideas here
|
|
74
|
+
↓ agent reads + processes (roadmap create, memory promote, etc.)
|
|
75
|
+
agents/tmp.old/ ← AGENT moves the consumed file here, same reply
|
|
76
|
+
↓ janitor sweeps after 30 days
|
|
77
|
+
(deleted)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Rules:**
|
|
81
|
+
|
|
82
|
+
- `agents/tmp/` is the **user's space** — the agent only reads and moves from
|
|
83
|
+
it; the agent never writes files into it.
|
|
84
|
+
- After consuming a file from `agents/tmp/` (as a command input), the agent
|
|
85
|
+
moves it to `agents/tmp.old/<original-name>` in the **same reply** as the
|
|
86
|
+
processing. No confirmation needed (gitignored, reversible, local-only).
|
|
87
|
+
- The agent's own scratch (intermediate calculations, session notes) goes to
|
|
88
|
+
the **session scratchpad** or `agents/runtime/tmp/` — never into `agents/tmp/`.
|
|
89
|
+
- `agents/tmp/` is **never** auto-swept by the janitor — it belongs to the user.
|
|
90
|
+
The janitor only touches `agents/tmp.old/` (TTL = 30 days).
|
|
91
|
+
- Both directories are gitignored in **package and consumer scope** (entry in
|
|
92
|
+
`src/config/agents-paths.yml` with `scope: both`).
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Consumer-only scope (slim profile)
|
|
97
|
+
|
|
98
|
+
After `agent-config migrate`, a consumer project's `agents/` contains only:
|
|
99
|
+
|
|
100
|
+
| Entry | Rationale |
|
|
101
|
+
|---|---|
|
|
102
|
+
| `overrides/` | Per-project skill/rule customisation |
|
|
103
|
+
| `.event4u-bridge.yml` | ADR-020 bridge marker (global-only install) |
|
|
104
|
+
| `.gitkeep` | Keeps `agents/` in the tree |
|
|
105
|
+
| `knowledge/` | Optional: curated project-specific knowledge pages |
|
|
106
|
+
| `memory/` | Optional: promotion pipeline (intake gitignored, curated YAML committed) |
|
|
107
|
+
| `roadmaps/` | Optional: project-local roadmaps |
|
|
108
|
+
| `tmp/` | Optional: user inbox (gitignored) |
|
|
109
|
+
| `tmp.old/` | Optional: processed inbox archive (gitignored) |
|
|
110
|
+
|
|
111
|
+
Entries that are **not** expected in consumers (and that `agent-config doctor`
|
|
112
|
+
will warn about): `evidence/`, `decisions/`, `features/`, `reports/`,
|
|
113
|
+
`recruit-sessions/`, `settings/`, `roles/`, `reference/`, `roadmap-assets/`,
|
|
114
|
+
`notes/`, `tickets/`, `templates/`, `runtime/`, `state/`.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Overlap decisions (2026-07-06)
|
|
119
|
+
|
|
120
|
+
| Pair | Decision |
|
|
121
|
+
|---|---|
|
|
122
|
+
| `evidence/` vs `reports/` vs `notes/` | **Keep `evidence/` as the umbrella.** `evidence/reports/` and `evidence/notes/` already exist as subdirs. New reports/notes land there. The top-level `reports/` and `notes/` are **legacy** — no new files; existing files can be migrated per future clean-up PR (non-blocking). |
|
|
123
|
+
| `memory/` vs `knowledge/` | **Keep both** with a crisp boundary: `knowledge/` = committed curated pages (human-reviewed); `memory/` = promotion pipeline (intake is gitignored JSONL; only curated YAML subsets get committed). |
|
|
124
|
+
| `templates/` vs `roadmap-assets/` | **Both empty/minimal — keep as reserved.** `templates/` = reusable agent-facing templates; `roadmap-assets/` = supplemental for specific roadmaps. New assets prefer `evidence/` sub-dirs unless they are true roadmap supplements. No migration needed today. |
|
|
125
|
+
| `recruit-sessions/`, `features/`, `tickets/` | **Keep all three** — distinct purposes, each has an active owner and lifecycle (recruit-sessions = user research; features = flag docs; tickets = bundle system). |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## What needs a contract edit
|
|
130
|
+
|
|
131
|
+
Any PR that:
|
|
132
|
+
- Adds a new top-level directory to `agents/`
|
|
133
|
+
- Adds a new whitelisted flat file to `agents/`
|
|
134
|
+
- Changes the git policy of an existing entry
|
|
135
|
+
- Changes the consumer-scope subset
|
|
136
|
+
|
|
137
|
+
...must update this table in the same commit, update `src/config/agents-paths.yml`,
|
|
138
|
+
and add the new entry to `ALLOWED_SOURCE_DIRS` (or `ALLOWED_FLAT_FILES`) in
|
|
139
|
+
`src/scripts/lint_agents_layout.ts`.
|
|
140
|
+
|
|
141
|
+
## See also
|
|
142
|
+
|
|
143
|
+
- `src/config/agents-paths.yml` — machine-readable classification manifest (Phase 3)
|
|
144
|
+
- `src/scripts/lint_agents_layout.ts` — CI enforcement
|
|
145
|
+
- `docs/contracts/migrate-command.md` — consumer migration flow
|
|
146
|
+
- ADR-020 — global-only install; bridge marker
|
|
147
|
+
- ADR-050 — workspace vs package root boundary
|
|
148
|
+
- `source-confidentiality` rule — `.harvest-local/` rationale
|
|
@@ -56,6 +56,7 @@ column 1 of this table.
|
|
|
56
56
|
| `image` | — | `analyse` · `create` · `verify` | new cluster 2026-05-31 (`road-to-character-image-fidelity` Phase 4) — character-image fidelity surface mirroring `/video:*`. `:analyse` extracts a per-feature spec from an image and diffs it against a Canon Spec down to the smallest mole (OCR for lettered tattoos, per-section severity scores, canon-breaking hard gate); `:create` assembles a max-fidelity anchors-first generation prompt from the Canon Spec, governance- + provider-gated, `AIV_DRYRUN=true` default; `:verify` runs the analyser in loop mode against a candidate and reports the gate verdict + remaining diff with plateau/oscillation/budget stop conditions. Skills: [`image-analyser`](../../skills/image-analyser/SKILL.md) + [`image-creator`](../../skills/image-creator/SKILL.md); schema/rubric/loop in [`canon-spec.md`](../../skills/image-analyser/canon-spec.md). |
|
|
57
57
|
| `brand` | — | `strategy` · `identity` · `tokens` · `review` · `voice` | new cluster 2026-06-17 (`road-to-image-brand-followups` Phase 3) — brand-as-first-class-UX surface for `pack-brand`, consulted before `design-intelligence` so brand bounds style. `:strategy` (positioning/archetype/voice/messaging over the brand corpus), `:identity` (logo/colour/type/imagery direction — defines the tokens downstream generation consumes), `:tokens` (derive a DTCG `.tokens.json` source of truth → CSS/Tailwind, no Node), `:review` (audit emitted UI/copy/assets against active brand tokens + voice per the `brand-consistency` gate), `:voice` (voice-and-tone profile). Skills: [`brand-strategy`](../../skills/brand-strategy/SKILL.md) · [`brand-identity`](../../skills/brand-identity/SKILL.md) · [`brand-to-tokens`](../../skills/brand-to-tokens/SKILL.md) · [`brand-audit`](../../skills/brand-audit/SKILL.md) · [`voice-and-tone-design`](../../skills/voice-and-tone-design/SKILL.md). The companion `/imagegen:*` generation cluster (pack-ai-image) is deferred until its adapters' live submit/poll/fetch is wired. |
|
|
58
58
|
|
|
59
|
+
| `team-knowledge` | — | `consolidate` · `bootstrap` | new cluster 2026-07-05 (`road-to-knowledge-system` Phases 5-6) — the repo-tracked team-knowledge layer under `agents/knowledge/{sessions,concepts,procedures,decisions}/`. Distinct from the pre-existing [`knowledge`](#locked-clusters) cluster (arbitrary local-file ingestion into `agents/memory/knowledge/`) — different namespace, different concern. `:consolidate` reads pending typed-observation events (`consolidate_knowledge_events.ts`), finds the nearest existing page per topic (mechanical similarity), and presents a NEW/EXTEND/CONFIRM/CONFLICT batch for human approval — never writes a page automatically. `:bootstrap` (`bootstrap_knowledge.ts`) stages a one-shot deterministic seed (detected package manifest, top-level directories, known config filenames — never file content, never an LLM-invented claim) to a gitignored staging dir for review-then-commit. |
|
|
59
60
|
| `profile` | — | `activate` · `deactivate` · `show` | new cluster 2026-06-02 (`road-to-session-profile-activation`) — session-profile activation: an ephemeral `runtime.active_packs` overlay that biases the surfaced command/skill set to the active pack closure, with no persistence and no execution-gating (recommendation-bias MVP). `:activate <name…>` resolves an alias (`src/config/discovery/session-profiles.yml`) or a raw pack id, fails fast on a not-installed pack, expands the `requires_hint` closure, and writes the overlay atomically to `agents/settings/.agent-settings.local.yml`; `:deactivate [name…]` clears it (or drops named packs, keeping deps a still-active pack needs); `:show` is the observability surface (active packs + surfaced/hidden counts). Overlay = runtime modulation of the existing `pack` axis, not a fifth axis (ADR-010 addendum). Library: `scripts/config/session_profiles.py`; schema in [`session-profile-overlay`](session-profile-overlay.md). |
|
|
60
61
|
|
|
61
62
|
**Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
|
|
@@ -41,7 +41,7 @@ The path a new contributor walks on day one. Visible in
|
|
|
41
41
|
2. **Stable surface.** The command name + flag set has not changed
|
|
42
42
|
in the last two minor releases (or is brand-new with a
|
|
43
43
|
commitment to two-release stability).
|
|
44
|
-
3. **No prerequisite tooling beyond `bash` + `
|
|
44
|
+
3. **No prerequisite tooling beyond `bash` + `node`.** Docker,
|
|
45
45
|
GPG, jq, gh CLI, npm globals are all Tier-1+ territory.
|
|
46
46
|
4. **Cited in the `init → sync → validate → work` outcome path.**
|
|
47
47
|
Setup helpers (`first-run`, `keys:install-*`) and AI-Council entry
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-10-01
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Conformance contract — green means installed AND firing
|
|
7
|
+
|
|
8
|
+
> **Status:** active · **Owner:** maintainer · **Siblings:**
|
|
9
|
+
> [`install-layout.md`](install-layout.md) · [`smoke-contracts.md`](smoke-contracts.md)
|
|
10
|
+
|
|
11
|
+
`task conformance` (equivalently `agent-config conformance`) is the
|
|
12
|
+
consumer-runnable, CI-shaped answer to one question:
|
|
13
|
+
|
|
14
|
+
> **Is agent-config installed *and firing* in this repo?**
|
|
15
|
+
|
|
16
|
+
It is deterministic — no LLM, no network — and safe to wire into a
|
|
17
|
+
consumer repo's CI. A green run is the "conformance badge" a repo earns;
|
|
18
|
+
a red run names the exact broken surface and its remedy.
|
|
19
|
+
|
|
20
|
+
## § 1 — What runs
|
|
21
|
+
|
|
22
|
+
Two legs, one exit code:
|
|
23
|
+
|
|
24
|
+
1. **Doctor under the `--ci` contract.** `agent-config doctor --ci` runs
|
|
25
|
+
the full drift scan plus every registered health check, emits a JSON
|
|
26
|
+
payload, and — unlike the default doctor run, which keys its exit off
|
|
27
|
+
drift only — folds **any check failure** into the exit code.
|
|
28
|
+
2. **Five conformance checks** (registered in
|
|
29
|
+
`src/scripts/_cli/cmd_conformance.ts`):
|
|
30
|
+
|
|
31
|
+
| id | proves | red when |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| `txlog-clean` | the last install completed | the install-log tail is an abandoned `abort` |
|
|
34
|
+
| `router-pointers` | the installed rule index is intact | any rule id or `routes_to` target does not resolve on disk |
|
|
35
|
+
| `hook-dispatcher` | hooks actually fire on this host | the dispatcher errors on a synthetic `session_start` / `stop` envelope |
|
|
36
|
+
| `lean-projection` | `lean_projection.mode` matches reality | projected non-kernel rules contradict the configured mode |
|
|
37
|
+
| `host-manifest` | `subagents.host_capabilities` is well-formed | unknown keys / non-boolean values (typo guard) |
|
|
38
|
+
|
|
39
|
+
Every check returns `ok` / `warn` / `fail` / `skipped` with a one-line
|
|
40
|
+
remedy. `skipped` means "not applicable here", never "silently passed".
|
|
41
|
+
|
|
42
|
+
## § 2 — Exit-code contract
|
|
43
|
+
|
|
44
|
+
| Exit | Meaning |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `0` | Green — no check failed, no drift. Warnings allowed. |
|
|
47
|
+
| `1` | Red — at least one check failed, or manifest drift present. |
|
|
48
|
+
| `2` | Environment unresolvable (no project root, corrupt setup). |
|
|
49
|
+
|
|
50
|
+
The same contract applies to `agent-config doctor --ci` standalone.
|
|
51
|
+
|
|
52
|
+
## § 3 — Report line (fleet aggregation)
|
|
53
|
+
|
|
54
|
+
Every run appends exactly one JSONL line — mirroring the install-txlog
|
|
55
|
+
entry shape — to `~/.event4u/agent-config/conformance-log.jsonl`
|
|
56
|
+
(override: `AGENT_CONFIG_CONFORMANCE_LOG`):
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{"ts":"2026-07-07T10:00:00.000Z","kind":"conformance","path":"/repo","sha256":null,"note":"5/5 ok; fails: none"}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Fleet installs (`--fleet`) aggregate these lines into their per-repo
|
|
63
|
+
summary; the line is append-only and never breaks the exit contract.
|
|
64
|
+
|
|
65
|
+
## § 4 — Pre-install twin: `init --validate-only`
|
|
66
|
+
|
|
67
|
+
`agent-config init --validate-only` is the **pre-install** gate — the
|
|
68
|
+
typed pre-flight suite (`src/install/preflight.ts`): target-root
|
|
69
|
+
permissions, free-disk floor, conflict detection, host-detection
|
|
70
|
+
sanity. Nothing is written. Exit `0` = clear, `1` = blocking finding,
|
|
71
|
+
`2` = no runner. `--dry-run` (full plan print) and `--minimal`
|
|
72
|
+
(settings-only bootstrap) are the existing siblings; `--validate-only`
|
|
73
|
+
completes the trio.
|
|
74
|
+
|
|
75
|
+
## § 5 — CI wiring (consumer)
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
- name: agent-config conformance
|
|
79
|
+
run: npx @event4u/agent-config conformance
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Green conformance in a consumer pipeline is the supported way to assert
|
|
83
|
+
"the OS is installed and firing here" — instead of hand-rolled greps
|
|
84
|
+
over projected files.
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"additionalProperties": false,
|
|
152
152
|
"properties": {
|
|
153
153
|
"path": { "type": "string", "minLength": 1, "description": "POSIX path relative to repo root." },
|
|
154
|
-
"category": { "type": "string", "enum": ["skill", "rule", "command", "template"] },
|
|
154
|
+
"category": { "type": "string", "enum": ["skill", "rule", "command", "template", "subagent"] },
|
|
155
155
|
"name": { "type": "string" },
|
|
156
156
|
"pack": { "$ref": "#/$defs/pack_id", "description": "capability-packs.md — canonical OWNER pack (ownership/budget unit). Orthogonal to `packs` (discovery tags); the owner need not appear in `packs`." },
|
|
157
157
|
"tier": { "type": "integer", "enum": [0, 1, 2], "description": "6.0.0-C — command-surface tier surfaced on `category: command` artefacts so the CLI discovery surface reads the manifest, not a parallel catalog. DEPRECATED back-compat alias of `visibility` since ADR-090; still dual-emitted (non-breaking) but announced for removal in the top-level `deprecations` block (road-to-tier-removal Phase 1 / ADR-092). Read `visibility`." },
|
|
@@ -160,8 +160,8 @@
|
|
|
160
160
|
"routes_to": { "type": "array", "items": { "type": "string" }, "description": "6.0.0-C — command routing metadata (skill/cluster-sub/command slugs the intent routes to)." },
|
|
161
161
|
"replaces": { "type": "array", "items": { "type": "string" }, "description": "6.0.0-C — command routing metadata (prior names/aliases this command absorbs; may be empty)." },
|
|
162
162
|
"slug": { "type": "string", "description": "6.0.0-D — canonical path-derived invocation slug (ADR-044; pack-stripped subpath + opt-in slug_prefix). Distinct from `name` (display, may still be colon for renames deferred to 6.1). The identity `commands ls --profile` matches on." },
|
|
163
|
-
"workspaces": { "type": "array", "items": { "$ref": "#/$defs/workspace_id" }, "
|
|
164
|
-
"packs": { "type": "array", "items": { "$ref": "#/$defs/pack_id" }, "
|
|
163
|
+
"workspaces": { "type": "array", "items": { "$ref": "#/$defs/workspace_id" }, "description": "Non-empty for skill/rule/command/template (enforced by build_discovery_manifest._classify). ADR-109 subagents legitimately carry [] — default-off, opt-in-by-name, never pack/workspace-scoped." },
|
|
164
|
+
"packs": { "type": "array", "items": { "$ref": "#/$defs/pack_id" }, "description": "Non-empty for skill/rule/command/template (enforced by build_discovery_manifest._classify). ADR-109 subagents legitimately carry [] — recommended for no pack; included only via include: [\"subagent:<name>\"]." },
|
|
165
165
|
"requires": {
|
|
166
166
|
"type": "array",
|
|
167
167
|
"items": { "$ref": "#/$defs/pack_id" },
|
|
@@ -218,7 +218,8 @@
|
|
|
218
218
|
"skill": { "type": "integer", "minimum": 0 },
|
|
219
219
|
"rule": { "type": "integer", "minimum": 0 },
|
|
220
220
|
"command": { "type": "integer", "minimum": 0 },
|
|
221
|
-
"template": { "type": "integer", "minimum": 0 }
|
|
221
|
+
"template": { "type": "integer", "minimum": 0 },
|
|
222
|
+
"subagent": { "type": "integer", "minimum": 0 }
|
|
222
223
|
},
|
|
223
224
|
"required": ["skill", "rule", "command", "template"]
|
|
224
225
|
},
|