@event4u/agent-config 14.23.0 → 16.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +144 -152
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-handoff.md +8 -7
- package/dist/agent-src/commands/agents/init.md +1 -1
- package/dist/agent-src/commands/agents/user/accept.md +4 -4
- package/dist/agent-src/commands/agents/user/delete.md +2 -2
- package/dist/agent-src/commands/agents/user/init.md +3 -3
- package/dist/agent-src/commands/agents/user/review.md +3 -3
- package/dist/agent-src/commands/agents/user/show.md +3 -3
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +6 -6
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +2 -2
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/inbox.md +5 -5
- package/dist/agent-src/commands/analyze/incident.md +3 -3
- package/dist/agent-src/commands/analyze/near-miss.md +3 -3
- package/dist/agent-src/commands/analyze/postmortem.md +4 -4
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/analyze.md +2 -2
- package/dist/agent-src/commands/bug/fix.md +1 -1
- package/dist/agent-src/commands/bug/investigate.md +2 -2
- package/dist/agent-src/commands/cost/profile.md +3 -3
- package/dist/agent-src/commands/design.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +2 -2
- package/dist/agent-src/commands/ghostwriter/fetch.md +4 -4
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/show.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +9 -9
- package/dist/agent-src/commands/humanize.md +6 -6
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/judge/solo.md +1 -1
- package/dist/agent-src/commands/judge.md +1 -1
- package/dist/agent-src/commands/knowledge/cross-repo.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +2 -2
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/add.md +3 -3
- package/dist/agent-src/commands/memory/load.md +4 -4
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +4 -4
- package/dist/agent-src/commands/memory/propose.md +2 -2
- package/dist/agent-src/commands/mode.md +5 -5
- package/dist/agent-src/commands/post-as/ghostwriter.md +3 -3
- package/dist/agent-src/commands/post-as/me.md +7 -7
- package/dist/agent-src/commands/pr/create.md +1 -1
- package/dist/agent-src/commands/pr/merge.md +1 -1
- package/dist/agent-src/commands/profile/activate.md +1 -1
- package/dist/agent-src/commands/profile/show.md +1 -1
- package/dist/agent-src/commands/research/deep.md +2 -2
- package/dist/agent-src/commands/research/report.md +2 -2
- package/dist/agent-src/commands/review/changes.md +1 -1
- package/dist/agent-src/commands/review/routing.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +4 -3
- package/dist/agent-src/commands/roadmap/materialize.md +2 -2
- package/dist/agent-src/commands/roadmap/next.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +2 -2
- package/dist/agent-src/commands/security-audit-config.md +3 -3
- package/dist/agent-src/commands/skill/preview.md +1 -1
- package/dist/agent-src/commands/skills/discover.md +1 -1
- package/dist/agent-src/commands/sync/agent-settings.md +2 -2
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tests/create.md +1 -1
- package/dist/agent-src/commands/tests/e2e-heal.md +1 -1
- package/dist/agent-src/commands/tests/e2e-plan.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +6 -6
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -2
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +88 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +51 -1
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -1
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +1 -1
- package/dist/agent-src/contexts/execution/cheap-question-mechanics.md +1 -1
- package/dist/agent-src/contexts/execution/contract-decision-sheet.md +3 -3
- package/dist/agent-src/contexts/execution/mandated-lines.md +1 -1
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +1 -1
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -1
- package/dist/agent-src/contexts/execution/plan-confidence-gate.md +5 -5
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-routing.md +2 -2
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +3 -3
- package/dist/agent-src/contexts/execution/verification-mechanics.md +1 -1
- package/dist/agent-src/contexts/judges/persona-voice-rubric.md +2 -2
- package/dist/agent-src/guidelines/abstraction-thresholds.md +88 -0
- package/dist/agent-src/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +99 -0
- package/dist/agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +325 -0
- package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +222 -0
- package/dist/agent-src/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/asking-and-brevity-examples.md +198 -0
- package/dist/agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
- package/dist/agent-src/guidelines/agent-infra/carve-out-predicates.md +17 -0
- package/dist/agent-src/guidelines/agent-infra/comparison-matrix.md +179 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +165 -0
- package/dist/agent-src/guidelines/agent-infra/corpus-grounding-authoring.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/critical-thinking.md +156 -0
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
- package/dist/agent-src/guidelines/agent-infra/direct-answers-demos.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/domain-adoption-gates.md +112 -0
- package/dist/agent-src/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
- package/dist/agent-src/guidelines/agent-infra/domain-pack-architecture.md +56 -0
- package/dist/agent-src/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/emphasis-budget.md +45 -0
- package/dist/agent-src/guidelines/agent-infra/engineering-memory-data-format.md +210 -0
- package/dist/agent-src/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/dist/agent-src/guidelines/agent-infra/existence-question-verdicts.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/failure-signatures.md +70 -0
- package/dist/agent-src/guidelines/agent-infra/false-green.md +233 -0
- package/dist/agent-src/guidelines/agent-infra/first-principles.md +192 -0
- package/dist/agent-src/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +169 -0
- package/dist/agent-src/guidelines/agent-infra/gate-authoring.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/guarded-baseline.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/installed-tools-manifest.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/inversion-thinking.md +388 -0
- package/dist/agent-src/guidelines/agent-infra/ios-simulator-guide.md +378 -0
- package/dist/agent-src/guidelines/agent-infra/language-and-tone-examples.md +141 -0
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +317 -0
- package/dist/agent-src/guidelines/agent-infra/linked-projects-onboarding-gate.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/mcp-request-signing.md +197 -0
- package/dist/agent-src/guidelines/agent-infra/memory-access.md +149 -0
- package/dist/agent-src/guidelines/agent-infra/mental-models.md +314 -0
- package/dist/agent-src/guidelines/agent-infra/minimal-safe-diff-mechanics.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/missing-tool-handling.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +101 -0
- package/dist/agent-src/guidelines/agent-infra/naming.md +69 -0
- package/dist/agent-src/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
- package/dist/agent-src/guidelines/agent-infra/output-patterns.md +117 -0
- package/dist/agent-src/guidelines/agent-infra/recurring-criticism-mechanics.md +96 -0
- package/dist/agent-src/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
- package/dist/agent-src/guidelines/agent-infra/review-routing-data-format.md +143 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +274 -0
- package/dist/agent-src/guidelines/agent-infra/role-contracts.md +209 -0
- package/dist/agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/rule-type-governance.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/scqa-framework.md +526 -0
- package/dist/agent-src/guidelines/agent-infra/security-lint-containment.md +121 -0
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/simplicity-and-goal-demos.md +211 -0
- package/dist/agent-src/guidelines/agent-infra/six-hats.md +353 -0
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +229 -0
- package/dist/agent-src/guidelines/agent-infra/skill-quality-checklist.md +157 -0
- package/dist/agent-src/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/symptom-driven-harvest-loop.md +104 -0
- package/dist/agent-src/guidelines/agent-infra/systems-thinking.md +220 -0
- package/dist/agent-src/guidelines/agent-infra/tool-description-as-policy.md +35 -0
- package/dist/agent-src/guidelines/agent-infra/tool-integration.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
- package/dist/agent-src/guidelines/agent-infra/untrusted-input-spotlighting.md +166 -0
- package/dist/agent-src/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
- package/dist/agent-src/guidelines/augment-portability-patterns.md +70 -0
- package/dist/agent-src/guidelines/code-clarity.md +350 -0
- package/dist/agent-src/guidelines/component-oriented-and-oop-development.md +189 -0
- package/dist/agent-src/guidelines/cross-role-handoff.md +127 -0
- package/dist/agent-src/guidelines/design-antipatterns-triggers.json +18 -0
- package/dist/agent-src/guidelines/design-antipatterns.md +327 -0
- package/dist/agent-src/guidelines/design-asset-discipline.md +38 -0
- package/dist/agent-src/guidelines/design-canon.md +63 -0
- package/dist/agent-src/guidelines/design-fidelity-mechanics.md +293 -0
- package/dist/agent-src/guidelines/design-fidelity-routing.md +78 -0
- package/dist/agent-src/guidelines/design-handover-extraction.md +117 -0
- package/dist/agent-src/guidelines/design-modes.md +143 -0
- package/dist/agent-src/guidelines/design-reconciliation.md +172 -0
- package/dist/agent-src/guidelines/docs/readme-size-and-splitting.md +209 -0
- package/dist/agent-src/guidelines/e2e/playwright.md +363 -0
- package/dist/agent-src/guidelines/gtm-handoff.md +114 -0
- package/dist/agent-src/guidelines/monorepo-antipatterns.md +141 -0
- package/dist/agent-src/guidelines/php/api-design.md +115 -0
- package/dist/agent-src/guidelines/php/artisan-commands.md +81 -0
- package/dist/agent-src/guidelines/php/blade-ui.md +78 -0
- package/dist/agent-src/guidelines/php/controllers.md +90 -0
- package/dist/agent-src/guidelines/php/database.md +194 -0
- package/dist/agent-src/guidelines/php/eloquent.md +208 -0
- package/dist/agent-src/guidelines/php/flux.md +80 -0
- package/dist/agent-src/guidelines/php/general.md +207 -0
- package/dist/agent-src/guidelines/php/git.md +164 -0
- package/dist/agent-src/guidelines/php/jobs.md +111 -0
- package/dist/agent-src/guidelines/php/livewire.md +71 -0
- package/dist/agent-src/guidelines/php/logging.md +79 -0
- package/dist/agent-src/guidelines/php/naming.md +89 -0
- package/dist/agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
- package/dist/agent-src/guidelines/php/patterns/dtos.md +199 -0
- package/dist/agent-src/guidelines/php/patterns/events.md +67 -0
- package/dist/agent-src/guidelines/php/patterns/factory.md +53 -0
- package/dist/agent-src/guidelines/php/patterns/pipelines.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/policies.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/repositories.md +122 -0
- package/dist/agent-src/guidelines/php/patterns/service-layer.md +64 -0
- package/dist/agent-src/guidelines/php/patterns/strategy.md +247 -0
- package/dist/agent-src/guidelines/php/patterns.md +28 -0
- package/dist/agent-src/guidelines/php/performance.md +92 -0
- package/dist/agent-src/guidelines/php/php-coding-patterns.md +80 -0
- package/dist/agent-src/guidelines/php/resources.md +100 -0
- package/dist/agent-src/guidelines/php/security.md +110 -0
- package/dist/agent-src/guidelines/php/sql.md +97 -0
- package/dist/agent-src/guidelines/php/validations.md +119 -0
- package/dist/agent-src/guidelines/php/websocket.md +100 -0
- package/dist/agent-src/guidelines/prompt-templates.md +189 -0
- package/dist/agent-src/guidelines/redundancy-taxonomy.md +208 -0
- package/dist/agent-src/guidelines/wing4-handoff.md +127 -0
- package/dist/agent-src/personas/README.md +1 -1
- package/dist/agent-src/personas/_template-specialist/persona.md +1 -1
- package/dist/agent-src/personas/product-owner.md +1 -1
- package/dist/agent-src/rules/active-remediation.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/dist/agent-src/rules/ask-when-uncertain.md +2 -2
- package/dist/agent-src/rules/brand-source-of-truth.md +9 -7
- package/dist/agent-src/rules/code-comment-discipline.md +2 -2
- package/dist/agent-src/rules/code-provenance.md +1 -1
- package/dist/agent-src/rules/content-quoting-floor.md +1 -1
- package/dist/agent-src/rules/context-hygiene.md +5 -5
- package/dist/agent-src/rules/cross-source-consistency.md +1 -1
- package/dist/agent-src/rules/design-fidelity.md +36 -46
- package/dist/agent-src/rules/direct-answers.md +2 -2
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/icon-consistency.md +5 -1
- package/dist/agent-src/rules/improve-before-implement.md +1 -1
- package/dist/agent-src/rules/language-and-tone.md +3 -3
- package/dist/agent-src/rules/minimal-safe-diff.md +1 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +2 -2
- package/dist/agent-src/rules/recurring-criticism.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
- package/dist/agent-src/rules/role-mode-adherence.md +2 -2
- package/dist/agent-src/rules/security-sensitive-stop.md +1 -1
- package/dist/agent-src/rules/size-enforcement.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +2 -2
- package/dist/agent-src/rules/think-before-action.md +1 -1
- package/dist/agent-src/rules/token-efficiency.md +7 -5
- package/dist/agent-src/rules/ui-audit-gate.md +3 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -3
- package/dist/agent-src/rules/user-interaction.md +31 -30
- package/dist/agent-src/skills/activation-design/SKILL.md +2 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +5 -5
- package/dist/agent-src/skills/ai-council/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +24 -3
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
- package/dist/agent-src/skills/churn-prevention/SKILL.md +2 -2
- package/dist/agent-src/skills/code-refactoring/SKILL.md +3 -3
- package/dist/agent-src/skills/code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/comp-banding/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-moat-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -2
- package/dist/agent-src/skills/contracts-cognition/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +2 -2
- package/dist/agent-src/skills/customer-research/SKILL.md +2 -2
- package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
- package/dist/agent-src/skills/data-handling-judgment/SKILL.md +1 -1
- package/dist/agent-src/skills/deal-qualification-meddic/SKILL.md +2 -2
- package/dist/agent-src/skills/decision-record/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-review/SKILL.md +8 -8
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +22 -22
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +2 -2
- package/dist/agent-src/skills/design-review/SKILL.md +4 -4
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +17 -2
- package/dist/agent-src/skills/design-variations/SKILL.md +2 -2
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/dist/agent-src/skills/discovery-interview/SKILL.md +2 -2
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +3 -3
- package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +9 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +44 -1
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +2 -2
- package/dist/agent-src/skills/expansion-playbook/SKILL.md +2 -2
- package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/experiment-loop/references/protocol.md +1 -1
- package/dist/agent-src/skills/fe-design/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +1 -1
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +3 -3
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/forecast-accuracy/SKILL.md +2 -2
- package/dist/agent-src/skills/forecasting/SKILL.md +2 -2
- package/dist/agent-src/skills/fundraising-narrative/SKILL.md +2 -2
- package/dist/agent-src/skills/funnel-analysis/SKILL.md +2 -2
- package/dist/agent-src/skills/gtm-launch/SKILL.md +2 -2
- package/dist/agent-src/skills/hiring-loop-design/SKILL.md +1 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +5 -5
- package/dist/agent-src/skills/humanizer/SKILL.md +1 -1
- package/dist/agent-src/skills/humanizer/data/patterns.md +1 -1
- package/dist/agent-src/skills/iconography/SKILL.md +3 -3
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +3 -3
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +6 -6
- package/dist/agent-src/skills/livewire/SKILL.md +1 -1
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/mcp-builder/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +3 -3
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +2 -2
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/onboarding-design/SKILL.md +2 -2
- package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
- package/dist/agent-src/skills/one-on-one-cadence/SKILL.md +1 -1
- package/dist/agent-src/skills/org-design/SKILL.md +1 -1
- package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +3 -3
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/php-coder/SKILL.md +1 -1
- package/dist/agent-src/skills/pipeline-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -3
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/positioning-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/privacy-review/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +3 -3
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -2
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/release-comms/SKILL.md +2 -2
- package/dist/agent-src/skills/retention-loops/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/dist/agent-src/skills/roadmap-management/references/archival.md +1 -1
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/rule-writing/SKILL.md +6 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +2 -2
- package/dist/agent-src/skills/scenario-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/references/procedure.md +1 -1
- package/dist/agent-src/skills/skill-writing/references/section-patterns.md +3 -3
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +11 -5
- package/dist/agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +1 -1
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +28 -8
- package/dist/agent-src/skills/unit-economics-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/skills/vision-articulation/SKILL.md +1 -1
- package/dist/agent-src/skills/voc-extract/SKILL.md +2 -2
- package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +1 -1
- package/dist/agent-src/skills/workspace-link/SKILL.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +6 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +2 -3
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +2 -2
- package/dist/agent-src/user-types/_template/user-type.md +1 -1
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
- package/dist/cli-delegate/{chunk-IAI3XL43.js → chunk-3FKR64R5.js} +22 -6
- package/dist/cli-delegate/{chunk-J3RFNKG4.js → chunk-55ACLDUE.js} +2 -2
- package/dist/cli-delegate/{chunk-PKOBQADP.js → chunk-57PN4GYJ.js} +1 -1
- package/dist/cli-delegate/{chunk-KCNTUSPI.js → chunk-AK6HODNQ.js} +4 -4
- package/dist/cli-delegate/{chunk-2FTMENJL.js → chunk-GYC3VRYN.js} +1 -1
- package/dist/cli-delegate/{chunk-LWTYTX6F.js → chunk-H32DGUJH.js} +15 -84
- package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
- package/dist/cli-delegate/chunk-NUHLI2RX.js +80 -0
- package/dist/cli-delegate/{chunk-TYSY33MD.js → chunk-QJWAUMJW.js} +12 -2
- package/dist/cli-delegate/{chunk-2KKXJW25.js → chunk-S3VFXMTM.js} +1 -1
- package/dist/cli-delegate/{chunk-I6RHFQEG.js → chunk-YUM5KURG.js} +17 -1
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +834 -275
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_explain.js +5 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +6 -6
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +3 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +3 -3
- package/dist/cli-delegate/cmd_route_explain.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +3 -3
- package/dist/cli-delegate/cmd_settings_get.js +15 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +54 -11
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +25 -78
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +5 -7
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +4 -6
- package/dist/hooks/dispatch.js +9684 -9304
- package/dist/install/install.mjs +36 -8
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2147 -1470
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +73 -0
- package/dist/scripts/_lib/agent_src.js +20 -0
- package/dist/scripts/_lib/guidelines_lane.js +158 -0
- package/dist/scripts/_lib/installed_lock.js +1 -1
- package/dist/scripts/condense.js +2 -5
- package/dist/server/io/yamlIO.js +175 -17
- package/dist/server/schemas/settings.js +18 -4
- package/dist/shared/settingsSurface.js +6 -1
- package/docs/contracts/settings-classes.md +18 -9
- package/docs/guidelines/abstraction-thresholds.md +35 -0
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +3 -3
- package/docs/guidelines/agent-infra/false-green.md +2 -2
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +1 -1
- package/docs/guidelines/design-fidelity-mechanics.md +4 -0
- package/docs/guidelines/design-fidelity-routing.md +78 -0
- package/docs/guidelines/design-reconciliation.md +172 -0
- package/docs/guidelines/gtm-handoff.md +2 -2
- package/docs/guidelines/wing4-handoff.md +2 -2
- package/package.json +7 -3
- package/src/config/agent-settings.template.yml +55 -8
- package/src/config/ci-local-parity.yml +34 -0
- package/src/config/continuity-surface.json +11 -32
- package/src/config/gate-coverage.yml +31 -8
- package/src/config/gate-reachability-exemptions.json +1 -0
- package/src/config/gate-violation-baselines.json +3 -3
- package/src/config/hook-token-budget.json +1 -1
- package/src/config/host-injection-effect.json +2 -2
- package/src/config/pack-size-budget.json +55 -4
- package/src/config/platform-anchor.json +47 -0
- package/src/config/preamble-payload-budget.json +12 -8
- package/src/config/preamble-payload-exceptions.json +28 -0
- package/src/config/publish-surface.json +4 -2
- package/src/config/ratification-policy.json +7 -0
- package/src/config/rule-stub-ceilings.json +16 -9
- package/src/scripts/_cli/cmd_settings_get.ts +22 -7
- package/src/scripts/_dispatch.bash +3 -1
- package/src/scripts/_lib/agent_settings.ts +85 -0
- package/src/scripts/_lib/agent_src.ts +21 -0
- package/src/scripts/_lib/artifact_maturity.ts +242 -0
- package/src/scripts/_lib/base_ref_payload.ts +315 -0
- package/src/scripts/_lib/conformance_report.ts +403 -0
- package/src/scripts/_lib/continuity_writer.ts +72 -13
- package/src/scripts/_lib/design_system_import.ts +20 -0
- package/src/scripts/_lib/design_tolerance.ts +281 -0
- package/src/scripts/_lib/dropped_decision.ts +142 -0
- package/src/scripts/_lib/guidelines_lane.ts +164 -0
- package/src/scripts/_lib/installed_lock.ts +1 -1
- package/src/scripts/_lib/measured_payload_ceiling.ts +424 -0
- package/src/scripts/_lib/obligation_frequency.ts +2 -3
- package/src/scripts/_lib/payload_catalogue_completeness.ts +211 -0
- package/src/scripts/_lib/platform_anchor.ts +1053 -0
- package/src/scripts/_lib/ratification_artifact.ts +278 -0
- package/src/scripts/_lib/release_findings_ingest.ts +324 -0
- package/src/scripts/_lib/release_tag_dispatch.ts +63 -0
- package/src/scripts/_lib/review_baseline.ts +254 -0
- package/src/scripts/_lib/review_skipped_record.ts +61 -1
- package/src/scripts/_lib/security_lint.ts +23 -2
- package/src/scripts/_lib/self_repair.ts +21 -0
- package/src/scripts/_lib/session_index_trust.ts +42 -1
- package/src/scripts/_lib/standing_bound_ratchet.ts +267 -88
- package/src/scripts/_lib/tolerance_shadow.ts +177 -0
- package/src/scripts/_lib/turn_end_refusals.ts +51 -4
- package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
- package/src/scripts/autonomy_friction_traffic.ts +379 -0
- package/src/scripts/check_beta_review_markers.ts +35 -4
- package/src/scripts/check_finding_dispositions.ts +167 -16
- package/src/scripts/check_held_object_arrivals.ts +381 -0
- package/src/scripts/check_kernel_edit_ratified.ts +462 -0
- package/src/scripts/check_loss_class_declared.ts +793 -46
- package/src/scripts/check_platform_anchor.ts +390 -0
- package/src/scripts/check_preamble_payload_budget.ts +672 -107
- package/src/scripts/check_projected_rule_routes.ts +395 -0
- package/src/scripts/check_release_published.ts +1 -1
- package/src/scripts/check_reply_consistency.ts +86 -17
- package/src/scripts/code_graph/cli.ts +6 -0
- package/src/scripts/condense.ts +2 -6
- package/src/scripts/generate_host_cost_table.ts +354 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +74 -30
- package/src/scripts/hooks/block_kernel_rule_writes.ts +12 -2
- package/src/scripts/hooks/category_a.ts +1 -1
- package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/end_review_nudge_hook.ts +101 -21
- package/src/scripts/hooks/review_baseline_hook.ts +130 -0
- package/src/scripts/hooks/session_eol_hook.ts +68 -154
- package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +232 -14
- package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
- package/src/scripts/hooks_doctor.ts +4 -1
- package/src/scripts/hot_context_hook.ts +41 -401
- package/src/scripts/install.ts +1 -1
- package/src/scripts/interruption_report.ts +8 -2
- package/src/scripts/janitor.ts +8 -1
- package/src/scripts/lint_evidence_artifacts.ts +1 -0
- package/src/scripts/lint_knowledge_scale.ts +0 -26
- package/src/scripts/measure_turn_end_gate.ts +302 -5
- package/src/scripts/memory_lookup.ts +9 -9
- package/src/scripts/release.ts +52 -64
- package/src/scripts/release_drill.ts +193 -14
- package/src/scripts/release_env.ts +1 -1
- package/src/scripts/release_publication.ts +1 -1
- package/src/scripts/report_held_object_arrivals.ts +456 -0
- package/src/scripts/report_standing_payload_by_host.ts +7 -7
- package/src/scripts/session_memory_index.ts +5 -0
- package/src/scripts/sync_agent_settings.ts +394 -12
- package/src/server/io/yamlIO.ts +175 -17
- package/src/server/schemas/settings.ts +25 -5
- package/src/shared/settingsSurface.ts +13 -2
- package/src/templates/compact-instructions.md +8 -3
- package/dist/agent-src/commands/chat-history/import.md +0 -170
- package/dist/agent-src/commands/chat-history.md +0 -63
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Design reconciliation — artifact values against a project's own tokens
|
|
2
|
+
|
|
3
|
+
Split out of [`design-fidelity-mechanics`](design-fidelity-mechanics.md) on
|
|
4
|
+
2026-09-09, and the reason is a real constraint rather than tidiness: that file
|
|
5
|
+
crossed `check_depth_budget`'s 16,000-character per-file ceiling, which is a
|
|
6
|
+
shrink-only growth ratchet. The subject splits cleanly — that guideline answers
|
|
7
|
+
*how do I port an artifact faithfully*, and this one answers *what happens when
|
|
8
|
+
the artifact's values meet a project that already has its own*. The two rules
|
|
9
|
+
that arbitrate between an artifact and a brand both point here, and neither can
|
|
10
|
+
hold the arbitration itself: a consumer receives `design-fidelity`
|
|
11
|
+
(`engineering-base`) or `brand-source-of-truth` (`brand`), rarely both.
|
|
12
|
+
|
|
13
|
+
## Tolerance — why the mechanism ships and the number does not
|
|
14
|
+
|
|
15
|
+
`design-fidelity`'s `strict` mode says EVERY visible deviation needs explicit
|
|
16
|
+
confirmation. The owner directive that motivated
|
|
17
|
+
`road-to-design-intent-conformance` asks for an unprompted approximation within
|
|
18
|
+
a tolerance. Read literally, those contradict — and the contradiction is real
|
|
19
|
+
rather than a wording problem: `grep -cE 'reconcil|tolerance|approximat|nearest'`
|
|
20
|
+
over the rule and this guideline returned 0 / 0 before this section existed.
|
|
21
|
+
|
|
22
|
+
**The re-frame, and its condition.** A value inside a configured tolerance stops
|
|
23
|
+
being an unconfirmed deviation and becomes a **reported reconciliation**: the
|
|
24
|
+
project's token is written, and the distance from the artifact's own value is
|
|
25
|
+
reported on the row. Everything outside the tolerance stays confirmation-bound,
|
|
26
|
+
and structure — layout, control types, component set, ordering, breakpoints —
|
|
27
|
+
is never in scope at any setting, because it is not a value question.
|
|
28
|
+
|
|
29
|
+
**The condition is load-bearing, not a hedge.** `design.approximation` ships
|
|
30
|
+
`enabled: false` with `tolerance.color` and `tolerance.length` both `null`, so
|
|
31
|
+
in a default install the paragraph above describes nothing that happens: every
|
|
32
|
+
deviation stays confirmation-bound exactly as before, and no consumer default
|
|
33
|
+
moved. `hard-floor` disables the mechanism outright, so the strictest mode
|
|
34
|
+
cannot be loosened by configuring a tolerance under it.
|
|
35
|
+
|
|
36
|
+
**Why no threshold ships**, decided by the AI council on 2026-09-09 (anthropic +
|
|
37
|
+
openai, 2/2), and worth re-reading before adding one: *a number in a config
|
|
38
|
+
file, even flagged unmeasured, shapes behavior and creates path dependency.*
|
|
39
|
+
Zero of seven design-to-code benchmarks in the evidence set score token
|
|
40
|
+
conformance, so a shipped threshold would be a guess wearing a default's
|
|
41
|
+
authority. Two proposals were examined and rejected on their merits rather than
|
|
42
|
+
on caution — `±5 per RGB channel`, because RGB channel distance is not
|
|
43
|
+
perceptually uniform and "likely imperceptible" does not follow from it; and
|
|
44
|
+
`max(1px, 2%)`, because it grows steadily more permissive at large dimensions
|
|
45
|
+
with no evidence that this is wanted. GitHub Primer's ±1px spacing widening is
|
|
46
|
+
the one real measurement available and is recorded as an externally observed
|
|
47
|
+
**candidate**, not adopted.
|
|
48
|
+
|
|
49
|
+
**The metric IS fixed, and that is the half that could be settled.** Colour
|
|
50
|
+
distance is OKLab ΔEOK, length distance is absolute CSS pixels
|
|
51
|
+
(`src/scripts/_lib/design_tolerance.ts`). Fixing the method mattered before
|
|
52
|
+
fixing any number: RGB Euclidean, ΔE LAB, CIEDE2000 and OKLab/ΔEOK give
|
|
53
|
+
different numbers for the same pair, so a threshold quoted without its metric
|
|
54
|
+
is not a threshold.
|
|
55
|
+
|
|
56
|
+
**The distance is reported on every row regardless.** Preserved values carry it
|
|
57
|
+
too. That is what makes the deferred half decidable: a window over rows that
|
|
58
|
+
report distances yields a distribution, where a window over rows reporting only
|
|
59
|
+
"kept" or "changed" yields nothing to read a threshold off.
|
|
60
|
+
|
|
61
|
+
## Artifact versus brand
|
|
62
|
+
|
|
63
|
+
Both `design-fidelity` and `brand-source-of-truth` point here rather than
|
|
64
|
+
carrying this arbitration themselves, and the pointers are **operative**: apply
|
|
65
|
+
this section before reconciling a value, not as a reference to consult if
|
|
66
|
+
curious. Two standing rules cannot each hold half of an arbitration between
|
|
67
|
+
them — a consumer receives one of them without the other, because
|
|
68
|
+
`design-fidelity` ships in `engineering-base` and `brand-source-of-truth` in
|
|
69
|
+
`brand` — so the split has to be somewhere both can reach.
|
|
70
|
+
|
|
71
|
+
**Values reconcile onto the brand token, with the distance reported.** Colour,
|
|
72
|
+
type and spacing are the axes where the field converges, unanimously and at
|
|
73
|
+
error severity, across the design systems surveyed. Where a registered brand
|
|
74
|
+
token exists, it wins, and the artifact's own value is not silently absorbed:
|
|
75
|
+
the distance between the two is reported on the same row, so what changed is
|
|
76
|
+
visible before it is cumulative.
|
|
77
|
+
|
|
78
|
+
**Structure is the artifact's, and is never adjusted to suit a token.** Layout,
|
|
79
|
+
control types, component set, ordering, breakpoints and behavior are not value
|
|
80
|
+
questions at all, and no brand token is evidence about any of them. A structural
|
|
81
|
+
deviation stays what `design-fidelity`'s Iron Law says it is: a proposal needing
|
|
82
|
+
explicit confirmation.
|
|
83
|
+
|
|
84
|
+
**A conflict is surfaced, never merged.** Where the artifact and the brand
|
|
85
|
+
genuinely disagree on something that is not resolvable by the two rules above —
|
|
86
|
+
an artifact whose type scale contradicts the brand's, say — the agent surfaces
|
|
87
|
+
both readings as a numbered choice and builds neither until the human picks.
|
|
88
|
+
Averaging them produces a third design nobody approved.
|
|
89
|
+
|
|
90
|
+
**Where no brand exists**, there is nothing to reconcile onto: the artifact's
|
|
91
|
+
values are the values, and `brand-source-of-truth`'s own "when NOT to fire"
|
|
92
|
+
already says so. The reconciliation above is a rule about *two* sources, not a
|
|
93
|
+
license to normalize one.
|
|
94
|
+
|
|
95
|
+
**What this section does NOT decide** is whether an in-tolerance value may be
|
|
96
|
+
reconciled *without asking*. That needs a tolerance to exist and a default to be
|
|
97
|
+
chosen, and both are recorded as open decisions rather than answered here —
|
|
98
|
+
`design.tolerance.*` ships empty and the approximation ships disabled.
|
|
99
|
+
|
|
100
|
+
## Icons on a provided artifact
|
|
101
|
+
|
|
102
|
+
`icon-consistency` owns the icon axis and, until 2026-09-09, carried **zero**
|
|
103
|
+
occurrences of `artifact` / `artefact` / `provided` — so no surface in the
|
|
104
|
+
package handled a handed-over artifact's icons at all. Its "ad-hoc inline SVGs
|
|
105
|
+
alongside a chosen set" clause is exactly the shape a faithful port produces,
|
|
106
|
+
which made a port read as a violation of the rule it was obeying.
|
|
107
|
+
|
|
108
|
+
**The fix is a new rung, not a re-ordering.** Rung 1 of the iconography ladder
|
|
109
|
+
is the project's brand token, and the artifact does **not** outrank it. What the
|
|
110
|
+
carve-out changes is which findings are violations, not which source wins.
|
|
111
|
+
|
|
112
|
+
**The obligation that survives is traceability, not conformity.** An
|
|
113
|
+
artifact-sourced icon is legitimate when it traces to the artifact and that
|
|
114
|
+
provenance is stated. An inline `<svg>` that traces to neither the adopted icon
|
|
115
|
+
set nor a named artifact is untraceable, and still fires.
|
|
116
|
+
|
|
117
|
+
**A swap is still a deviation.** Replacing the artifact's icon with the
|
|
118
|
+
project's nearest equivalent is a substitution of a control the artifact
|
|
119
|
+
specified, so it needs the same explicit confirmation as any other deviation
|
|
120
|
+
under `design-fidelity`'s Iron Law. The carve-out permits keeping the
|
|
121
|
+
artifact's icon; it never permits changing it silently.
|
|
122
|
+
|
|
123
|
+
**What is deliberately NOT here:** an assertion that an artifact's icons are
|
|
124
|
+
*reconcilable* onto the project's set by default. `tailwind-engineer` carried
|
|
125
|
+
that claim in the opposite direction — icons "stay 1:1 with the artifact", with
|
|
126
|
+
no citation — and it was deleted rather than inverted. The contrary evidence and
|
|
127
|
+
the two conditions that would reverse the silence are recorded in
|
|
128
|
+
`road-to-design-intent-conformance` § The icon evidence.
|
|
129
|
+
|
|
130
|
+
## The 2026-07-31 lock, and why its own reopening condition cannot discharge it
|
|
131
|
+
|
|
132
|
+
A council lock of 2026-07-31 names its reopening condition as *"a measured run
|
|
133
|
+
showing the polish loop still edits away from a provided artifact"*. No such run
|
|
134
|
+
exists, which makes running one look like the cheap way to close or reopen it.
|
|
135
|
+
**It is not, and this paragraph exists so the next reader meets the argument
|
|
136
|
+
instead of re-deriving it and spending the run.**
|
|
137
|
+
|
|
138
|
+
The mechanism is **structural, not probabilistic**. Three facts, each checkable:
|
|
139
|
+
`polish.ts:135-167` drops findings flagged `artifact_covered: true`;
|
|
140
|
+
`src/skills/design-tokens/SKILL.md` wired `token_violation` findings into the
|
|
141
|
+
same loop **without** setting that flag; and the paragraph above states that an
|
|
142
|
+
unmarked finding is treated as actionable. Those compose into a path that edits
|
|
143
|
+
away from the artifact whenever a token-violation finding fires on an
|
|
144
|
+
artifact-derived value. Nothing about that path is stochastic.
|
|
145
|
+
|
|
146
|
+
So a green measured run would establish *"this did not trigger in the sample"*
|
|
147
|
+
— it could never establish *"this cannot trigger"*, which is the claim the lock
|
|
148
|
+
would need to be discharged in the useful direction. A run whose only possible
|
|
149
|
+
informative outcome is the one nobody wants is not a measurement, it is a
|
|
150
|
+
lottery ticket, and it costs a real run to buy.
|
|
151
|
+
|
|
152
|
+
**The structural fix is the discharge, and it is `blocker:
|
|
153
|
+
findings-actionability-default`** on `road-to-design-intent-conformance`.
|
|
154
|
+
Resolved by the AI council on 2026-09-09 to option (b): set `artifact_covered`
|
|
155
|
+
on the `token_violation` path, changing no package-wide default. Option (a) —
|
|
156
|
+
inverting the default so a finding is non-actionable unless escalated — was
|
|
157
|
+
rejected on blast radius: it changes the meaning of every existing unmarked
|
|
158
|
+
finding across the package to fix one known producer.
|
|
159
|
+
|
|
160
|
+
**No measurement is scheduled against this lock.** If a later reader wants to
|
|
161
|
+
reopen it, the thing to change is the falsifiability of its condition, not the
|
|
162
|
+
sample size.
|
|
163
|
+
|
|
164
|
+
## See also
|
|
165
|
+
|
|
166
|
+
- [`design-fidelity-mechanics`](design-fidelity-mechanics.md) — the porting
|
|
167
|
+
half, including § Provided-artifact precedence and the `artifact_covered`
|
|
168
|
+
flag whose default the lock section above turns on.
|
|
169
|
+
- [`design-fidelity-routing`](design-fidelity-routing.md) — how the rule's own
|
|
170
|
+
trigger set is authored, split out in the same change.
|
|
171
|
+
- `src/scripts/_lib/design_tolerance.ts` — the metric and the shipped-null
|
|
172
|
+
thresholds this file argues for.
|
|
@@ -12,7 +12,7 @@ the typed artifact looks like**, and **who owns the failure mode
|
|
|
12
12
|
when the chain breaks**.
|
|
13
13
|
|
|
14
14
|
Cycle / dangling / tier-mismatch enforcement is not duplicated here —
|
|
15
|
-
`
|
|
15
|
+
The `lint-handoffs` task (per cross-wing-handoff § 4) is the mechanical
|
|
16
16
|
gate.
|
|
17
17
|
|
|
18
18
|
## Chain 1 — brand → channel
|
|
@@ -101,7 +101,7 @@ the contract (O2 owns the interface; H10 only consumes it).
|
|
|
101
101
|
## See also
|
|
102
102
|
|
|
103
103
|
- [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md)
|
|
104
|
-
— typed-handoff mechanical contract; `
|
|
104
|
+
— typed-handoff mechanical contract; the `lint-handoffs` task enforces
|
|
105
105
|
cycles, dangling references, and tier mismatches over the graph.
|
|
106
106
|
- [`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md)
|
|
107
107
|
— when to hand off at all, how to phrase the routing, L4 / C8
|
|
@@ -15,7 +15,7 @@ artifact looks like**, and **who owns the failure mode when the
|
|
|
15
15
|
chain breaks**.
|
|
16
16
|
|
|
17
17
|
Cycle / dangling / tier-mismatch enforcement is not duplicated here —
|
|
18
|
-
`
|
|
18
|
+
The `lint-handoffs` task (per cross-wing-handoff § 4) is the mechanical
|
|
19
19
|
gate.
|
|
20
20
|
|
|
21
21
|
## Chain 1 — money → strategy
|
|
@@ -112,7 +112,7 @@ consumes it).
|
|
|
112
112
|
## See also
|
|
113
113
|
|
|
114
114
|
- [`docs/contracts/cross-wing-handoff.md`](../contracts/cross-wing-handoff.md)
|
|
115
|
-
— typed-handoff mechanical contract; `
|
|
115
|
+
— typed-handoff mechanical contract; the `lint-handoffs` task enforces
|
|
116
116
|
cycles, dangling references, and tier mismatches over the graph.
|
|
117
117
|
- [`docs/guidelines/cross-role-handoff.md`](cross-role-handoff.md)
|
|
118
118
|
— when to hand off at all, how to phrase the routing, L4 / C8
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event4u/agent-config",
|
|
3
3
|
"mcpName": "io.github.event4u-app/agent-config",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "16.0.0",
|
|
5
5
|
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) — every claim machine-checked, including the counts in these badges.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"private": false,
|
|
@@ -67,7 +67,9 @@
|
|
|
67
67
|
"!src/**/*.test.ts",
|
|
68
68
|
"!src/**/*.spec.ts",
|
|
69
69
|
"!dist/agent-src/skills/**/evals/**",
|
|
70
|
-
"!dist/**/*.map"
|
|
70
|
+
"!dist/**/*.map",
|
|
71
|
+
"!**/__pycache__/**",
|
|
72
|
+
"!**/*.pyc"
|
|
71
73
|
],
|
|
72
74
|
"bin": {
|
|
73
75
|
"agent-config": "dist/cli/agent-config.js"
|
|
@@ -80,6 +82,8 @@
|
|
|
80
82
|
"build:install-bundle": "esbuild src/scripts/install.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/install/install.mjs --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);\"",
|
|
81
83
|
"build:hooks": "esbuild src/scripts/hooks/dispatch_entry.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/hooks/dispatch.js --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url); const __acPath = require('node:path'); const __acFs = require('node:fs'); const __acUrl = require('node:url'); const __acReal = (p) => { try { return __acFs.realpathSync(p); } catch { return p; } }; const __acSelf = __acReal(__acUrl.fileURLToPath(import.meta.url)); if (process.argv[1] !== undefined && __acReal(__acPath.resolve(process.argv[1])) === __acSelf) { globalThis.__AC_HOOKS_BUNDLE_DIRECT = true; process.argv = [process.argv[0], __acSelf + '.__direct__', ...process.argv.slice(2)]; }\"",
|
|
82
84
|
"build:mcp-bundle": "esbuild src/scripts/mcp_server/__main__.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/mcp/server.mjs --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url); const __acPath = require('node:path'); const __acFs = require('node:fs'); const __acUrl = require('node:url'); const __acReal = (p) => { try { return __acFs.realpathSync(p); } catch { return p; } }; const __acSelf = __acReal(__acUrl.fileURLToPath(import.meta.url)); if (process.argv[1] !== undefined && __acReal(__acPath.resolve(process.argv[1])) === __acSelf) { globalThis.__AC_MCP_BUNDLE_DIRECT = true; process.argv = [process.argv[0], __acSelf + '.__direct__', ...process.argv.slice(2)]; }\"",
|
|
85
|
+
"clean:cli-delegate": "rm -rf dist/cli-delegate",
|
|
86
|
+
"build:delegates": "npm run clean:cli-delegate && npm run build:cli-delegate && npm run build:agent-src-delegate && npm run build:delegate-aux",
|
|
83
87
|
"build:cli-delegate": "esbuild src/scripts/_cli/cmd_*.ts --bundle --splitting --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --define:__AGENT_CONFIG_CLI_DELEGATE__=true --outdir=dist/cli-delegate --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);\"",
|
|
84
88
|
"build:agent-src-delegate": "esbuild src/agent-src/scripts/*.ts --bundle --splitting --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --define:__AGENT_CONFIG_CLI_DELEGATE__=true --outdir=dist/cli-delegate --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);\"",
|
|
85
89
|
"build:delegate-aux": "esbuild src/scripts/_lib/pin_resolver.ts src/scripts/check_update_banner.ts --bundle --splitting --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --define:__AGENT_CONFIG_CLI_DELEGATE__=true --outbase=src/scripts --outdir=dist/cli-delegate --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);\"",
|
|
@@ -89,7 +93,7 @@
|
|
|
89
93
|
"build:discovery": "./scripts-run src/scripts/build_discovery_manifest --write --strict",
|
|
90
94
|
"build:mcp-manifest": "./scripts-run src/scripts/build_mcp_registry_manifest --write --strict",
|
|
91
95
|
"build:mcp-catalog": "./scripts-run src/scripts/build_mcp_catalog --write --strict",
|
|
92
|
-
"build": "npm run build:cli && npm run build:install-bundle && npm run build:hooks && npm run build:mcp-bundle && npm run build:
|
|
96
|
+
"build": "npm run build:cli && npm run build:install-bundle && npm run build:hooks && npm run build:mcp-bundle && npm run build:delegates && npm run build:ui",
|
|
93
97
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.scripts.json",
|
|
94
98
|
"lint:ts": "eslint --cache --max-warnings 0 'src/**/*.ts'",
|
|
95
99
|
"test:ts": "vitest run",
|
|
@@ -738,6 +738,43 @@ design:
|
|
|
738
738
|
# autonomy setting, roadmap, or standing instruction lifts it).
|
|
739
739
|
fidelity_mode: strict
|
|
740
740
|
|
|
741
|
+
# Value reconciliation between a provided artifact and the project's own
|
|
742
|
+
# tokens. MEASUREMENT ships; BEHAVIOUR does not — AI council 2026-09-09
|
|
743
|
+
# (anthropic + openai, 2/2) on `blocker: approximation-tolerance`.
|
|
744
|
+
#
|
|
745
|
+
# The distance from the artifact's value to the nearest project token is
|
|
746
|
+
# computed and REPORTED on every value row regardless of these settings.
|
|
747
|
+
# What these decide is whether the agent may act on it without asking.
|
|
748
|
+
approximation:
|
|
749
|
+
# false ships. Turning it on lets a value INSIDE tolerance be replaced by
|
|
750
|
+
# the project's token without a per-value confirmation; outside tolerance
|
|
751
|
+
# the artifact's value is preserved either way. Shipping this enabled is a
|
|
752
|
+
# consumer-facing default flip and is owner-reserved — recorded in
|
|
753
|
+
# agents/roadmaps/stubs/road-to-frontend-power-default-flip.md, not decided
|
|
754
|
+
# here. `design.fidelity_mode: hard-floor` overrides it to off.
|
|
755
|
+
enabled: false
|
|
756
|
+
|
|
757
|
+
# Distance metric: OKLab ΔEOK for colour, absolute CSS pixels for length.
|
|
758
|
+
# The METHOD is fixed; the THRESHOLDS are deliberately absent.
|
|
759
|
+
#
|
|
760
|
+
# Both ship `null`, and `null` means "preserve and report", never
|
|
761
|
+
# "reconcile freely". No number is set because none is supported: zero of
|
|
762
|
+
# seven design-to-code benchmarks in the evidence set score token
|
|
763
|
+
# conformance, and a number in a config file — even flagged unmeasured —
|
|
764
|
+
# shapes behaviour and acquires the authority of a default.
|
|
765
|
+
#
|
|
766
|
+
# The one real measurement in the evidence set is GitHub Primer's spacing
|
|
767
|
+
# plugin, which widens each token's accepted set by ±1px and autofixes. It
|
|
768
|
+
# is recorded as an externally observed CANDIDATE in
|
|
769
|
+
# src/scripts/_lib/design_tolerance.ts and is not the shipped value.
|
|
770
|
+
tolerance:
|
|
771
|
+
# ΔEOK. Not an RGB channel delta — RGB distance is not perceptually
|
|
772
|
+
# uniform, which is why a `±5 per channel` proposal was rejected.
|
|
773
|
+
color: null
|
|
774
|
+
# CSS pixels, absolute. Not `max(1px, 2%)`, which grows more permissive
|
|
775
|
+
# at large dimensions with no evidence that this is wanted.
|
|
776
|
+
length: null
|
|
777
|
+
|
|
741
778
|
# --- Cross-source consistency ---
|
|
742
779
|
#
|
|
743
780
|
# When the agent plans, refines, roadmaps, or implements from multiple
|
|
@@ -1119,20 +1156,30 @@ continuity:
|
|
|
1119
1156
|
# (road-to-continuity-writer-activation Phase 1). When `on`, the session-eol
|
|
1120
1157
|
# concern writes the `continuity_record` capsule variant on Stop for a
|
|
1121
1158
|
# SUBSTANTIVE session that has claimed a roadmap — every field computed from
|
|
1122
|
-
# on-disk state, no model spend, nothing shelled out.
|
|
1123
|
-
#
|
|
1124
|
-
#
|
|
1125
|
-
# evidence
|
|
1126
|
-
#
|
|
1127
|
-
#
|
|
1128
|
-
|
|
1159
|
+
# on-disk state, no model spend, nothing shelled out.
|
|
1160
|
+
#
|
|
1161
|
+
# Default ON since 2026-09-10 (step 3.2). It shipped `off` while the parity
|
|
1162
|
+
# evidence was outstanding; steps 1.1 and 1.3 discharged that, and an AI
|
|
1163
|
+
# council of 2026-09-10 (2 seats, convergent, under the owner's written
|
|
1164
|
+
# delegation) authorised the flip so the normal path has an automatic writer
|
|
1165
|
+
# instead of a human remembering a command. The same verdict REFUSED to
|
|
1166
|
+
# retire `agent-config session:recycle`, which stays as an explicit
|
|
1167
|
+
# affordance — the automatic writer is not a strict superset of it (see
|
|
1168
|
+
# `on` below).
|
|
1169
|
+
#
|
|
1170
|
+
# Existing installs are unaffected: a value already written here keeps it.
|
|
1171
|
+
# on = (default) write the record at session end. Not written for a
|
|
1172
|
+
# session that claimed no roadmap, and the `git status` anchors
|
|
1173
|
+
# `session:recycle` collects are omitted.
|
|
1174
|
+
# off = no automatic record; only `session:recycle` writes one.
|
|
1175
|
+
auto_record: "on"
|
|
1129
1176
|
|
|
1130
1177
|
# Deterministic run-checkpoint production at session end
|
|
1131
1178
|
# (road-to-continuity-writer-activation Phase 1.4). When `on`, a session
|
|
1132
1179
|
# above the recycle threshold and inside a running roadmap contract leaves
|
|
1133
1180
|
# agents/runtime/state/checkpoints/<run>.json behind, so a killed session can
|
|
1134
1181
|
# be resumed by the watcher rather than by bookkeeping. Default ON: this is
|
|
1135
|
-
# the
|
|
1182
|
+
# the behavior the tree already had, and the switch exists so an operator can
|
|
1136
1183
|
# disable checkpointing WITHOUT disabling continuity writing or the recycle
|
|
1137
1184
|
# advisory.
|
|
1138
1185
|
# on = (default) write the checkpoint.
|
|
@@ -275,6 +275,40 @@ ci_only:
|
|
|
275
275
|
# worth remote enforcement, OR it should simply be added to a workflow. Prefer
|
|
276
276
|
# adding it: a local-only gate is the direction that let real defects merge.
|
|
277
277
|
local_only:
|
|
278
|
+
- id: check_platform_anchor
|
|
279
|
+
class: token-scope-unavailable
|
|
280
|
+
reason: >
|
|
281
|
+
Reads `repos/{owner}/{repo}/rulesets` to check that the forge actually
|
|
282
|
+
requires what the ratification mechanism claims it does — an active branch
|
|
283
|
+
ruleset over the default branch, an approving review, last-push approval,
|
|
284
|
+
deletion and force-push blocked, strict required checks, and no
|
|
285
|
+
unconditional bypass actor.
|
|
286
|
+
|
|
287
|
+
Local-only because the permission does not exist, not because remote
|
|
288
|
+
enforcement is unwanted — which is the opposite of the usual reason on this
|
|
289
|
+
list and is why the class says so. The rulesets endpoint needs the
|
|
290
|
+
repository `administration` scope, and a workflow `GITHUB_TOKEN` cannot be
|
|
291
|
+
granted it: `administration: read` was tried in `rule-backstops.yml` on
|
|
292
|
+
2026-09-10 and actionlint refused it as an *"unknown permission scope"*,
|
|
293
|
+
listing the sixteen that do exist. None grants it.
|
|
294
|
+
|
|
295
|
+
Wiring it anyway would be worse than leaving it here. The gate fails closed
|
|
296
|
+
by design — a platform state it cannot read is `UNVERIFIABLE`, which is a
|
|
297
|
+
failure — so an unauthorised token would red every kernel and governance
|
|
298
|
+
pull request for a reason unrelated to the platform's actual state. The
|
|
299
|
+
three escapes were each rejected on the reasoning of the council that
|
|
300
|
+
commissioned the gate: `continue-on-error` makes it advisory, skipping when
|
|
301
|
+
unauthenticated makes it fail open, and putting it in `Sync + Generate Tools
|
|
302
|
+
Consistency` would freeze merges repository-wide on any red, since that
|
|
303
|
+
job's context is the ruleset's single required status check.
|
|
304
|
+
|
|
305
|
+
What moves it off this list: a PAT in a repository secret carrying
|
|
306
|
+
`administration: read`, then the workflow step. That is a human action and
|
|
307
|
+
is recorded as the open half of blocker `ratification-platform-anchor` in
|
|
308
|
+
`agents/roadmaps/road-to-typed-grants-that-persist.md`. Until then the gate
|
|
309
|
+
runs in `taskfiles/ci-fast.yml` — a real pre-push control, and not a CI one,
|
|
310
|
+
which is the honest description of its reach.
|
|
311
|
+
|
|
278
312
|
- id: check_host_loadability_reach
|
|
279
313
|
class: developer-machine-scoped
|
|
280
314
|
reason: >
|
|
@@ -43,13 +43,6 @@
|
|
|
43
43
|
"locus": "src/scripts/_lib/session_eol.ts:55",
|
|
44
44
|
"reason": "The writer`s own bookkeeping, not a record a successor reads. It holds counters and advisory stamps used across Stops within one session; nothing restores a session from it."
|
|
45
45
|
},
|
|
46
|
-
{
|
|
47
|
-
"id": "manual:run-session-recycle-before-clear",
|
|
48
|
-
"axis": "normal_path_manual_actions",
|
|
49
|
-
"disposition": "counted",
|
|
50
|
-
"locus": "src/scripts/hooks/session_eol_hook.ts:258",
|
|
51
|
-
"reason": "The advisory the stop slot injects past the recycle threshold instructs a human to run `agent-config session:recycle`, wait for the absolute path it prints, and only then `/clear`. That is a manual action on the normal path, and it exists precisely because no automatic writer does. It is what step 3.1 removes the need for."
|
|
52
|
-
},
|
|
53
46
|
{
|
|
54
47
|
"id": ".dispatcher",
|
|
55
48
|
"axis": "persistent_continuity_artefacts",
|
|
@@ -125,7 +118,7 @@
|
|
|
125
118
|
"axis": "persistent_continuity_artefacts",
|
|
126
119
|
"disposition": "counted",
|
|
127
120
|
"locus": "src/scripts/hooks/session_eol_hook.ts:31",
|
|
128
|
-
"reason": "Machine-readable fill level plus threshold state, overwritten every Stop. Written for later verification of whether the session crossed the recycle threshold. AUTHORISED FOR RETIREMENT and NOT RETIRED \u2014 the authorisation (AI council 2026-09-08 D1, resting on producer/no-consumer evidence) was obtained on incomplete facts. There is no consumer in code, but `agents/roadmaps/later/road-to-cost-parity-2-state-aware-dispatch.md` is a live parked roadmap whose open steps 1.1 and 1.4c read this file as a planned input, and 1.4c is specifically about bounding its staleness. The same council's own qualification anticipated this: \"no consumer in the tree\" proves no in-repository consumer, and a planned consumer inside the tree is a stronger objection than an external one because it is checkable. Retiring it is a decision for that roadmap's owner, not a side effect of this one. Blocker: `context-fill-retirement-has-a-parked-consumer
|
|
121
|
+
"reason": "Machine-readable fill level plus threshold state, overwritten every Stop. Written for later verification of whether the session crossed the recycle threshold. AUTHORISED FOR RETIREMENT and NOT RETIRED \u2014 the authorisation (AI council 2026-09-08 D1, resting on producer/no-consumer evidence) was obtained on incomplete facts. There is no consumer in code, but `agents/roadmaps/later/road-to-cost-parity-2-state-aware-dispatch.md` is a live parked roadmap whose open steps 1.1 and 1.4c read this file as a planned input, and 1.4c is specifically about bounding its staleness. The same council's own qualification anticipated this: \"no consumer in the tree\" proves no in-repository consumer, and a planned consumer inside the tree is a stronger objection than an external one because it is checkable. Retiring it is a decision for that roadmap's owner, not a side effect of this one. RETENTION DECIDED 2026-09-09 and this row is that decision, not a note about a pending one. An AI council under the owner's written delegation for the drain run (2 seats, anthropic + openai, quorum 2/2) resolved `context-fill-retirement-has-a-parked-consumer` as RETAIN: the file and `writeContextFill` stay, and this row stays `counted`. The named consumer is `agents/roadmaps/later/road-to-cost-parity-2-state-aware-dispatch.md` steps 1.1 and 1.4c. The alternative was re-anchoring those steps, which means editing a roadmap that is parked precisely because nobody is working on it \u2014 one small per-session write is the cheaper side of that trade. The artefact-axis reduction 5 to 4 is NOT claimed. Revisit when that roadmap is resumed, cancelled, or re-anchored onto another source. Blocker: `context-fill-retirement-has-a-parked-consumer`, resolved."
|
|
129
122
|
},
|
|
130
123
|
{
|
|
131
124
|
"id": "context-hygiene.json",
|
|
@@ -204,13 +197,6 @@
|
|
|
204
197
|
"locus": "src/scripts/_cli/cmd_handoff.ts:9",
|
|
205
198
|
"reason": "A second, prose-shaped session handoff written by `agent-config handoff` and injected once at the next `session_start`. Same job as the record, different format and different lifecycle \u2014 a competing mental model, which is what the count exists to expose."
|
|
206
199
|
},
|
|
207
|
-
{
|
|
208
|
-
"id": "hot-context.md",
|
|
209
|
-
"axis": "persistent_continuity_artefacts",
|
|
210
|
-
"disposition": "counted",
|
|
211
|
-
"locus": "src/scripts/hot_context_hook.ts:11",
|
|
212
|
-
"reason": "A working-memory cache rebuilt on stop/session_end/pre_compact and restored at session_start. Persisted state written for context restoration, so the behavioural rule counts it whatever it is called."
|
|
213
|
-
},
|
|
214
200
|
{
|
|
215
201
|
"id": "injection-census.jsonl",
|
|
216
202
|
"axis": "persistent_continuity_artefacts",
|
|
@@ -265,7 +251,7 @@
|
|
|
265
251
|
"axis": "persistent_continuity_artefacts",
|
|
266
252
|
"disposition": "counted",
|
|
267
253
|
"locus": "src/scripts/_cli/cmd_session_recycle.ts:9",
|
|
268
|
-
"reason": "The continuity record itself: written by `session:recycle
|
|
254
|
+
"reason": "The continuity record itself: written by `session:recycle` and, since 2026-09-10, by the automatic writer in the session-eol concern (`src/scripts/_lib/continuity_writer.ts` via `writeContinuityRecord`), resolved per session by `resolveContinuityRecord`, consumed once at `session_start` by the handoff-context concern. This is the artefact the whole roadmap is collapsing the others INTO \u2014 the surviving `1`. The locus stays on the command because the command still writes it; the second producer is named here so a reader does not conclude from the locus that a human is still the only source."
|
|
269
255
|
},
|
|
270
256
|
{
|
|
271
257
|
"id": "render",
|
|
@@ -288,6 +274,13 @@
|
|
|
288
274
|
"locus": "src/scripts/review_axis_report.ts:209",
|
|
289
275
|
"reason": "Review-axis report state. Analysis output."
|
|
290
276
|
},
|
|
277
|
+
{
|
|
278
|
+
"id": "review-baseline",
|
|
279
|
+
"axis": "persistent_continuity_artefacts",
|
|
280
|
+
"disposition": "excluded",
|
|
281
|
+
"locus": "src/scripts/_lib/review_baseline.ts:68",
|
|
282
|
+
"reason": "Start-of-session mutation baseline the end-review nudge subtracts. Two numbers and a timestamp, written once at session_start and read at stop; it carries no continuity across sessions and by construction cannot hold a path, a diff or a file body."
|
|
283
|
+
},
|
|
291
284
|
{
|
|
292
285
|
"id": "routing-telemetry.jsonl",
|
|
293
286
|
"axis": "persistent_continuity_artefacts",
|
|
@@ -482,14 +475,7 @@
|
|
|
482
475
|
"axis": "public_continuity_commands",
|
|
483
476
|
"disposition": "counted",
|
|
484
477
|
"locus": "src/cli/registry.ts:73",
|
|
485
|
-
"reason": "
|
|
486
|
-
},
|
|
487
|
-
{
|
|
488
|
-
"id": "command:chat-history",
|
|
489
|
-
"axis": "session_resume_pickers",
|
|
490
|
-
"disposition": "excluded",
|
|
491
|
-
"locus": "src/domains/meta/chat-history/command.md:3",
|
|
492
|
-
"reason": "The orchestrator shell that routes to the import picker; it presents no picker of its own. Counting both would double-count one surface. It is retired together with the picker it routes to, so the row disappears with it."
|
|
478
|
+
"reason": "RETAINED as an explicit affordance, and no longer the normal path. It was the ONLY writer of the continuity record until step 3.2 of road-to-continuity-writer-activation armed the automatic writer by default (2026-09-10), which is why this row's earlier reason called it REQUIRED. The same AI council (2 seats, convergent, under the owner's written delegation) REFUSED to retire the verb: removing a public callable contract is a different act from removing a manual step, and the automatic writer is not a strict superset of this command \u2014 it leaves no record for a session that claimed no roadmap, and it omits the `git status` anchor fields the command collects. So it stays COUNTED on this axis rather than excluded: it is a public continuity command that exists, the axis counts what exists, and the target of 0 is therefore not reachable while this decision stands. Recorded here rather than argued away, on the same terms as the `verb:handoff` exclusion note above."
|
|
493
479
|
},
|
|
494
480
|
{
|
|
495
481
|
"id": "picker:agent-handoff",
|
|
@@ -498,19 +484,12 @@
|
|
|
498
484
|
"locus": "src/domains/meta/agent-handoff/command.md:41",
|
|
499
485
|
"reason": "A numbered-options block asking a human which prior session to resume. It is a picker by construction, and the parent`s target of 0 pickers is in tension with its preservation of this command \u2014 recorded here so the tension is visible in the count rather than argued away."
|
|
500
486
|
},
|
|
501
|
-
{
|
|
502
|
-
"id": "picker:chat-history-import",
|
|
503
|
-
"axis": "session_resume_pickers",
|
|
504
|
-
"disposition": "counted",
|
|
505
|
-
"locus": "src/domains/meta/chat-history/import/command.md:77",
|
|
506
|
-
"reason": "A numbered-table session picker plus a resume offer \u2014 a second, competing answer to \"which prior session do I continue from\". On the owner-authorised retirement set of 2026-09-06."
|
|
507
|
-
},
|
|
508
487
|
{
|
|
509
488
|
"id": "session-index-latch",
|
|
510
489
|
"axis": "persistent_continuity_artefacts",
|
|
511
490
|
"disposition": "excluded",
|
|
512
491
|
"locus": "src/scripts/_lib/session_index_trust.ts:251",
|
|
513
|
-
"reason": "A duplicate-suppression latch, not a record. It holds one file per session under agents/runtime/state/session-index-latch/ whose entire content is a claim timestamp, and nothing reads it to restore anything
|
|
492
|
+
"reason": "A duplicate-suppression latch, not a record. It holds one file per session under agents/runtime/state/session-index-latch/ whose entire content is a claim timestamp, and nothing reads it to restore anything \u2014 a successor session that finds it learns only that THIS session already received the memory index, which is the opposite of resumable state. It exists because `session_start` can fire more than once for one session (resume, host reconnect, compaction boundary on some hosts) and two injections double a fixed cost while presenting two corpora as one session memory. Excluded on the same reasoning as schema:session-eol-state: the writer own bookkeeping, not a record a successor reads. Deleting the directory costs a session nothing but a possible second injection."
|
|
514
493
|
}
|
|
515
494
|
]
|
|
516
495
|
}
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
# `road-to-candidate-moves-floor` was that addition. The number is re-measured
|
|
65
65
|
# rather than the tolerance widened: a stated population that nobody re-measures
|
|
66
66
|
# is the un-asserted count this whole manifest exists to refuse.)
|
|
67
|
-
# **
|
|
68
|
-
# CI-identical argv, and
|
|
67
|
+
# **79 of them emit the machine-readable `scanned: <N>` line under their
|
|
68
|
+
# CI-identical argv, and 76 of those 79 are listed below.** The manifest is
|
|
69
69
|
# complete for every gate that can carry a floor, covering ~25 % of the population.
|
|
70
70
|
#
|
|
71
71
|
# RECOUNTED 2026-09-07, on the change that adds `lint_agent_security` — the
|
|
@@ -2365,7 +2365,7 @@ gates:
|
|
|
2365
2365
|
- id: check_loss_class_declared
|
|
2366
2366
|
argv: []
|
|
2367
2367
|
min_scanned: 45
|
|
2368
|
-
corpus: "every hook-manifest concern whose script exists (53 at baseline); of those, the
|
|
2368
|
+
corpus: "every hook-manifest concern whose script exists (53 at baseline, 58 on 2026-09-10); of those, the CONTEXT-EMITTING ones are walked through their relative module specifiers, and the modules that walk reaches whose code applies a lossy operation are the gated population. Measured 2026-09-10: 58 scanned, 7 emitters, 5 modules matched — 4 declaring a lossy class and 1 declaring `exact`. MATCHED IS NOT LOSSY: the detector establishes a match, the declaration says whether anything is lost, and an earlier version of this row said `5 lossy` and overstated the corpus by one. It read 0 between 2026-09-09 and 2026-09-10, when the hot-context cache retirement emptied the matched subset and the gate passed over nothing. A `loss_module:` pointer refilled it to 1 for part of 2026-09-10 and was superseded by the walk, whose two rejection premises were re-measured and did not hold — see docs/contracts/loss-classes.md."
|
|
2369
2369
|
status: enforced
|
|
2370
2370
|
canary:
|
|
2371
2371
|
class: contract-violation
|
|
@@ -2389,11 +2389,14 @@ gates:
|
|
|
2389
2389
|
has measurably never ratcheted. Both seats added the refinement adopted
|
|
2390
2390
|
here: unknown reachability is classified as model-reaching.
|
|
2391
2391
|
|
|
2392
|
-
MEASURED AT LANDING: **1** module
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
corpus
|
|
2392
|
+
MEASURED AT LANDING: **1** module qualified — `hot_context_hook`, the
|
|
2393
|
+
`ephemeral-lossy` exemplar `docs/contracts/loss-classes.md` classifies.
|
|
2394
|
+
MEASURED 2026-09-09, after step 3.1 of road-to-continuity-writer-activation
|
|
2395
|
+
retired that module's cache half: **0**. Setting the floor on the SCANNED
|
|
2396
|
+
corpus rather than the gated subset is what keeps this row meaningful
|
|
2397
|
+
through that drop — but a matched subset of zero means the gate currently
|
|
2398
|
+
proves nothing about any transform, which is tracked as blocker
|
|
2399
|
+
`loss-class-corpus-is-empty-after-hot-context`.
|
|
2397
2400
|
|
|
2398
2401
|
THE DETECTOR READS CODE, NOT PROSE. Its first cut matched `truncat` inside
|
|
2399
2402
|
three docblocks that describe truncation without performing any and
|
|
@@ -2777,3 +2780,23 @@ gates:
|
|
|
2777
2780
|
What the ROW buys on top of that is `ci_invocation` — the census had a
|
|
2778
2781
|
Taskfile target and no caller at all, so its removal would have been
|
|
2779
2782
|
noticed by nothing.
|
|
2783
|
+
|
|
2784
|
+
- id: check_projected_rule_routes
|
|
2785
|
+
argv: []
|
|
2786
|
+
min_scanned: 100
|
|
2787
|
+
corpus: "dist/agent-src/rules/*.md (119 at baseline, 22 distinct `guideline:` targets)"
|
|
2788
|
+
status: enforced
|
|
2789
|
+
canary:
|
|
2790
|
+
class: contract-violation
|
|
2791
|
+
path: dist/agent-src/rules/zz-canary-projected-route.md
|
|
2792
|
+
content: |
|
|
2793
|
+
---
|
|
2794
|
+
name: zz-canary-projected-route
|
|
2795
|
+
description: Canary planted by check_gate_coverage --canary; never ships.
|
|
2796
|
+
routes_to: guideline:zz-canary-target-that-does-not-exist
|
|
2797
|
+
---
|
|
2798
|
+
|
|
2799
|
+
# zz-canary-projected-route
|
|
2800
|
+
|
|
2801
|
+
A projected rule routing to a guideline body the projection does not
|
|
2802
|
+
contain. The gate must fail on this and pass once it is removed.
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"exempt": {
|
|
6
6
|
"ci-strict": "An ENTRY POINT, not a gate — the stricter sibling of `ci` itself, so wiring it into `ci` would be a cycle. Would run if strict became the default, which is a policy change rather than a wiring one.",
|
|
7
7
|
"check-augment-budget": "Emits a MEASUREMENT, not a verdict; a gate that cannot fail is a report. Would run once a pre-registered threshold exists to fail on.",
|
|
8
|
+
"check-platform-anchor": "THE PERMISSION DOES NOT EXIST, which is a different reason from every other row here — the others are unwired by judgement, this one by platform capability. It reads `repos/{owner}/{repo}/rulesets` to check that the forge actually requires what the ratification mechanism claims, and that endpoint needs the repository `administration` scope. A workflow `GITHUB_TOKEN` cannot be granted it: `administration: read` was tried in `rule-backstops.yml` on 2026-09-10 and actionlint refused it as an \"unknown permission scope\", listing the sixteen that do exist. Wiring it with an unauthorised token is worse than leaving it manual, because the gate fails closed by design — an unreadable platform is UNVERIFIABLE, which is a failure — so it would red every kernel and governance PR for a reason unrelated to the platform's actual state. The three escapes were each rejected on the reasoning of the council that commissioned the gate: `continue-on-error` makes it advisory, skipping when unauthenticated makes it fail open, and `Sync + Generate Tools Consistency` would freeze merges repository-wide on any red since that job's context is the single required check. The script itself IS reachable pre-push via the `preflight` list in `taskfiles/ci-fast.yml`; this target is the on-demand `task check-platform-anchor` entry point beside it. WOULD RUN given a PAT in a repository secret carrying `administration: read` — a human action, recorded as the open half of blocker `ratification-platform-anchor`.",
|
|
8
9
|
"check-corpus": "Requires council configuration, which is user-global (ADR-104) and absent in CI by construction. Would run against a fixture corpus that needs no configured council.",
|
|
9
10
|
"check-media-deps": "Requires external media tooling not installed on runners. Would run with those dependencies in the runner image, or behind a skip-with-reason path.",
|
|
10
11
|
"check-trunk-drift": "ADVISORY BY ITS OWN DOCSTRING — 'run it in the /create-pr pre-flight or wire into CI per your branch-protection policy'. Its red state is 'this branch is behind trunk', which is the normal state of an open PR, so wiring it would fail correct work. RECLASSIFIED from should-run during Phase 2 after reading what it asserts. Would run under a branch-protection policy that requires an up-to-date base.",
|