@event4u/agent-config 14.22.0 → 15.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 +333 -356
- 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 +48 -39
- 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 +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +2 -2
- package/dist/agent-src/commands/roadmap/next.md +9 -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 +1 -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 +13 -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 +36 -25
- 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/scripts/archive_completed_roadmaps.ts +106 -4
- 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-intelligence/SKILL.md +57 -1
- 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/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/git-workflow/references/push-closes-its-loop.md +9 -0
- 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 +60 -4
- 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/registry.js +1 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +52 -4
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/{chunk-TGIPZBCW.js → chunk-2KKXJW25.js} +22 -8
- package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
- package/dist/cli-delegate/{chunk-4FS4WRXP.js → chunk-3FKR64R5.js} +34 -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-BIXEDQPZ.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-HZ52BRGG.js} +24 -18
- package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.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 +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_explain.js +2 -2
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +24 -16
- 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 +2 -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 +4 -14
- 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 +41 -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 +27 -80
- 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 +9249 -8981
- package/dist/install/install.mjs +47 -8
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +5496 -2400
- 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/lean_projection_mode.js +108 -0
- package/dist/scripts/_lib/router_match.js +243 -0
- package/dist/scripts/_lib/rule_injection.js +216 -0
- package/dist/scripts/condense.js +22 -25
- package/dist/scripts/project_thin_rules.js +139 -19
- package/dist/server/io/yamlIO.js +125 -17
- package/dist/server/schemas/settings.js +32 -5
- package/dist/shared/settingsSurface.js +6 -1
- package/docs/MIGRATION.md +56 -0
- package/docs/contracts/settings-classes.md +48 -7
- 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/notes-horizon-mechanics.md +90 -0
- 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/llms.txt +1 -1
- package/package.json +7 -3
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +106 -4
- package/src/config/agent-settings.template.yml +94 -1
- package/src/config/ci-local-parity.yml +34 -0
- package/src/config/continuity-surface.json +8 -29
- package/src/config/evaluator-budgets.json +4 -4
- 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 +8 -7
- package/src/config/host-injection-effect.json +2 -2
- package/src/config/pack-size-budget.json +55 -4
- package/src/config/packed-binary-manifest.json +1 -1
- package/src/config/platform-anchor.json +47 -0
- package/src/config/preamble-payload-budget.json +2 -3
- package/src/config/publish-surface.json +4 -2
- package/src/config/ratification-policy.json +7 -0
- package/src/config/routing-coverage-seed.json +9 -2
- package/src/config/rule-stub-ceilings.json +16 -9
- package/src/scripts/_cli/cmd_session_recycle.ts +2 -25
- package/src/scripts/_cli/cmd_settings_get.ts +22 -7
- package/src/scripts/_cli/handoff_sessions.ts +14 -44
- 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/conformance_report.ts +403 -0
- package/src/scripts/_lib/continuity_slot.ts +295 -0
- package/src/scripts/_lib/continuity_writer.ts +312 -0
- package/src/scripts/_lib/design_system_import.ts +20 -0
- package/src/scripts/_lib/design_tolerance.ts +281 -0
- package/src/scripts/_lib/guidelines_lane.ts +164 -0
- package/src/scripts/_lib/hook_settings.ts +85 -0
- package/src/scripts/_lib/lean_projection_mode.ts +127 -0
- package/src/scripts/_lib/obligation_frequency.ts +2 -3
- package/src/scripts/_lib/packed_binary_predicate.ts +37 -0
- package/src/scripts/_lib/platform_anchor.ts +1053 -0
- package/src/scripts/_lib/ratification_artifact.ts +278 -0
- package/src/scripts/_lib/recycle_envelope_paths.ts +109 -21
- package/src/scripts/_lib/regression_neighbourhood.ts +159 -22
- package/src/scripts/_lib/security_lint.ts +23 -2
- package/src/scripts/_lib/self_repair.ts +21 -0
- package/src/scripts/_lib/session_eol.ts +44 -0
- package/src/scripts/_lib/session_index_trust.ts +387 -0
- package/src/scripts/_lib/standing_bound_ratchet.ts +220 -0
- package/src/scripts/_lib/tolerance_shadow.ts +177 -0
- package/src/scripts/_lib/vendored_grammar_upstream.ts +280 -0
- package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
- package/src/scripts/audit_mcp_tools.ts +69 -25
- package/src/scripts/autonomy_friction_traffic.ts +379 -0
- package/src/scripts/build_mcp_catalog.ts +24 -1
- package/src/scripts/check_host_tree_parity.ts +291 -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 +424 -7
- package/src/scripts/check_projected_rule_routes.ts +395 -0
- package/src/scripts/check_rule_projection_integrity.ts +102 -2
- package/src/scripts/ci_settle.ts +205 -5
- package/src/scripts/code_graph/build.ts +79 -0
- package/src/scripts/code_graph/cli.ts +264 -7
- package/src/scripts/code_graph/detect.ts +38 -0
- package/src/scripts/code_graph/query.ts +25 -2
- package/src/scripts/code_graph/sqlite_store.ts +16 -1
- package/src/scripts/code_graph/types.ts +52 -3
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +590 -0
- package/src/scripts/condense.ts +22 -26
- package/src/scripts/generate_host_cost_table.ts +354 -0
- package/src/scripts/handoff_context_hook.ts +39 -1
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +59 -28
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +182 -16
- package/src/scripts/hooks/category_a.ts +1 -1
- package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
- package/src/scripts/hooks/code_graph_context_hook.ts +7 -18
- package/src/scripts/hooks/push_settle_hook.ts +3 -2
- package/src/scripts/hooks/rule_inject_hook.ts +107 -20
- package/src/scripts/hooks/session_eol_hook.ts +177 -145
- package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
- package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
- package/src/scripts/hot_context_hook.ts +103 -408
- package/src/scripts/lint_evidence_artifacts.ts +1 -0
- package/src/scripts/lint_knowledge_scale.ts +0 -26
- package/src/scripts/lint_roadmap_blockers.ts +164 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +152 -2
- package/src/scripts/mcp_server/graph_tools.ts +294 -0
- package/src/scripts/mcp_server/path_util.ts +31 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +7 -1
- package/src/scripts/mcp_server/tools.ts +3 -13
- package/src/scripts/memory_lookup.ts +9 -9
- package/src/scripts/model_rule_injection.ts +61 -4
- package/src/scripts/project_thin_rules.ts +149 -16
- package/src/scripts/report_standing_payload_by_host.ts +650 -0
- package/src/scripts/schemas/agent-settings.schema.json +7 -1
- package/src/scripts/session_memory_index.ts +86 -8
- package/src/scripts/sync_agent_settings.ts +270 -10
- package/src/server/io/yamlIO.ts +127 -17
- package/src/server/schemas/settings.ts +45 -6
- package/src/shared/settingsSurface.ts +13 -2
- package/src/templates/compact-instructions.md +8 -3
- package/src/vendor/grammars/README.md +27 -2
- package/dist/agent-src/commands/chat-history/import.md +0 -170
- package/dist/agent-src/commands/chat-history.md +0 -63
|
@@ -247,8 +247,39 @@ dispatch runs, not WHETHER the layer exists, so they keep their own C rows.
|
|
|
247
247
|
|---|---|
|
|
248
248
|
| A — preference | 26 |
|
|
249
249
|
| B — consent | 3 |
|
|
250
|
-
| C — guarded |
|
|
251
|
-
| **Total** | **
|
|
250
|
+
| C — guarded | 116 |
|
|
251
|
+
| **Total** | **145** |
|
|
252
|
+
|
|
253
|
+
It rose to 142 on 2026-09-08 from two independent additions that landed in the same
|
|
254
|
+
day and are counted together here: `lean_projection.hosts` (one C, `policy`, from
|
|
255
|
+
`road-to-delivery-for-every-host`) and the two continuity keys below. The merge that
|
|
256
|
+
combined them re-derived the total from the class table rather than adding either
|
|
257
|
+
side's figure to the other, which is the arithmetic `lint_settings_classes` checks.
|
|
258
|
+
|
|
259
|
+
It rose on 2026-09-08 when `road-to-continuity-writer-activation`
|
|
260
|
+
step 1.2 added `continuity.auto_record` — one C, `consent`: it arms an automatic
|
|
261
|
+
producer on the normal session-end path, and the roadmap step required the
|
|
262
|
+
default to stay `off` until parity was measured, which is a decision no agent may
|
|
263
|
+
take by writing the key. **It ships `on` since 2026-09-10.** The class did not
|
|
264
|
+
change and neither did the write protection — `settings:set` still refuses this
|
|
265
|
+
key. What changed is the shipped default, edited by hand in the template and the
|
|
266
|
+
schema on a recorded AI-council verdict (2026-09-10, 2 seats, convergent, under
|
|
267
|
+
the owner's written delegation), which is the route a class-C default moves by
|
|
268
|
+
and the reason the refusal in `settings:set` is not a contradiction: the guard
|
|
269
|
+
stops an agent from deciding, not a recorded decision from being applied. Step 1.4 added
|
|
270
|
+
`continuity.run_checkpoints` the same day — a second C, shipping `on` because
|
|
271
|
+
that is the behavior the tree already had. It exists so the three session-end
|
|
272
|
+
handlers are independently disableable, which is what the 2026-09-07 council's
|
|
273
|
+
D2 asked for; it changes nothing that ships.
|
|
274
|
+
|
|
275
|
+
Its disposition is `consent`, and `derivable` was considered first and rejected:
|
|
276
|
+
`derivable` is the **deletion queue**, a claim that the key disappears once the
|
|
277
|
+
mechanism it names exists. This one is an operator kill switch over a recovery
|
|
278
|
+
artifact, so it is meant to survive — and nothing in the tree can derive whether
|
|
279
|
+
an operator wants resumability traded for quiet. It sits in the same shape as the
|
|
280
|
+
kill switches already classified `consent` (`knowledge.global_sharing.enabled`
|
|
281
|
+
and its allowlist): the mechanism's own preconditions are computable, the
|
|
282
|
+
operator's decision to suppress it is not.
|
|
252
283
|
|
|
253
284
|
The total was 140 until 2026-08-12, when five of the six keys no code path read were
|
|
254
285
|
deleted, minus the one held open (§ The six unread keys, below): one A
|
|
@@ -338,9 +369,9 @@ the template, which is the drift this contract exists to prevent.
|
|
|
338
369
|
|---|---|
|
|
339
370
|
| derivable | 83 |
|
|
340
371
|
| un-inferrable | 9 |
|
|
341
|
-
| consent |
|
|
342
|
-
| policy |
|
|
343
|
-
| **Total** | **
|
|
372
|
+
| consent | 44 |
|
|
373
|
+
| policy | 9 |
|
|
374
|
+
| **Total** | **145** |
|
|
344
375
|
|
|
345
376
|
First measured 2026-08-12 at 140 leaves (derivable 88 · consent 38 ·
|
|
346
377
|
un-inferrable 9 · policy 5), from the table below rather than predicted — the
|
|
@@ -355,8 +386,12 @@ mechanism it names actually exists, so 83 measures work outstanding, not keys
|
|
|
355
386
|
about to disappear. The count is expected to fall while `un-inferrable` does not
|
|
356
387
|
— those 9 plus whatever survives re-examination in `consent` are the floor this
|
|
357
388
|
surface has, and stating it is the point. `policy` is the smallest class and the
|
|
358
|
-
only one whose action is a *move* rather than a keep or a delete:
|
|
359
|
-
a project fact the tree could hold instead.
|
|
389
|
+
only one whose action is a *move* rather than a keep or a delete: seven keys carry
|
|
390
|
+
a project fact the tree could hold instead. (This sentence read "five" while the
|
|
391
|
+
counts table beside it read 6, and 2026-09-08 added `lean_projection.hosts` as the
|
|
392
|
+
seventh — corrected in both directions rather than only incremented, because a
|
|
393
|
+
prose number that disagrees with a computed one beside it is the exact defect
|
|
394
|
+
`lint_settings_classes` fails the two Total rows for.)
|
|
360
395
|
|
|
361
396
|
## The floor — the nine keys no mechanism can derive
|
|
362
397
|
|
|
@@ -440,6 +475,7 @@ Rows follow template order, so a diff against the template reads straight down.
|
|
|
440
475
|
| `discipline_profile` | C | `__DISCIPLINE_PROFILE__` | master switch for the discipline rule tier | derivable — its own `auto` resolution against `src/config/host-capabilities.yml` |
|
|
441
476
|
| `rule_loading_tier` | C | `__RULE_LOADING_TIER__` | legacy master switch for rule loading | derivable — `discipline_profile` supersedes it with a documented mapping (minimal→off, balanced→essential, full→full) |
|
|
442
477
|
| `lean_projection.mode` | C | `eager-all` | `thin` removes rule bodies from the agent's context | derivable — `probe_host_compliance.ts` already computes the per-host thin/eager recommendation |
|
|
478
|
+
| `lean_projection.hosts` | C | `[claude-code]` | decides WHICH hosts a thinning mode may thin, so an added id removes rule bodies from that host's context | policy — the value is a package-level decision the tree already holds: ADR-267 scopes the shipped `delivery` flip to `claude-code` alone. NOT `derivable`, and the distinction is the whole reason for this row: the mechanism that would compute an admissible host set, `admissibleUnderE3` in `src/scripts/_lib/injection_effect.ts`, admits **nothing** today — `src/config/host-injection-effect.json` carries 1 `observed-false` and 8 `unobserved` rows and no `observed-true` — so a derivation would yield `[]` rather than the shipped `[claude-code]`. Naming a mechanism that returns empty as the replacement would put a key in the deletion queue whose deletion would silently change the default. Move target: the ADR plus that census, once a host earns an `observed-true` row |
|
|
443
479
|
| `telegraph.speak` | C | `false` | ships a rule body; a token-cost lever in both directions | derivable — the telegraph kill-criterion bench verdict is a package-level decision, not a per-install one |
|
|
444
480
|
| `tokens.rich_skills` | C | `"on"` | token-spend lever | derivable — the skill's own `token_budget_class: rich` declaration plus the CI ceiling in `lint_token_budget_discipline.ts` |
|
|
445
481
|
| `cost.budgets.daily` | C | `0` | rolling spend ceiling | consent |
|
|
@@ -501,6 +537,9 @@ Rows follow template order, so a diff against the template reads straight down.
|
|
|
501
537
|
| `planning.completion_review` | C | `true` | disables the completion-review validator | derivable — `check_completion_review`'s own scope predicate, bound to the current diff hash |
|
|
502
538
|
| `quality.local_auto_run` | C | `false` | governs whether local verification runs at all | consent |
|
|
503
539
|
| `design.fidelity_mode` | C | `strict` | strict-mode selector, one of whose values is a Hard Floor | policy |
|
|
540
|
+
| `design.approximation.enabled` | C | `false` | lets a value change without a per-value confirmation; enabling it is a consumer-facing default flip | consent |
|
|
541
|
+
| `design.approximation.tolerance.color` | C | `null` | decides which colour deviations may be taken silently | policy |
|
|
542
|
+
| `design.approximation.tolerance.length` | C | `null` | decides which length deviations may be taken silently | policy |
|
|
504
543
|
| `consistency.cross_source` | C | `"on"` | disables the cross-source discrepancy gate | derivable — the rule's own trigger condition; a discrepancy exists only when two present sources contradict |
|
|
505
544
|
| `screenshots.identity_allowlist` | C | `[]` | allowlist of identities that ship unredacted | consent |
|
|
506
545
|
| `screenshots.forbid_terminal_capture` | C | `true` | kill-switch over the highest-leak capture path | consent |
|
|
@@ -537,6 +576,8 @@ Rows follow template order, so a diff against the template reads straight down.
|
|
|
537
576
|
| `commands.create_pr.screenshots` | C | `false` | puts captured screenshots into a published PR body | consent |
|
|
538
577
|
| `commands.create_pr.ui_paths` | C | `[]` | glob allowlist | derivable — the frontend-surface heuristic the PR-description flow already applies when the glob list is empty |
|
|
539
578
|
| `commands.create_pr.api_paths` | C | `[]` | glob allowlist | derivable — the API-endpoint heuristic the same flow already applies as its documented empty-list fallback |
|
|
579
|
+
| `continuity.auto_record` | C | `"on"` | arms an automatic producer on the normal session-end path | consent |
|
|
580
|
+
| `continuity.run_checkpoints` | C | `"on"` | disabling it removes a recovery artifact a killed run resumes from | consent |
|
|
540
581
|
| `memory.cadence` | C | `always` | suppressing the visibility line hides what the agent learned from the user | derivable — the hits/asks count the memory-visibility summary already computes; the line only exists when memory was consulted |
|
|
541
582
|
| `memory.review_threshold` | A | `10` | when a review preview surfaces; governs no gate | derivable — the unreviewed-intake count `/memory load` already computes before rendering its preview |
|
|
542
583
|
| `memory.redact_patterns` | C | `[]` | deny-list of secret and PII regexes | policy |
|
|
@@ -45,6 +45,41 @@ present in the diff** — never speculative abstraction for "this could grow
|
|
|
45
45
|
later". See [`component-oriented-and-oop-development`](component-oriented-and-oop-development.md)
|
|
46
46
|
§ The load-bearing caveat.
|
|
47
47
|
|
|
48
|
+
## The provided-artifact clause — repetition observable before the code exists
|
|
49
|
+
|
|
50
|
+
ADR-213 authorises extraction on repetition **already present in the diff**. A
|
|
51
|
+
handed-over **runnable** artifact makes repetition observable before any code
|
|
52
|
+
exists at all: four `<Card>` instances are visible in the handover, so a port
|
|
53
|
+
that writes them one at a time and extracts on the second is doing the
|
|
54
|
+
threshold's own arithmetic in the wrong order.
|
|
55
|
+
|
|
56
|
+
This is a **different mechanism** than the one the threshold tested, not a
|
|
57
|
+
loophole in it. `adr_cite_check ADR-213` reports the record LIVE with an
|
|
58
|
+
**indeterminate** review trigger and `reopen_policy: unclassified`, so
|
|
59
|
+
investigation is permitted; the numbers themselves — 2 · 3+ · ~4+ — are
|
|
60
|
+
**unchanged**, and this clause moves only *when* the count may be taken.
|
|
61
|
+
|
|
62
|
+
**Two guards, both required. The first alone is insufficient.**
|
|
63
|
+
|
|
64
|
+
1. **A runnable artifact, not a design comp.** A comp shows a picture of four
|
|
65
|
+
cards; a runnable artifact carries four instances of a thing. Counting
|
|
66
|
+
rectangles in an image is not counting repetition, and a comp therefore does
|
|
67
|
+
not qualify.
|
|
68
|
+
2. **Repetition of the ELEMENT, not of its compositional context.** Four
|
|
69
|
+
`<Card>` instances show that Card is used four times. They do **not** show
|
|
70
|
+
that a `CardGrid` is needed — that needs multiple distinct contexts each
|
|
71
|
+
arranging several cards. Without this guard the clause would license
|
|
72
|
+
extracting a wrapper for every layout the artifact happens to contain once,
|
|
73
|
+
which is speculative abstraction with an artifact as its excuse.
|
|
74
|
+
|
|
75
|
+
**Enforcement, stated honestly: guard (2) is model-carried and audit-enforced.**
|
|
76
|
+
Nothing mechanical separates *"I saw four Cards"* from *"I saw a CardGrid
|
|
77
|
+
pattern"* — the distinction is about what the repetition MEANS, and
|
|
78
|
+
`lint_abstraction_thresholds.ts` checks numeric threshold drift, which is a
|
|
79
|
+
different property. Guard (1) is checkable (is the handover runnable), guard (2)
|
|
80
|
+
is not, and claiming otherwise would be the coverage inflation this tree forbids
|
|
81
|
+
elsewhere. The discipline is the control.
|
|
82
|
+
|
|
48
83
|
## See also
|
|
49
84
|
|
|
50
85
|
- [`architecture`](../../src/rules/architecture.md) — the rule that carries the code-level bar.
|
|
@@ -67,16 +67,16 @@ Two failure shapes this table exists to name:
|
|
|
67
67
|
|
|
68
68
|
### Worked example — a red gate seen mid-task
|
|
69
69
|
|
|
70
|
-
> `
|
|
70
|
+
> the `check` task fails; the lint step reports 7 errors, all pre-existing on `main`, in files this branch does not touch.
|
|
71
71
|
|
|
72
|
-
Wrong, and the canonical shape of it: finish the task, and close with *"the only thing still open is the lint finding — 7 errors on main, which makes `
|
|
72
|
+
Wrong, and the canonical shape of it: finish the task, and close with *"the only thing still open is the lint finding — 7 errors on main, which makes the `check` task unusable as a chain"*. The sentence is accurate, the issue is named, and nothing about it is decided — the next session inherits it verbatim.
|
|
73
73
|
|
|
74
74
|
Right: the errors are pre-existing, outside the fix-now bar (unrelated files, more than ~10 lines), so they are **note + ask** — after the task is delivered, one block:
|
|
75
75
|
|
|
76
76
|
1. Fix the 3 `no-unused-vars` in `src/a.ts`, `src/b.ts` — ~6 lines, mechanical, ships in this PR.
|
|
77
77
|
2. Fix all 7 in a separate follow-up PR — keeps this diff single-purpose; needs a branch (permission-gated).
|
|
78
78
|
3. Suppress the two in generated output with a scoped ignore, fix the rest — smallest green path, adds a suppression to review.
|
|
79
|
-
4. Leave as is — `
|
|
79
|
+
4. Leave as is — the `check` task stays unusable as a chain until someone else picks it up.
|
|
80
80
|
|
|
81
81
|
One recommendation line names the pick. Whatever the user answers, the item is closed. If they answer nothing, it is raised once at the next task boundary — not carried silently into a third session.
|
|
82
82
|
|
|
@@ -168,8 +168,8 @@ bash src/scripts/condense.sh --changed # dist != rewrite(src) => the scan
|
|
|
168
168
|
./scripts-run src/scripts/check_condensation --summary # byte-exactness dist vs rewrite(src)
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
**Structural fix:** regenerate before judging
|
|
172
|
-
`
|
|
171
|
+
**Structural fix:** regenerate before judging — this repository's `sync` task
|
|
172
|
+
then its `generate-tools` task, in that order — and treat a baseline unchanged past
|
|
173
173
|
`STALE_AFTER_DAYS` (56, `_lib/gate_baseline.ts:39`) as suppression rather than
|
|
174
174
|
as headroom. A completion claim rests on a run made **after** the last edit, not
|
|
175
175
|
on the freshest run you happen to remember.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Notes-first reasoning — horizon and reopening mechanics
|
|
2
|
+
|
|
3
|
+
Migrated out of [`notes-first-reasoning`](../../../src/rules/notes-first-reasoning.md)
|
|
4
|
+
on 2026-09-08. That rule is delivered on **every subagent spawn**, so its body is
|
|
5
|
+
paid per spawn; this material is reference read on demand. Nothing was dropped —
|
|
6
|
+
the four passages below are the rule's own text, verbatim, and the rule keeps
|
|
7
|
+
both Iron Laws and points here.
|
|
8
|
+
|
|
9
|
+
Same reason, and the same remedy, as the 2026-08-29 drain run recorded for
|
|
10
|
+
`source-confidentiality`: the addition had no room under the per-spawn ceiling,
|
|
11
|
+
and raising that ceiling is the config-weakening move this repository refuses.
|
|
12
|
+
|
|
13
|
+
### Why reasoning stays out of the reply, and what grounds the notes file
|
|
14
|
+
|
|
15
|
+
Reasoning dumped into the user-facing answer is both noise and a
|
|
16
|
+
`reasoning_extraction` refusal risk (see `rdp-gate`). Keep it in the notes file.
|
|
17
|
+
|
|
18
|
+
The notes file is grounded in the documented cross-run lessons memory
|
|
19
|
+
(consolidated via [`memory-consolidation`](../../../src/skills/memory-consolidation/SKILL.md));
|
|
20
|
+
the rule's in-task sections are a local derivation for within-task scope. The
|
|
21
|
+
gate itself reads settings + task-signal + host self-assessment.
|
|
22
|
+
|
|
23
|
+
### The two section fields, in full
|
|
24
|
+
|
|
25
|
+
The rule lists the sections and no count. That is deliberate: the structure
|
|
26
|
+
carries the enumeration, so there is no "write N hypotheses" instruction to
|
|
27
|
+
follow — a run records what the work actually surfaced, and an empty section is
|
|
28
|
+
a fact about the work rather than a gap in the notes.
|
|
29
|
+
|
|
30
|
+
`## Predictions` carries **chosen form** · prediction · confidence · result ·
|
|
31
|
+
lesson — the calibration loop: hypothesis → prediction → reality →
|
|
32
|
+
calibration. The form is named first because a prediction with no subject
|
|
33
|
+
cannot be contradicted: when the observation comes back, "the prediction
|
|
34
|
+
missed" has to point at *what* it was a prediction about, or nothing reopens.
|
|
35
|
+
|
|
36
|
+
`## Decisions` escalates to
|
|
37
|
+
[`decision-record`](../../../src/skills/decision-record/SKILL.md)/ADR when the
|
|
38
|
+
decision is cross-task or architectural — litmus: would a dev on a different
|
|
39
|
+
component next month need this context? And `next-commitment` is the boundary
|
|
40
|
+
this choice authorises work up to, not the plan for it: choosing a form is not
|
|
41
|
+
permission to execute a twelve-step plan on it without re-reading the position.
|
|
42
|
+
|
|
43
|
+
### The horizon — which boundaries count
|
|
44
|
+
|
|
45
|
+
The boundary is the nearest of these that the plan actually reaches: a **test
|
|
46
|
+
result** · a **type or schema inspection** · a **compile** · a **runtime probe**
|
|
47
|
+
· a **call-site inventory** · a **dry run** · a **browser observation** · a
|
|
48
|
+
**dependency-contract read**. The set is enumerable, which is the whole point —
|
|
49
|
+
"the work up to the nearest of those" is decidable from the plan, and `next
|
|
50
|
+
justified commitment` as prose degrades to *"implement solution"*, which is the
|
|
51
|
+
starting point wearing a label.
|
|
52
|
+
|
|
53
|
+
### Width scales with reversibility, never with task size
|
|
54
|
+
|
|
55
|
+
| The action is… | The horizon runs to… |
|
|
56
|
+
|---|---|
|
|
57
|
+
| a reversible local edit | a whole implementation slice — stopping at the first boundary costs more than it saves |
|
|
58
|
+
| stateful or cross-layer | the next boundary from the list above |
|
|
59
|
+
| irreversible or a public contract | **before** the irreversible step, unless direct evidence already covers it |
|
|
60
|
+
|
|
61
|
+
### The look-ahead ladder is a CEILING, never a quota
|
|
62
|
+
|
|
63
|
+
Three to five moves is the *maximum*, and only for a forcing, irreversible or
|
|
64
|
+
externally observable line. Stateful or cross-layer gets two to three. A quiet
|
|
65
|
+
reversible line gets **one, deliberately** — and no artifact anywhere requires a
|
|
66
|
+
minimum depth. Always-three-to-five across all variants is 1024 leaves at four
|
|
67
|
+
branches and depth five, which buys nothing and costs the run its budget.
|
|
68
|
+
|
|
69
|
+
### Reopening — the two consequences
|
|
70
|
+
|
|
71
|
+
A reopen driven by ritual rather than by contradicting evidence is ceremony, and
|
|
72
|
+
an uncapped reopen is a loop with better manners. Two consequences:
|
|
73
|
+
|
|
74
|
+
- **A rejection whose premise is falsified is not a rejection.** A candidate
|
|
75
|
+
killed by an assumption that later turns out false is *un-evaluated*, not
|
|
76
|
+
dead — it returns to the set. That is what makes a stated `killed-if`
|
|
77
|
+
condition worth carrying: without it, "we ruled that out" is unfalsifiable.
|
|
78
|
+
- **The first failure reads the candidate list before the retry**, where one
|
|
79
|
+
exists — see [`autonomy-mechanics`](../../../src/agent-src/contexts/execution/autonomy-mechanics.md)
|
|
80
|
+
§ Retry-budget escalation ladder. Where none exists the ladder is unchanged.
|
|
81
|
+
This adds a branch; it does not move the N=3 budget.
|
|
82
|
+
|
|
83
|
+
## See also
|
|
84
|
+
|
|
85
|
+
- [`notes-first-reasoning`](../../../src/rules/notes-first-reasoning.md) — the
|
|
86
|
+
rule this material was paid for in, and which keeps both Iron Laws.
|
|
87
|
+
- [`rdp-gate`](../../../src/agent-src/contexts/execution/rdp-gate.md) — the
|
|
88
|
+
engagement gate that decides whether the notes discipline runs at all.
|
|
89
|
+
- [`decision-record`](../../../src/skills/decision-record/SKILL.md) — where a
|
|
90
|
+
cross-task or architectural decision escalates to.
|
|
@@ -15,7 +15,7 @@ _Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` p
|
|
|
15
15
|
> 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
|
|
16
16
|
> blocks any commit whose staged set touches `agents/roadmaps/` or
|
|
17
17
|
> `agents/roadmaps-progress.md` while the dashboard is stale.
|
|
18
|
-
> 3. `
|
|
18
|
+
> 3. The `ci` task runs `roadmap-progress-check` so a PR cannot land with a
|
|
19
19
|
> stale dashboard even if local hooks were bypassed.
|
|
20
20
|
>
|
|
21
21
|
> Hook is primary; the prose below is the specification the hook
|
|
@@ -53,7 +53,7 @@ A field that carries the schema `default` (e.g. `trust.level: core`,
|
|
|
53
53
|
`validate_frontmatter.apply_schema_defaults` injects it transparently for
|
|
54
54
|
every consumer (validator, discovery manifest, drift checksum). Writing it
|
|
55
55
|
anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.ts` rejects
|
|
56
|
-
(wired into `
|
|
56
|
+
(wired into this repository's `ci-fast` task). To strip it across the tree, run
|
|
57
57
|
`./scripts-run src/scripts/migrate_frontmatter_defaults`. Background:
|
|
58
58
|
`road-to-abstraction-reduction.md` +
|
|
59
59
|
`agents/evidence/analysis/abstraction-reduction-preflight.md`.
|
|
@@ -230,6 +230,10 @@ unmarked finding is treated as actionable, so the default failure direction is
|
|
|
230
230
|
|
|
231
231
|
Regression witness: `daf-slop-vs-provided`.
|
|
232
232
|
|
|
233
|
+
**Why the default is what it is, and why the 2026-07-31 council lock over this
|
|
234
|
+
loop cannot be discharged by measuring it:**
|
|
235
|
+
[`design-reconciliation § The 2026-07-31 lock`](design-reconciliation.md).
|
|
236
|
+
|
|
233
237
|
## Value-level provenance — the finer grain beside the flag
|
|
234
238
|
|
|
235
239
|
The block above is finding-level and stays the default: `artifact_covered` is a
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Design-fidelity routing mechanics — how the trigger set is authored
|
|
2
|
+
|
|
3
|
+
Split out of [`design-fidelity-mechanics`](design-fidelity-mechanics.md) on
|
|
4
|
+
2026-09-09 under `check_depth_budget`'s 16,000-character per-file ceiling. It is
|
|
5
|
+
also a genuinely different subject: that guideline is read while PORTING an
|
|
6
|
+
artifact, and this one is read while EDITING the rule's own trigger set — which
|
|
7
|
+
happens rarely, by a maintainer, and never during a port.
|
|
8
|
+
|
|
9
|
+
## Routing mechanics
|
|
10
|
+
|
|
11
|
+
Migrated out of `design-fidelity.md` on 2026-09-09 under the council verdict on
|
|
12
|
+
`blocker: rule-body-cap` — a semantic migration that frees rule-body lines for
|
|
13
|
+
the operative pointers the same verdict requires, not an arbitrary line cut. The
|
|
14
|
+
rule keeps the obligations; this holds the reasoning behind them.
|
|
15
|
+
|
|
16
|
+
### The withdrawn builder-URL trigger
|
|
17
|
+
|
|
18
|
+
A page built in Lovable / v0 / bolt and handed over as a share link is a
|
|
19
|
+
finished spec, and `design-fidelity` does not route it. The obvious trigger was
|
|
20
|
+
tried and **withdrawn**: matching is plain lower-cased substring containment, so
|
|
21
|
+
`https://v0.dev/` also fires on `https://v0.dev/docs`, on a pricing page, and on
|
|
22
|
+
a changelog link — it would treat every mention of the tool's own site as a spec
|
|
23
|
+
handover. That is exactly the `claude.ai` failure the capability-URL trigger
|
|
24
|
+
exists to avoid, and by the rule's own standard it is worse than the gap it
|
|
25
|
+
closes. The alternatives are a bare-host keyword (broader still) or guessing
|
|
26
|
+
each vendor's share-path segment, and a trigger built on a guessed path is not
|
|
27
|
+
evidence.
|
|
28
|
+
|
|
29
|
+
**What closes it:** a verified share-path segment per vendor, or a
|
|
30
|
+
handover-word co-occurrence the matcher cannot express today. Until then the
|
|
31
|
+
class needs one word in the prompt, like any other unlisted filename.
|
|
32
|
+
`near-bare-host-mention` in `ROUTING_MATRIX` pins the bare-host direction silent
|
|
33
|
+
so a future attempt cannot reintroduce the broad form unnoticed.
|
|
34
|
+
|
|
35
|
+
### The trigger set, class by class
|
|
36
|
+
|
|
37
|
+
Phrase-heavy on the German side and on `artifact` deliberately: a bare
|
|
38
|
+
`artifact` keyword fires on *"the CI build artifact is 40 MB"*, which is CI
|
|
39
|
+
vocabulary and not a handover. `ROUTING_MATRIX` pins both halves — every class
|
|
40
|
+
that must route, and every near-miss that must stay silent (fixture
|
|
41
|
+
`daf-port-trigger-de`).
|
|
42
|
+
|
|
43
|
+
Each shipped class carries its own near-miss row, and the pairing is the
|
|
44
|
+
contract rather than a courtesy:
|
|
45
|
+
|
|
46
|
+
| Class | Its near-miss row | The direction that row tests |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| `phrase: claude.site/artifacts` | `near-claude-ai-chat-link` | a bare `claude.ai` chat link is a conversation reference, not a spec |
|
|
49
|
+
| `path_prefix: .claude/design-system/` | `near-generic-design-system-dir` | a bare `design-system/` is a normal source folder in a large fraction of frontend repos |
|
|
50
|
+
| `file_pattern: *.dc.html` | `near-plain-html-open-file`, `near-dc-in-a-filename` | an ordinary `.html` file in the tree; a filename that merely contains the letters |
|
|
51
|
+
| the withdrawn builder URL | `near-bare-host-mention` | left behind on purpose, so the broad form stays pinned silent |
|
|
52
|
+
|
|
53
|
+
### Write the near-miss row first — and test the right direction
|
|
54
|
+
|
|
55
|
+
Extending the trigger set without adding a near-miss row is how an over-broad
|
|
56
|
+
trigger lands. The stronger half of the contract is *which* near-miss:
|
|
57
|
+
|
|
58
|
+
**The row must test the direction the NEW trigger opens, not a direction that
|
|
59
|
+
was already closed.** The withdrawn class is the worked example. Its first
|
|
60
|
+
near-miss row tested a protocol-less mention — silent *before* the change, and
|
|
61
|
+
therefore incapable of catching the over-broadness the change introduced. The
|
|
62
|
+
row that would have caught it is `near-builder-host-non-handover-url`, a
|
|
63
|
+
documentation URL on the same host, and it exists only because a review asked
|
|
64
|
+
for it after the trigger had already shipped.
|
|
65
|
+
|
|
66
|
+
Applied on the next trigger to land: `*.dc.html` (the Claude Design canvas
|
|
67
|
+
artboard, which `*design.html` cannot match because it compiles to
|
|
68
|
+
`^(?:.*design\.html)$`) shipped with `near-plain-html-open-file` and
|
|
69
|
+
`near-dc-in-a-filename` written **before** it, both testing the direction it
|
|
70
|
+
opens — an ordinary `.html` file in the tree, and a filename that merely
|
|
71
|
+
contains the letters. Both were confirmed red-then-green against the real
|
|
72
|
+
matcher rather than asserted.
|
|
73
|
+
|
|
74
|
+
## See also
|
|
75
|
+
|
|
76
|
+
- [`design-fidelity-mechanics`](design-fidelity-mechanics.md) — the porting half.
|
|
77
|
+
- `tests/scripts/design_fidelity_routing.test.ts` — `ROUTING_MATRIX`, which is
|
|
78
|
+
the measurement this file describes rather than a second copy of it.
|
|
@@ -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/llms.txt
CHANGED
|
@@ -41,7 +41,7 @@ canvas-design: Creating static visual art — posters, marketing visuals, brand
|
|
|
41
41
|
character-consistency: Use when a character must stay visually identical across AI video scenes — locks identity tokens (silhouette, palette, wardrobe, prop) in JSON. Triggers 'character lock', 'same character'.
|
|
42
42
|
check-refs: Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions.
|
|
43
43
|
churn-prevention: Use when designing churn defence — health-score signals, churn-cause split (involuntary / value / relationship / fit), early-warning loop. Triggers on 'why are accounts leaving'.
|
|
44
|
-
code-intelligence: Route codebase-structure questions (who calls X, where
|
|
44
|
+
code-intelligence: Route codebase-structure questions (who calls X, where used, change-impact) to an existing code-graph first: impact, tests-for, dead cheaper, never more precise; grep routine. Also 'call graph'.
|
|
45
45
|
code-refactoring: When the user says 'refactor this', 'rename class', or 'move method'. Safely refactors code in any language — finds all callers, updates downstream dependencies, verifies via quality tools.
|
|
46
46
|
code-review: Use when the user says \"review this\", \"check my code\", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards.
|
|
47
47
|
command-routing: Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns.
|