@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,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 109
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-07-04
|
|
5
|
+
decision: subagent-v1-contract
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: road-to-final-state-and-market-readiness
|
|
9
|
+
type: standing
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-109 — The `subagent-v1` contract (new discovery category, default-off, static projection)
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-07-04 · maintainer decision after an AI-council debate
|
|
17
|
+
(claude-sonnet-4-5 + gpt-4o, 2 rounds). Track A keystone (A1) of
|
|
18
|
+
`road-to-final-state-and-market-readiness.md`.
|
|
19
|
+
|
|
20
|
+
## Context
|
|
21
|
+
|
|
22
|
+
Track A adds a **capability** layer: named subagent units that a host can invoke
|
|
23
|
+
as distinct, tool-scoped execution contexts (Claude Code's `.claude/agents/`).
|
|
24
|
+
The wedge — `production-validator` — already ships hand-written in that native
|
|
25
|
+
format. A1 turns that one hand-written file into a governed, projected artifact
|
|
26
|
+
type without breaching the no-runtime identity floor (no daemon, no auto-write,
|
|
27
|
+
no in-process swarm, no dispatch we enforce).
|
|
28
|
+
|
|
29
|
+
The council was asked to converge the contract shape. Both members agreed on the
|
|
30
|
+
category and the schema completeness; the residual dissent was a documentation
|
|
31
|
+
nuance (don't over-claim cross-host equivalence), folded in below.
|
|
32
|
+
|
|
33
|
+
## Decision
|
|
34
|
+
|
|
35
|
+
### 1. A new discovery category `subagent` (not `agent`, not a persona subtype)
|
|
36
|
+
|
|
37
|
+
- **Name `subagent`.** `agent` is overloaded (the host is "the agent"; this
|
|
38
|
+
package is "agent-config"). `subagent` = a subordinate, delegated, addressable
|
|
39
|
+
execution context.
|
|
40
|
+
- **A distinct category, not a persona subtype.** Personas are reference lenses
|
|
41
|
+
projected as *context* for a single session; a subagent is an *addressable
|
|
42
|
+
execution context* with its own tool manifest and model. Folding subagents into
|
|
43
|
+
personas would force every persona to grow a `tools` field it ignores, or add
|
|
44
|
+
subtype-specific projection logic (a parallel schema inside one category). The
|
|
45
|
+
categories today are `['skill', 'rule', 'command', 'template']`; `subagent`
|
|
46
|
+
becomes the 5th.
|
|
47
|
+
|
|
48
|
+
### 2. Source schema `subagent-v1` (governance fields REQUIRED, not optional)
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
schema_version: subagent-v1
|
|
52
|
+
name: <handle> # REQUIRED — matches filename stem, addressable
|
|
53
|
+
description: <one line> # REQUIRED — user-facing summary
|
|
54
|
+
model_tier: high|medium|lite|inherit # REQUIRED — reuses model_tier.ts; `inherit` is a
|
|
55
|
+
# documented passthrough sentinel (→ CC `model: inherit`),
|
|
56
|
+
# NOT a new tier→model mapping
|
|
57
|
+
tools: [Read, Grep, Glob, Bash, …] # REQUIRED — enum-validated against the CC tool set
|
|
58
|
+
trust: {level, confidence, human_review_required} # REQUIRED — mirrors the skill trust block (ADR-013)
|
|
59
|
+
lifecycle: active|deprecated|experimental|archived # REQUIRED — reuse the existing lifecycle enum
|
|
60
|
+
discovery:
|
|
61
|
+
visible: false # REQUIRED — default-off; linter enforces `false`
|
|
62
|
+
requires_capability: <cap> # REQUIRED — host-capability gate (e.g. claude_subagents)
|
|
63
|
+
categories: [<tag>, …] # OPTIONAL — pack-include tags
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Body: a free-form Markdown system prompt (like personas). Governance fields are
|
|
67
|
+
**required** — optional governance would create a two-tier system (governed
|
|
68
|
+
legacy artifacts vs. ungoverned subagents), which breaks trust filtering and the
|
|
69
|
+
"governed config layer" promise. The source carries governance metadata that
|
|
70
|
+
does **not** project to `.claude/agents/` (CC has no such fields) but does drive
|
|
71
|
+
discovery filtering, docs generation, and cross-host warnings.
|
|
72
|
+
|
|
73
|
+
**Banned fields (would imply runtime we do not have):** `auto_invoke_on`,
|
|
74
|
+
`max_iterations`, `timeout`, `cost_limit`, `memory_strategy`, `delegates_to`.
|
|
75
|
+
|
|
76
|
+
### 3. Native-Claude-Code translation
|
|
77
|
+
|
|
78
|
+
Projected file: `.claude/agents/<name>.md` with frontmatter `{name, description,
|
|
79
|
+
tools, model}` + the body. `model` is derived from `model_tier` by **reusing**
|
|
80
|
+
`src/scripts/_lib/model_tier.ts` (`TIER_TO_CLAUDE_MODEL`: high→opus, medium→sonnet,
|
|
81
|
+
lite→haiku); `model_tier: inherit` projects to `model: inherit` (passthrough).
|
|
82
|
+
No new mapping is invented (ADR-034/035 stands).
|
|
83
|
+
|
|
84
|
+
### 4. Cross-host degradation (host-agnostic, honestly limited)
|
|
85
|
+
|
|
86
|
+
Only Claude Code has native subagents. Elsewhere a subagent projects to a
|
|
87
|
+
**loadable context file**, gated by `requires_capability`:
|
|
88
|
+
|
|
89
|
+
| Host | Projection | Invocation |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| Claude Code | `.claude/agents/<name>.md` | `@<name>` (host-native) |
|
|
92
|
+
| Cursor / Windsurf / Cline | context file the host can load on intent | manual — **no `@`-dispatch** |
|
|
93
|
+
| Copilot / Gemini | skipped (no context surface) | — |
|
|
94
|
+
|
|
95
|
+
**Honest limitation (published, per the package's own honesty floor):** on
|
|
96
|
+
non-Claude-Code hosts the artifact degrades to *passive reference* — the system
|
|
97
|
+
prompt is available, but there is no host-native dispatch. This is **governance
|
|
98
|
+
parity, not feature parity**: trust / lifecycle / model-tier apply uniformly; the
|
|
99
|
+
automation does not. We do not fake dispatch (that would need a runtime we refuse
|
|
100
|
+
to add).
|
|
101
|
+
|
|
102
|
+
**Implementation (`generate_subagent_host_contexts`, condense.ts).** The non-CC
|
|
103
|
+
projection emits a passive-reference context file carrying the honest no-dispatch
|
|
104
|
+
banner + a governance block (trust level / lifecycle / model tier / tools) + the
|
|
105
|
+
body verbatim, reaper-safe per host:
|
|
106
|
+
|
|
107
|
+
- Cursor → `.cursor/subagents/<name>.md`; Windsurf → `.windsurf/subagents/<name>.md`
|
|
108
|
+
(dedicated subdir with its own reaper — no collision with the aggressive
|
|
109
|
+
`_clean_modern_dir` rule reapers).
|
|
110
|
+
- Cline → `.clinerules/<name>.subagent.md` (a real file; that dir's reaper only
|
|
111
|
+
unlinks symlinks, so it survives).
|
|
112
|
+
- Copilot / Gemini → skipped (no per-file context surface).
|
|
113
|
+
|
|
114
|
+
Council (claude-sonnet-4-5 + gpt-4o, 2026-07-05) converged on *project the file*
|
|
115
|
+
over honest-null: the body is ~95% reusable review discipline and ~5% dispatch
|
|
116
|
+
syntax, so an advanced user loads it on intent and applies the discipline
|
|
117
|
+
manually. No ADR amendment was needed — this realises the §4 table as written.
|
|
118
|
+
|
|
119
|
+
### 5. Default-off + non-dispatch (mechanical)
|
|
120
|
+
|
|
121
|
+
- **Default-off** = `discovery.visible: false` (required; linter enforces the
|
|
122
|
+
value is `false`). No glob pulls subagents; a pack opts in explicitly via
|
|
123
|
+
`include: ["subagent:<name>"]` or `include: ["subagent:category:<tag>"]`.
|
|
124
|
+
- **Non-dispatch is free.** We have no runtime; we only project a file. The host
|
|
125
|
+
(or the user via `@<name>`) decides invocation. No `auto_dispatch` flag exists
|
|
126
|
+
(it would imply `true` is possible — it is not).
|
|
127
|
+
|
|
128
|
+
### 6. Determinism / lint guarantees (part of A1)
|
|
129
|
+
|
|
130
|
+
- `tools` validated against the CC tool enum — build-time failure, never a broken
|
|
131
|
+
`.claude/agents/` YAML in the user's IDE.
|
|
132
|
+
- `model_tier` validated against `model_tier.ts` (+ the `inherit` sentinel).
|
|
133
|
+
- `name` globally unique within the `subagent` category (projection-path
|
|
134
|
+
collision guard), matching the filename stem.
|
|
135
|
+
- `discovery.visible` must be present and `false`.
|
|
136
|
+
|
|
137
|
+
### 7. Explicitly cut from v1
|
|
138
|
+
|
|
139
|
+
Multi-subagent orchestration (`delegates_to`), custom tool definitions, and
|
|
140
|
+
per-artifact `supported_hosts` lists (use `requires_capability` + a central
|
|
141
|
+
capability matrix instead). Revisit only in a `subagent-v2` if evidence demands.
|
|
142
|
+
|
|
143
|
+
## Consequences
|
|
144
|
+
|
|
145
|
+
- A 5th discovery category, one new schema, one source location (`src/subagents/`),
|
|
146
|
+
a translation step, and lint rules — all additive; existing categories untouched.
|
|
147
|
+
- `production-validator` becomes the first `src/` subagent unit and the single
|
|
148
|
+
source of truth for the wedge (the hand-written `docs/wedge/` copy is superseded
|
|
149
|
+
by projection).
|
|
150
|
+
- **Gate A still governs shipping:** a unit is default-off and ships as
|
|
151
|
+
recommended-opt-in **only** if the A3 eval (on `internal/bench/orchestration/`)
|
|
152
|
+
beats both baselines at acceptable token cost; otherwise it stays in `src/` as a
|
|
153
|
+
documented honest-null. This ADR defines the *contract*, not a promotion.
|
|
154
|
+
|
|
155
|
+
## Alternatives considered
|
|
156
|
+
|
|
157
|
+
- **Persona subtype** — rejected: semantic dilution + schema creep (tools field on
|
|
158
|
+
all personas, or subtype-specific projection).
|
|
159
|
+
- **Optional governance fields** — rejected: creates ungoverned-by-default
|
|
160
|
+
artifacts, breaking the trust model (council round 2, decisive).
|
|
161
|
+
- **CC-only (no degradation)** — rejected: violates host-agnostic positioning; a
|
|
162
|
+
CC-locked artifact is Claude Code config that wandered into the repo.
|
|
163
|
+
- **Faked dispatch on non-CC hosts** — rejected: runtime cosplay we cannot honor.
|
|
164
|
+
|
|
165
|
+
## Amendment 1 (2026-07-04) — discovery-manifest integration = Option B
|
|
166
|
+
|
|
167
|
+
The original decision left *how* subagents join the discovery manifest open. A
|
|
168
|
+
follow-up council (claude-sonnet-4-5 + gpt-4o, 2 rounds) surfaced the concrete
|
|
169
|
+
gap: the manifest's `_classify` requires `workspaces` / `packs` / `install`,
|
|
170
|
+
which this contract's minimal schema deliberately omits. Both members converged
|
|
171
|
+
on **Option B**:
|
|
172
|
+
|
|
173
|
+
- Add `subagent` to `_CATEGORY_VALUES` + `_CATEGORY_SCHEMA` + the `_iter_artefacts`
|
|
174
|
+
glob (`src/subagents/*.md`), and give `_classify` a **subagent branch** that
|
|
175
|
+
derives the manifest payload from the subagent-v1 fields:
|
|
176
|
+
`install: {default: false, removable: true}` (default-off), `packs: []`,
|
|
177
|
+
`workspaces: []`, plus `lifecycle` + `trust`.
|
|
178
|
+
- **`packs: []` is legitimate** — "recommended for no pack; included only via
|
|
179
|
+
`include: ["subagent:<name>"]`". The "every artefact belongs to ≥1 pack"
|
|
180
|
+
invariant becomes "every artefact **except subagents**". Verified safe: every
|
|
181
|
+
manifest consumer of `.packs` already guards against empty
|
|
182
|
+
(`check_condensation`, `install`, `condense`, `lint_trust_coherence`), and
|
|
183
|
+
`lint_artefact_frontmatter` does not scan `src/subagents/`.
|
|
184
|
+
- The `discovery-manifest.schema.json` `category` enum + `by_category` gain
|
|
185
|
+
`subagent`; the `workspaces`/`packs` `minItems: 1` is relaxed to a documented
|
|
186
|
+
note (non-emptiness for real categories stays enforced by `_classify`).
|
|
187
|
+
|
|
188
|
+
**Rejected:** Option A (extend the schema with workspaces/packs/install →
|
|
189
|
+
duplicate visibility source, de-facto ADR reversal) and Option C (keep subagents
|
|
190
|
+
out of the manifest + a parallel name-resolver → duplicate load/parse/validate
|
|
191
|
+
pipeline; LSP/tooling would need two discovery paths). "5th discovery category"
|
|
192
|
+
is manifest terminology, so Option B satisfies A1 literally.
|
|
193
|
+
|
|
194
|
+
The manifest (`dist/discovery/discovery-manifest.json`) is a **gitignored** build
|
|
195
|
+
artifact — CI rebuilds it fresh, so this is a generator + schema change, not a
|
|
196
|
+
committed-data change.
|
|
197
|
+
|
|
198
|
+
## Amendment 2 (2026-07-05) — consumer distribution = wedge-only (A2)
|
|
199
|
+
|
|
200
|
+
How subagents reach **consumers** (as opposed to the in-repo `.claude/agents/`
|
|
201
|
+
projection): a fresh council (**claude-fable-5 + gpt-4o**, 2 rounds) converged on
|
|
202
|
+
**wedge-only distribution**, reversing an earlier "synthesis" lean once the
|
|
203
|
+
implementation blast-radius evidence was in hand.
|
|
204
|
+
|
|
205
|
+
- **Decision:** subagents reach consumers ONLY via the wedge
|
|
206
|
+
(`docs/wedge/<name>/<name>.md`, shipped in npm `files[]` via `docs/`, installed
|
|
207
|
+
by a 30-second `curl` into `.claude/agents/`). They are **not** condensed to
|
|
208
|
+
`dist/`, **not** in the install bundle, and **not** in the shared source
|
|
209
|
+
enumeration (`_root_specs()` / `iter_all_sources` / `resolve_logical`).
|
|
210
|
+
- **Why not ship in dist (the rejected synthesis):** `condense.cleanup_stale()`
|
|
211
|
+
deletes any `dist/agent-src/` file that does not round-trip through
|
|
212
|
+
`resolve_logical()`, so shipping subagents in dist requires teaching the shared
|
|
213
|
+
`_root_specs()` about them — a cross-cutting change to ~10 consumers
|
|
214
|
+
(`build_discovery_manifest`, three frontmatter/pack linters, namespace checks,
|
|
215
|
+
…). Exclusion-based containment would produce a **shipped-but-ungoverned**
|
|
216
|
+
executable-prompt class — for a *governed* config layer, worse than the blast
|
|
217
|
+
radius it hides. Marginal consumer value at n=1 unit ≈ one fewer curl for an
|
|
218
|
+
opt-in, high-trust artifact — not worth it. Revisit only at n≥3 units **and** a
|
|
219
|
+
documented curl-distribution failure signal.
|
|
220
|
+
- **The wedge doc is now a projection of `src/subagents/`** (superseding the
|
|
221
|
+
hand-written copy), regenerated from `generate_claude_subagents()` so the two
|
|
222
|
+
channels cannot drift.
|
|
223
|
+
|
|
224
|
+
**A2 install-completeness gate** (`tests/scripts/subagent_distribution.test.ts`):
|
|
225
|
+
wedge↔src projection fidelity (no drift); coverage (every unit has a wedge doc);
|
|
226
|
+
and negative-wiring locks — `resolve_logical('subagents/…')` is null, no
|
|
227
|
+
`subagents/` path in `iter_all_sources`, the installer references no
|
|
228
|
+
`dist/agent-src/subagents`, and `dist/agent-src/subagents/` does not exist. No
|
|
229
|
+
byte-budget check (an arbitrary threshold on a system prompt is cargo-cult).
|
|
230
|
+
|
|
231
|
+
*(Council side-fix: `AnthropicClient` extracted only `content[0].text`, dropping
|
|
232
|
+
extended-thinking models' output — claude-fable-5 returned 3191 output tokens as
|
|
233
|
+
empty text. Fixed to join all text-type blocks.)*
|
|
234
|
+
|
|
235
|
+
## References
|
|
236
|
+
|
|
237
|
+
- Council debate 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds).
|
|
238
|
+
- Amendment-2 council 2026-07-05 (claude-fable-5 + gpt-4o, 2 rounds) — consumer distribution = wedge-only.
|
|
239
|
+
|
|
240
|
+
- Council debate 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds).
|
|
241
|
+
- Amendment-1 council 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds) — manifest integration = Option B.
|
|
242
|
+
- ADR-034 / ADR-035 — `model_tier` → native model mapping (reused, not replaced).
|
|
243
|
+
- `docs/contracts/subagent-boundary.md` — what a subagent owns vs. never owns.
|
|
244
|
+
- `src/skills/subagent-orchestration/SKILL.md` — the in-session orchestration modes.
|
|
245
|
+
- `road-to-final-state-and-market-readiness.md` — Track A (A1 keystone; A2 pipeline
|
|
246
|
+
proof; A3 eval gate).
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: 110
|
|
3
|
+
status: accepted
|
|
4
|
+
date: 2026-07-07
|
|
5
|
+
decision: discipline-profile-resolution-locus
|
|
6
|
+
supersedes: —
|
|
7
|
+
superseded_by: —
|
|
8
|
+
phase: road-to-discipline-profile-tiering
|
|
9
|
+
type: standing
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ADR-110 — `discipline_profile` resolves at runtime (agent-in-the-loop); projection stays configuration-independent
|
|
13
|
+
|
|
14
|
+
## Status
|
|
15
|
+
|
|
16
|
+
**Accepted** · 2026-07-07 · maintainer decision implementing two same-day
|
|
17
|
+
AI-council verdicts (claude-sonnet-4-5 + gpt-4o, 2-round debates each):
|
|
18
|
+
weak-host-lift tiering (`agents/settings/contexts/weak-host-lift-tiering-verdict.md`)
|
|
19
|
+
and token-program integration (`agents/settings/contexts/token-program-integration-verdict.md`).
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
The cost-factor sweep (`docs/benchmark.md § Cost-factor sweep`) established
|
|
24
|
+
that the package's weak-host discipline lift survives at ~3.3x tokens
|
|
25
|
+
(kernel + `downstream-changes`) with no significant residual from the full
|
|
26
|
+
~11.7x load, and that hosts differ: `claude-sonnet-4-6` is a measured NULL
|
|
27
|
+
(discipline ceiling). The councils converged on ONE runtime knob —
|
|
28
|
+
`discipline_profile: auto | off | essential | full` — with `auto` gating the
|
|
29
|
+
lift layer per host via an evidence-gated NULL-lift disable-list.
|
|
30
|
+
|
|
31
|
+
The open design question this ADR records: **where does `auto` resolve?**
|
|
32
|
+
Projection is static per project, but the host model is a *runtime* fact — a
|
|
33
|
+
project is opened by Haiku one session and Fable the next, across vendors
|
|
34
|
+
(Claude, GPT, Gemini, open-source). Candidates considered:
|
|
35
|
+
|
|
36
|
+
1. **Runtime resolution (agent-in-the-loop)** — the agent resolves the knob
|
|
37
|
+
at session start against `src/config/host-capabilities.yml`.
|
|
38
|
+
2. **Per-tool projection variants** — emit per-model projections; the host
|
|
39
|
+
picks one. Rejected: no host tool selects projections by model; N×M
|
|
40
|
+
projection matrix; violates the ADR-040 principle that trigger semantics
|
|
41
|
+
stay configuration-independent.
|
|
42
|
+
3. **Hook-based rewrite** — a session-start hook mutates the loaded surface.
|
|
43
|
+
Rejected: hooks are deny/warn-only in the cross-host v1 contract (no
|
|
44
|
+
transparent rewrite); Claude-only mechanisms are forbidden here.
|
|
45
|
+
|
|
46
|
+
## Decision
|
|
47
|
+
|
|
48
|
+
1. **`discipline_profile` is a runtime knob, resolved agent-in-the-loop** —
|
|
49
|
+
the same enforcement model as `provider-lifecycle-discipline` (the agent
|
|
50
|
+
reads a declared fact at run time and applies the obligation; CI guards
|
|
51
|
+
the facts, not the runtime). Resolution semantics live in ONE function,
|
|
52
|
+
`resolve_discipline_profile()`
|
|
53
|
+
(`src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts`):
|
|
54
|
+
explicit value wins → `auto` checks the session model id against
|
|
55
|
+
`host-capabilities.yml` (prefix match; measured-NULL → `off`, otherwise →
|
|
56
|
+
`essential` under `unknown_default: lift_enabled`) → absent key maps from
|
|
57
|
+
legacy `rule_loading_tier` (minimal→off, balanced→essential, full→full,
|
|
58
|
+
custom→custom) → both absent → `essential`.
|
|
59
|
+
2. **`host-capabilities.yml` is an evidence-gated disable-list, never a
|
|
60
|
+
taxonomy.** Entries name only models with a MEASURED null lift, each with
|
|
61
|
+
`measured:` provenance (date · pinned report · N) or an explicit
|
|
62
|
+
`extrapolated: true` maintainer flag. Unknown models resolve fail-safe to
|
|
63
|
+
the lift (`essential`). Vendor-neutral by construction: any model id can
|
|
64
|
+
be measured onto the list.
|
|
65
|
+
3. **Projection is unchanged by this ADR.** Bodies still project per
|
|
66
|
+
`lean_projection.mode` (eager-all today); the knob governs which
|
|
67
|
+
discipline tiers the agent honours at runtime — exactly the semantics the
|
|
68
|
+
legacy `rule_loading_tier` already had. The *physical* per-host token
|
|
69
|
+
saving lands when thin projection un-defers (as a sub-mechanism of
|
|
70
|
+
`essential`, re-swept, per the token-program-integration verdict), at
|
|
71
|
+
which point `lean_projection.mode` is absorbed. This keeps ADR-040's
|
|
72
|
+
guarantee: trigger semantics are configuration-independent.
|
|
73
|
+
4. **`discipline_profile` joins `MERGEABLE_KEYS`** (user-global cascade), as
|
|
74
|
+
the successor of the already-mergeable `rule_loading_tier`.
|
|
75
|
+
5. **Defaults are evidence-gated.** The template ships the key commented-out
|
|
76
|
+
(legacy mapping applies) until the P1 full-corpus + P2 non-Claude gates
|
|
77
|
+
pass (`agents/roadmaps/road-to-discipline-profile-tiering.md`); the flip
|
|
78
|
+
target is `auto`.
|
|
79
|
+
|
|
80
|
+
## Consequences
|
|
81
|
+
|
|
82
|
+
- One resolution function, unit-tested, shared by scripts and documented for
|
|
83
|
+
agents — no per-tool drift in mapping semantics.
|
|
84
|
+
- Strong hosts get an honest `off` the moment their null is *measured*, never
|
|
85
|
+
by vendor folklore; the disable-list only grows by measurement.
|
|
86
|
+
- Until thin projection lands, `auto`/`essential` on an eager-projection host
|
|
87
|
+
changes which rules the agent honours, not the loaded bytes — the cost
|
|
88
|
+
claims in the settings docs say so explicitly (the measured 3.3x applies
|
|
89
|
+
where loading is physical: sysprompt injection today, thin projection
|
|
90
|
+
later).
|
|
91
|
+
- The legacy `rule_loading_tier` stays readable indefinitely; the wizard and
|
|
92
|
+
presets migrate when the `balanced` cut is retired (roadmap Phase 2).
|
|
93
|
+
|
|
94
|
+
## Alternatives
|
|
95
|
+
|
|
96
|
+
Per-tool projection variants and hook rewrites (rejected above); a maintained
|
|
97
|
+
strong/weak model registry (explicitly rejected by the tiering council —
|
|
98
|
+
speculative, unmaintainable at model-release cadence).
|
|
99
|
+
|
|
100
|
+
## References
|
|
101
|
+
|
|
102
|
+
- `agents/settings/contexts/weak-host-lift-tiering-verdict.md`
|
|
103
|
+
- `agents/settings/contexts/token-program-integration-verdict.md`
|
|
104
|
+
- `docs/benchmark.md § Cost-factor sweep`
|
|
105
|
+
- ADR-040 (projection-time filtering), ADR-002 (kernel budget)
|
package/docs/decisions/INDEX.md
CHANGED
|
@@ -112,6 +112,8 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
|
|
|
112
112
|
| [ADR-106](ADR-106-recursive-verification-benchmark-gate.md) | Recursive Verification Benchmark Gate | accepted | 2026-06-23 | — |
|
|
113
113
|
| [ADR-107](ADR-107-legal-domain-pack-adoption.md) | Legal Domain Pack Adoption | accepted | 2026-06-24 | — |
|
|
114
114
|
| [ADR-108](ADR-108-open-source-forever-no-commercial-tier.md) | Open Source Forever No Commercial Tier | accepted | 2026-06-24 | — |
|
|
115
|
+
| [ADR-109](ADR-109-subagent-v1-contract.md) | Subagent V1 Contract | accepted | 2026-07-04 | — |
|
|
116
|
+
| [ADR-110](ADR-110-discipline-profile-resolution-locus.md) | Discipline Profile Resolution Locus | accepted | 2026-07-07 | — |
|
|
115
117
|
| [ADR-200](ADR-200-python-to-typescript-migration.md) | Python To Typescript Migration | accepted | 2026-06-11 | — |
|
|
116
118
|
|
|
117
119
|
## Unnumbered (legacy)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# awesome-list submission — DRAFT (not yet submitted)
|
|
2
|
+
|
|
3
|
+
> Market-readiness roadmap B5. Submission copy for the community
|
|
4
|
+
> "awesome-claude-code" / "awesome-claude-code-subagents" lists. **Draft only** —
|
|
5
|
+
> submitting is a human act. Every line here is ledger-consistent: no unbacked
|
|
6
|
+
> number, no invented third-party comparison. Lead with the wedge, not the OS.
|
|
7
|
+
|
|
8
|
+
## Where to submit
|
|
9
|
+
|
|
10
|
+
Candidate lists (verify each is active + read its CONTRIBUTING before opening a PR):
|
|
11
|
+
|
|
12
|
+
- `awesome-claude-code` (skills / plugins / tooling)
|
|
13
|
+
- `awesome-claude-code-subagents` (the wedge fits here — a single subagent)
|
|
14
|
+
|
|
15
|
+
Track status in [`registry-submissions.md`](registry-submissions.md).
|
|
16
|
+
|
|
17
|
+
## Entry A — the wedge (lead with this)
|
|
18
|
+
|
|
19
|
+
**production-validator** — a read-only Claude Code subagent that runs the last
|
|
20
|
+
gate before "done": it hunts mocks, stubs, and placeholders on the shipped
|
|
21
|
+
(non-test) path and demands real-system evidence, returning a `READY` / `NOT
|
|
22
|
+
READY` verdict with `file:line` citations. One `curl` into `.claude/agents/`, no
|
|
23
|
+
other install, no runtime.
|
|
24
|
+
|
|
25
|
+
- Link: `https://github.com/event4u-app/agent-config/tree/main/docs/wedge/production-validator`
|
|
26
|
+
- One-liner (list-row form): `production-validator — the last-gate-before-done subagent: no mock/stub survives on the shipped path; install in one curl.`
|
|
27
|
+
|
|
28
|
+
## Entry B — the suite (secondary)
|
|
29
|
+
|
|
30
|
+
**event4u/agent-config** — a governed, no-runtime configuration layer for AI
|
|
31
|
+
coding agents: audited skills, review personas, rules, and commands projected
|
|
32
|
+
into 7+ hosts (Claude Code, Cursor, Windsurf, Copilot, …). Its distinguishing
|
|
33
|
+
discipline: **every public claim is machine-checked** — the README binds each
|
|
34
|
+
claim to resolvable evidence in a Claims-Ledger, and a generated proof page lets
|
|
35
|
+
anyone reproduce the checks (`docs/proof.md`). Bring your own model.
|
|
36
|
+
|
|
37
|
+
- Link: `https://github.com/event4u-app/agent-config`
|
|
38
|
+
- One-liner: `agent-config — governed skills/rules/personas for AI coding agents, with machine-checked claims and a reproducible proof page. No runtime, bring your own model.`
|
|
39
|
+
|
|
40
|
+
## Guardrails for whoever submits this
|
|
41
|
+
|
|
42
|
+
- Do **not** add a performance number or a "better than X" comparison — the
|
|
43
|
+
suite's whole position is that claims are verifiable, so an unverifiable
|
|
44
|
+
submission line would be self-defeating.
|
|
45
|
+
- Keep the wedge first: it is the low-friction door. The suite is the follow-on.
|
|
46
|
+
- Re-check the target list is still maintained + follow its exact entry format.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Launch-story — DRAFT (not published)
|
|
2
|
+
|
|
3
|
+
> Market-readiness roadmap B5. A short narrative draft for a launch post
|
|
4
|
+
> (Show HN / dev.to / discussions), centered on the wedge + reproducible honesty.
|
|
5
|
+
> **Draft only** — not published; the final headline is gated on the B0
|
|
6
|
+
> positioning decision. Every claim must stay ledger-bound; no unbacked number,
|
|
7
|
+
> no third-party performance comparison.
|
|
8
|
+
|
|
9
|
+
## Angle
|
|
10
|
+
|
|
11
|
+
Not "another agent framework." The hook is **reproducible honesty**: an AI-agent
|
|
12
|
+
config layer where every public claim is machine-checked, and you can verify it
|
|
13
|
+
yourself in one command. Open with the wedge (something the reader installs in 30
|
|
14
|
+
seconds), then reveal the discipline behind it.
|
|
15
|
+
|
|
16
|
+
## Draft body
|
|
17
|
+
|
|
18
|
+
> Most AI-agent tooling asks you to trust a headline number. This one lets you
|
|
19
|
+
> **check it.**
|
|
20
|
+
>
|
|
21
|
+
> Start small — one file, 30 seconds:
|
|
22
|
+
>
|
|
23
|
+
> ```bash
|
|
24
|
+
> curl -fsSL https://raw.githubusercontent.com/event4u-app/agent-config/main/docs/wedge/production-validator/production-validator.md \
|
|
25
|
+
> -o .claude/agents/production-validator.md
|
|
26
|
+
> ```
|
|
27
|
+
>
|
|
28
|
+
> `@production-validator` is a read-only Claude Code subagent that runs the last
|
|
29
|
+
> gate before "done": it finds the mock/stub/placeholder still sitting on your
|
|
30
|
+
> shipped path and the "done" that was only ever validated against fakes.
|
|
31
|
+
>
|
|
32
|
+
> That one subagent is a slice of a larger governed layer — skills, review
|
|
33
|
+
> personas, rules, commands across 7+ hosts, no runtime. What makes it different
|
|
34
|
+
> isn't the size; it's that **the marketing is under CI too.** Every claim in the
|
|
35
|
+
> README binds to evidence in a ledger, a generated proof page renders those
|
|
36
|
+
> bindings plus the benchmark runs where the tool changed *nothing*, and a
|
|
37
|
+
> "verify it yourself" block reproduces all of it on a fresh checkout. If a claim
|
|
38
|
+
> ever loses its binding, the build goes red.
|
|
39
|
+
>
|
|
40
|
+
> Try the one file. If it earns its place, the rest is `npx @event4u/agent-config init`.
|
|
41
|
+
|
|
42
|
+
## Placeholders to resolve before publishing
|
|
43
|
+
|
|
44
|
+
- **H1 (decided, B0 · 2026-07-04):** *"Agent Config — every claim machine-checked,
|
|
45
|
+
including 'zero runtime'."* — adopted from the council's verifiability-as-frame
|
|
46
|
+
option. Use this headline for the post; do not substitute a provisional one.
|
|
47
|
+
- Confirm the raw `curl` URL resolves on `main` at publish time.
|
|
48
|
+
- Link the live proof page once a docs site (Starlight) hosts it, if built.
|
|
49
|
+
|
|
50
|
+
## Guardrails
|
|
51
|
+
|
|
52
|
+
- No performance claim or third-party comparison in the post.
|
|
53
|
+
- The "benchmark runs where the tool changed nothing" line points at real
|
|
54
|
+
published nulls (`docs/benchmark.md`) — keep it truthful, do not dramatize.
|
|
55
|
+
- Include the honest-provenance note: the skills/rules/personas are distilled
|
|
56
|
+
from real TypeScript/PHP production work; the governance is stack-agnostic but
|
|
57
|
+
domain heuristics are richest where forged — coverage elsewhere is promising,
|
|
58
|
+
not proven. (Roadmap B5.)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Four cycle-by-cycle traces of the engine commands — backend ticket,
|
|
4
4
|
free-form prompt, UI track, and a blocked path. Each walkthrough cites
|
|
5
5
|
a checked-in **golden transcript** under [`tests/golden/baseline/`](../tests/golden/baseline/);
|
|
6
|
-
the transcripts are regenerated by `
|
|
6
|
+
the transcripts are regenerated by `node node_modules/.bin/tsx tests/golden/capture.ts` and
|
|
7
7
|
diffed in CI, so the cycle counts and directive names below stay
|
|
8
8
|
in sync with the engine's actual behavior.
|
|
9
9
|
|
|
@@ -156,7 +156,7 @@ No work is committed, no auto-guess is taken.
|
|
|
156
156
|
## Reproducing these locally
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
|
|
159
|
+
node node_modules/.bin/tsx tests/golden/capture.ts --scenarios GT-1 GT-P1 GT-U2 GT-2
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
Each scenario writes a fresh `transcript.json`, `delivery-report.md`,
|
package/docs/getting-started.md
CHANGED
|
@@ -129,7 +129,7 @@ Your agent is now:
|
|
|
129
129
|
- **Respecting your codebase** — no conflicting patterns
|
|
130
130
|
- **Following standards** — consistent code quality
|
|
131
131
|
|
|
132
|
-
This is enforced automatically by
|
|
132
|
+
This is enforced automatically by 95 rules. No configuration needed.
|
|
133
133
|
|
|
134
134
|
---
|
|
135
135
|
|
|
@@ -169,7 +169,7 @@ Your agent now understands slash commands:
|
|
|
169
169
|
| `/quality-fix` | Run and fix all quality checks |
|
|
170
170
|
| `/chat-history import` | Pull a prior session into the current chat (resume) |
|
|
171
171
|
|
|
172
|
-
→ [Browse all
|
|
172
|
+
→ [Browse all 166 active commands](../dist/agent-src/commands/)
|
|
173
173
|
|
|
174
174
|
---
|
|
175
175
|
|
|
@@ -91,6 +91,21 @@ Hedge-language patterns:
|
|
|
91
91
|
- ❌ "probably" alone — name what's unverified
|
|
92
92
|
- ❌ "vermutlich" without hedge target <!-- md-language-check: ignore -->
|
|
93
93
|
|
|
94
|
+
### Volatile-fact freshness — which claims need a live source
|
|
95
|
+
|
|
96
|
+
Generalizes `direct-answers` Iron Law 2's git/PR live-state clause to any
|
|
97
|
+
research or knowledge claim, not just repo state.
|
|
98
|
+
|
|
99
|
+
| Class | Examples | Rule |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| **Fresh-lookup** | current role/status of a person or org, prices/versions/quotas, laws & regulatory policy, an unrecognized entity (tool, package, product), a binary event (release, deprecation, incident) | Never answer from model memory — search or cite a live source, every time. These change silently and staleness is invisible until wrong. |
|
|
102
|
+
| **Stable** | math/CS fundamentals, settled historical facts, language/framework basics pinned by the project's own lockfiles | Model knowledge is acceptable; no live lookup required. |
|
|
103
|
+
|
|
104
|
+
The line is whether the fact **could have changed since training** in a way
|
|
105
|
+
that matters for the claim. When in doubt, treat it as fresh-lookup — the
|
|
106
|
+
cost of one extra search is far lower than a stale claim stated with
|
|
107
|
+
confidence.
|
|
108
|
+
|
|
94
109
|
## Direct-answers — failure modes the user will call out
|
|
95
110
|
|
|
96
111
|
Companion to `direct-answers` § Failure modes. The rule lists the
|
|
@@ -107,6 +122,15 @@ correction pattern.
|
|
|
107
122
|
Acknowledge once, in the user's language, switch behavior, no
|
|
108
123
|
excuses (mirrors `language-and-tone` § slip handling).
|
|
109
124
|
|
|
125
|
+
### Bullet floor
|
|
126
|
+
|
|
127
|
+
Companion to `direct-answers` § Iron Law 3. Multi-step content earns
|
|
128
|
+
bullets; each bullet is a complete 1–2-sentence statement, never a
|
|
129
|
+
fragment masquerading as a list item ("Faster." / "Better UX." with no
|
|
130
|
+
subject or verb). A decline or refusal is never rendered as a bulleted
|
|
131
|
+
list of reasons — declines are short prose, one or two sentences, because
|
|
132
|
+
a bulleted refusal reads as a checklist to argue against rather than a
|
|
133
|
+
direct answer.
|
|
110
134
|
|
|
111
135
|
## No Cheap Questions — Iron Law 3 detail (paternalistic state options)
|
|
112
136
|
|
|
@@ -49,7 +49,7 @@ src/skills/<domain-skill>/data/
|
|
|
49
49
|
options, the human confirms. Directive integration is the exception,
|
|
50
50
|
not the goal ("directive engines everywhere" = orchestration envy).
|
|
51
51
|
- Validate before merge:
|
|
52
|
-
|
|
52
|
+
`./scripts-run src/skills/corpus-grounding/scripts/ground validate --manifest …`
|
|
53
53
|
plus a smoke query, plus an eval-fixture test under `tests/`.
|
|
54
54
|
|
|
55
55
|
## 3. Governance per shipped corpus (Step 9.8)
|
|
@@ -28,8 +28,8 @@ recorded decision (opted-in or declined).
|
|
|
28
28
|
Run the detector against the project root:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
./scripts-run src/scripts/_lib/linked_projects detect .
|
|
32
|
+
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
It returns config-attached siblings only (PhpStorm `.idea/modules.xml` +
|
|
@@ -42,11 +42,11 @@ before working around it or installing it.
|
|
|
42
42
|
|
|
43
43
|
```
|
|
44
44
|
> `yq` is not installed. It's the cleanest way to parse the ticket YAML
|
|
45
|
-
> in the Bash prototype — the alternative is
|
|
46
|
-
> which adds ~
|
|
45
|
+
> in the Bash prototype — the alternative is a JSON conversion step,
|
|
46
|
+
> which adds ~20ms to every run.
|
|
47
47
|
>
|
|
48
48
|
> 1. Install via `brew install yq` (recommended — one-time, stays on PATH)
|
|
49
|
-
> 2. Use
|
|
49
|
+
> 2. Use JSON conversion fallback — slower but no install needed
|
|
50
50
|
> 3. Drop YAML — convert fixtures to JSON, use `jq` only
|
|
51
51
|
> 4. Skip this path — I propose a different approach
|
|
52
52
|
```
|
|
@@ -39,7 +39,7 @@ User: ist der Fix fertig?
|
|
|
39
39
|
|
|
40
40
|
Agent: Frisch gerade ausgeführt:
|
|
41
41
|
|
|
42
|
-
$
|
|
42
|
+
$ node node_modules/.bin/vitest run tests/scripts/load_context.test.ts
|
|
43
43
|
============================== 7 passed in 0.07s ===============================
|
|
44
44
|
|
|
45
45
|
Exit code 0, 7/7 grün. Damit ist der Fix verifiziert.
|
|
@@ -74,7 +74,7 @@ User: also fertig zum committen?
|
|
|
74
74
|
|
|
75
75
|
Agent: Ich verifiziere kurz — Tests laufen jetzt:
|
|
76
76
|
|
|
77
|
-
$
|
|
77
|
+
$ node node_modules/.bin/vitest run -q
|
|
78
78
|
... 47 passed in 2.31s
|
|
79
79
|
|
|
80
80
|
Grün. Plus ein quality-tools-Lauf:
|
|
@@ -48,7 +48,7 @@ Use direct script invocations instead.
|
|
|
48
48
|
A subset of package scripts is exposed through a project-local CLI
|
|
49
49
|
wrapper `./agent-config` (written into the project root by the
|
|
50
50
|
installer, gitignored). Artefacts MUST prefer the CLI over raw
|
|
51
|
-
|
|
51
|
+
`./scripts-run src/scripts/…` paths for every command the CLI already covers.
|
|
52
52
|
|
|
53
53
|
## Translation tables — see mechanics
|
|
54
54
|
|
|
@@ -84,6 +84,25 @@ used once — inline it.
|
|
|
84
84
|
inference makes this redundant in PHP 8+, TS, Python 3.10+, Go,
|
|
85
85
|
Rust, etc. Annotate the parameter or return type instead.
|
|
86
86
|
|
|
87
|
+
## Comment discipline — state a constraint, not a narration
|
|
88
|
+
|
|
89
|
+
A code comment earns its place only by stating a constraint the code
|
|
90
|
+
itself can't show — a non-obvious invariant, a workaround for a specific
|
|
91
|
+
bug, a hidden dependency. It never narrates:
|
|
92
|
+
|
|
93
|
+
- **Provenance** — "added for the X feature", "per ticket #123". That
|
|
94
|
+
belongs in the commit message or PR description, not the code; it rots
|
|
95
|
+
the moment the feature or ticket is forgotten.
|
|
96
|
+
- **What the next line does** — well-named identifiers already say it.
|
|
97
|
+
A comment repeating the code is noise the reader skips past.
|
|
98
|
+
- **Why the change is correct** — that's a message to the reviewer, not
|
|
99
|
+
to the next person reading the file after it's merged.
|
|
100
|
+
|
|
101
|
+
Test: would removing the comment leave a future reader confused about a
|
|
102
|
+
non-obvious constraint? If yes, keep it — tightened to the constraint
|
|
103
|
+
alone. If the comment only restates what identifiers already convey, or
|
|
104
|
+
explains the change's history rather than the code's behavior, cut it.
|
|
105
|
+
|
|
87
106
|
## See also
|
|
88
107
|
|
|
89
108
|
- Language-specific anchors that link to this guideline:
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
"Review this UI mockup for AI-slop patterns",
|
|
6
6
|
"Create a feature card section with icons and descriptions",
|
|
7
7
|
"Generate a hero section with a big metric and supporting stats",
|
|
8
|
-
"The design looks generic — how do I make it more distinctive?"
|
|
8
|
+
"The design looks generic — how do I make it more distinctive?",
|
|
9
|
+
"Remove the rocket emojis from the hero buttons — it looks AI-generated"
|
|
9
10
|
],
|
|
10
11
|
"should_not_pull": [
|
|
11
12
|
"Fix the authentication bug in the login controller",
|