@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
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Cross-Source Consistency — Mechanics
|
|
2
|
+
|
|
3
|
+
> The discrepancy taxonomy, the scan procedure, the confidence-tiered noise control, worked examples, and the precedence table for the `cross-source-consistency` rule
|
|
4
|
+
|
|
5
|
+
_Companion to `src/rules/cross-source-consistency.md` (P4 pattern of `road-to-kernel-and-router.md`). The Iron Law, the fire/not-fire scope, and the subordination clauses stay in the rule; this file carries the taxonomy detail, the scan procedure, and the examples._
|
|
6
|
+
|
|
7
|
+
## The discrepancy taxonomy
|
|
8
|
+
|
|
9
|
+
| # | Class | Definition | Canonical example |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| a | **text ↔ image** | The ticket/spec text contradicts an attached mockup, screenshot, or diagram. | Text: "show birthdays **today**". Mockup: a birthday from two days ago. |
|
|
12
|
+
| b | **silent-but-needed** | The spec is silent on a behavior that is clearly required for the feature to be correct. | Spec: weekend-shifting only. Clearly also needed: public-holiday shifting — but never specified. |
|
|
13
|
+
| c | **spec ↔ codebase/reality** | The spec contradicts what the code, DB, API, or a real source actually does. | Spec: "the endpoint returns `dueDate`". The DTO has no such field. |
|
|
14
|
+
| d | **intra-ticket** | Acceptance criteria, description, and comments contradict each other. | Description: real-time. AC: "nightly batch is fine." |
|
|
15
|
+
|
|
16
|
+
Type (a) and (d) are **contradictions between present sources** — the agent
|
|
17
|
+
must not pick one silently. Type (b) is a **scope decision** — the inferred
|
|
18
|
+
behavior may be right, but adding it is a scope expansion the user owns. Type
|
|
19
|
+
(c) routes the *verification* to `source-discovery` (read the real source); this
|
|
20
|
+
rule only owns *surfacing the conflict and asking*.
|
|
21
|
+
|
|
22
|
+
## The scan procedure
|
|
23
|
+
|
|
24
|
+
Run this whenever planning, refining, estimating, roadmapping, or implementing
|
|
25
|
+
from a ticket/spec that carries a second source:
|
|
26
|
+
|
|
27
|
+
1. **Enumerate the sources.** Ticket text, every attachment (mockup / screenshot
|
|
28
|
+
/ diagram), the AC block, description, comments, and — for implementation —
|
|
29
|
+
the relevant codebase/DB/API surface. If an attachment cannot be read,
|
|
30
|
+
say so; do not assume it agrees.
|
|
31
|
+
2. **Compare pairwise for type (a), (c), (d).** For each pair, ask: do they state
|
|
32
|
+
the same thing about the same requirement? A mismatch is a discrepancy.
|
|
33
|
+
3. **Scan for type (b) — silence.** List the behaviors the feature obviously
|
|
34
|
+
needs but the spec never mentions (weekend/holiday shifts, empty states,
|
|
35
|
+
error paths, permission edges, pagination, timezone). Each unstated-but-needed
|
|
36
|
+
behavior is a candidate to surface — not to implement.
|
|
37
|
+
4. **Classify confidence.** High = the sources plainly disagree, or the missing
|
|
38
|
+
behavior is clearly load-bearing. Low = the "conflict" is a plausible
|
|
39
|
+
re-reading, or the missing behavior may be intentionally out of scope.
|
|
40
|
+
5. **Decide per the setting** (below), then **batch** every surviving discrepancy
|
|
41
|
+
into ONE question folded into this turn's single `ask-when-uncertain` prompt.
|
|
42
|
+
|
|
43
|
+
## Confidence-tiered noise control (`consistency.cross_source`)
|
|
44
|
+
|
|
45
|
+
The rule fires only under a real trade-off (it must pass the
|
|
46
|
+
`no-cheap-questions` Pre-Send Self-Check). The setting tunes how aggressively:
|
|
47
|
+
|
|
48
|
+
| Value | High-confidence discrepancy | Low-confidence discrepancy |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `on` (default) | Surface + ask before proceeding. | Surface + ask (batched into the same question). |
|
|
51
|
+
| `auto` | Surface + ask. | State as an explicit assumption and proceed (no question). |
|
|
52
|
+
| `off` | No cross-source checking — legacy behavior. | No cross-source checking. |
|
|
53
|
+
|
|
54
|
+
Batching is the anti-noise mechanism: N discrepancies for one artefact become
|
|
55
|
+
one numbered-options block, never N prompts. Plain vagueness (a single unclear
|
|
56
|
+
source, no second source to compare) is **not** a discrepancy — it stays with
|
|
57
|
+
`ask-when-uncertain` so the two disciplines never double-fire on the same input.
|
|
58
|
+
|
|
59
|
+
## Worked examples
|
|
60
|
+
|
|
61
|
+
### Example 1 — text ↔ image (type a)
|
|
62
|
+
|
|
63
|
+
Ticket: *"The tile shows employees who have their birthday **today**."* Attached
|
|
64
|
+
mockup: a card with a birthday dated **two days ago**.
|
|
65
|
+
|
|
66
|
+
- Wrong: implement "today" (or implement "recent, like the mockup") and move on.
|
|
67
|
+
Both are silent guesses on a real contradiction — a violation even if the
|
|
68
|
+
chosen reading turns out correct.
|
|
69
|
+
- Right: *"The ticket text says 'today' but the mockup shows a birthday from two
|
|
70
|
+
days ago. Which is authoritative — (1) strictly today, (2) a recent window as
|
|
71
|
+
the mockup implies, (3) something else?"* Then implement the confirmed reading;
|
|
72
|
+
`design-fidelity` governs building it 1:1 afterwards.
|
|
73
|
+
|
|
74
|
+
### Example 2 — silent-but-needed (type b)
|
|
75
|
+
|
|
76
|
+
Ticket update: *"If a birthday falls on the weekend, show it on the next
|
|
77
|
+
workday."* The spec never mentions public holidays.
|
|
78
|
+
|
|
79
|
+
- Wrong: also shift birthdays that fall on a public holiday, because it is
|
|
80
|
+
"obviously" consistent with the weekend rule — a silent scope expansion.
|
|
81
|
+
- Right: *"The spec covers weekend-shifting but is silent on public holidays.
|
|
82
|
+
Should birthdays on a public holiday also shift to the next workday? (1) yes,
|
|
83
|
+
same as weekends, (2) no, holidays are out of scope, (3) only regional
|
|
84
|
+
holidays."* Obvious-to-the-agent ≠ in-scope; `scope-control` owns the
|
|
85
|
+
expansion permission.
|
|
86
|
+
|
|
87
|
+
## Precedence & subordination
|
|
88
|
+
|
|
89
|
+
| Neighbour rule | Relationship |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `ask-when-uncertain` | **Parent ask discipline.** This rule folds its discrepancy into that rule's single question. `ask-when-uncertain` fires on *missing* info; this adds *conflicting present* sources. Never a second question block. |
|
|
92
|
+
| `scope-control` | **Permission authority** for the type-(b) silent-scope-expansion. This rule surfaces the expansion; `scope-control` gates it. |
|
|
93
|
+
| `design-fidelity` | **Fires after** this rule. This rule resolves a text↔image conflict at decision time; `design-fidelity` then enforces build-time 1:1 fidelity to the resolved design. |
|
|
94
|
+
| `source-discovery` / `source-discovery-gate` | **Owns verification** for type (c). This rule surfaces the spec↔code conflict; `source-discovery` provides the evidence procedure. |
|
|
95
|
+
| `no-cheap-questions` | **Floor.** A discrepancy ask must carry a real trade-off; batch, never nag. |
|
|
96
|
+
| `active-remediation` | **Sibling shape.** Its never-silently-ignore ladder is the response model this rule applies to source discrepancies rather than code issues. |
|
|
97
|
+
|
|
98
|
+
## Failure modes
|
|
99
|
+
|
|
100
|
+
- **Silent-correct-guess.** Picking the right reading of a contradiction without
|
|
101
|
+
asking. Correct output, wrong process — still a violation.
|
|
102
|
+
- **Double-firing.** Emitting a discrepancy question AND a separate
|
|
103
|
+
`ask-when-uncertain` / `improve-before-implement` question about the same
|
|
104
|
+
underlying uncertainty. Fold into one turn's one question.
|
|
105
|
+
- **Noise creep.** Surfacing plausible re-readings as if they were hard
|
|
106
|
+
contradictions. Use the confidence tier; `auto` states low-confidence as an
|
|
107
|
+
assumption instead of asking.
|
|
108
|
+
- **Silent scope expansion.** Implementing an inferred-but-unspecified behavior
|
|
109
|
+
because it seems obvious. It is a scope decision the user owns.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Developer Judgment Guideline
|
|
2
|
+
|
|
3
|
+
When the agent should challenge, when it should ask, and when it should just execute.
|
|
4
|
+
|
|
5
|
+
## Decision table
|
|
6
|
+
|
|
7
|
+
| Situation | Agent behavior | Max delay |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| Clear, well-defined request | Execute immediately | 0 |
|
|
10
|
+
| Minor ambiguity | Ask ONE clarifying question | 10s |
|
|
11
|
+
| Request overlaps existing code | Point out existing solution | 15s |
|
|
12
|
+
| Request contradicts architecture | Challenge with evidence, propose alternative | 30s |
|
|
13
|
+
| Request is technically harmful | Warn, propose safe alternative | 30s |
|
|
14
|
+
| User insists after challenge | Execute immediately | 0 |
|
|
15
|
+
| Simple task (config, typo, docs) | Never challenge | 0 |
|
|
16
|
+
|
|
17
|
+
## What makes a good challenge
|
|
18
|
+
|
|
19
|
+
✅ **Good challenge:**
|
|
20
|
+
- References specific files or code
|
|
21
|
+
- Offers a concrete alternative
|
|
22
|
+
- Fits in 2-3 sentences
|
|
23
|
+
- Ends with numbered options
|
|
24
|
+
|
|
25
|
+
❌ **Bad challenge:**
|
|
26
|
+
- Vague ("this might be problematic")
|
|
27
|
+
- No alternative offered
|
|
28
|
+
- Long explanation before the point
|
|
29
|
+
- Blocks work without clear reason
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Good: Existing functionality
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
> ⚠️ `UserService::deactivate()` (app/Services/UserService.php:45) already handles
|
|
37
|
+
> account deactivation with email notification.
|
|
38
|
+
>
|
|
39
|
+
> 1. Extend existing method with the new parameter
|
|
40
|
+
> 2. Create separate method — I'll document the overlap
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Good: Architecture concern
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
> ⚠️ This would create a direct dependency from Module A to Module B's internals.
|
|
47
|
+
> The current pattern uses events for cross-module communication.
|
|
48
|
+
>
|
|
49
|
+
> 1. Use an event instead (follows existing pattern)
|
|
50
|
+
> 2. Add direct dependency (I'll add a note about the coupling)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Bad: Vague concern
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
> I'm not sure this is the best approach. There might be issues with this design.
|
|
57
|
+
> Should I look into alternatives?
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
→ This wastes the user's time. Either have a specific concern or don't raise one.
|
|
61
|
+
|
|
62
|
+
## Integration with rules and skills
|
|
63
|
+
|
|
64
|
+
| Component | Role |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `improve-before-implement` rule | Triggers validation on feature/architecture tasks |
|
|
67
|
+
| `validate-feature-fit` skill | Deep analysis when rule detects potential misfit |
|
|
68
|
+
| `ask-when-uncertain` rule | General uncertainty handling (complementary) |
|
|
69
|
+
| `think-before-action` rule | Analysis-first workflow (complementary) |
|
|
70
|
+
|
|
71
|
+
## The spectrum of judgment
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Silent ────────────────── Challenging ──────────────── Blocking
|
|
75
|
+
↑ ↑ ↑
|
|
76
|
+
Bug fixes Features NEVER
|
|
77
|
+
Config Architecture
|
|
78
|
+
Docs New patterns
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The agent NEVER reaches "Blocking". The right side of the spectrum is
|
|
82
|
+
"Challenge and let the user decide", never "refuse to implement".
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
demo_for: direct-answers
|
|
3
|
+
layer: pattern-memory
|
|
4
|
+
prose_delta:
|
|
5
|
+
rule_chars_before: 4098
|
|
6
|
+
rule_chars_after: 4514
|
|
7
|
+
measured_at: phase-3.3-cross-link-landing
|
|
8
|
+
note: "+416 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# direct-answers — Pattern Memory
|
|
12
|
+
|
|
13
|
+
> Wrong / right / why demos for the three Iron Laws of
|
|
14
|
+
> `direct-answers` (no flattery, no invented facts, brevity by
|
|
15
|
+
> default). Linked from
|
|
16
|
+
> [`direct-answers`](../../rules/direct-answers.md)
|
|
17
|
+
> § Examples. Outcome baseline at
|
|
18
|
+
> [`tests/golden/outcomes/direct_answers.json`](../../../tests/golden/outcomes/direct_answers.json).
|
|
19
|
+
|
|
20
|
+
## Demo 1 — Flattery opener (Iron Law 1)
|
|
21
|
+
|
|
22
|
+
### Wrong shape
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
User: Wie viele Always-Rules gibt es aktuell?
|
|
26
|
+
|
|
27
|
+
Agent: Sehr gute Frage! Das ist tatsächlich eine spannende
|
|
28
|
+
Eigenschaft des Systems. Lass mich das für dich aufschlüsseln —
|
|
29
|
+
aktuell sind es 38 Always-Rules.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Failure mode:** flattery opener, action announcement, then a long
|
|
33
|
+
run-up to a one-word answer. Iron Law 1 + Iron Law 3 violated together.
|
|
34
|
+
|
|
35
|
+
### Right shape
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
User: Wie viele Always-Rules gibt es aktuell?
|
|
39
|
+
|
|
40
|
+
Agent: 38.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Why it works
|
|
44
|
+
|
|
45
|
+
One question with one true answer = one sentence. No run-up, no
|
|
46
|
+
cushion, no "let me…". The number is the whole answer.
|
|
47
|
+
|
|
48
|
+
## Demo 2 — Hedged claim without verification (Iron Law 2)
|
|
49
|
+
|
|
50
|
+
### Wrong shape
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
User: Hat verify-before-complete ein "load_context"-Feld?
|
|
54
|
+
|
|
55
|
+
Agent: Ja, ich glaube schon — die meisten Always-Rules haben das
|
|
56
|
+
inzwischen. Sollte in der Frontmatter stehen.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Failure mode:** load-bearing project-shape claim without verify, with
|
|
60
|
+
two hedges. Iron Law 2 § Severity-tiered: project-shape claims must be
|
|
61
|
+
backed by a tool call when one suffices — and here a `view` / `grep`
|
|
62
|
+
easily suffices.
|
|
63
|
+
|
|
64
|
+
### Right shape
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
User: Hat verify-before-complete ein "load_context"-Feld?
|
|
68
|
+
|
|
69
|
+
Agent: [grept frontmatter]
|
|
70
|
+
Nein. `verify-before-complete.md` deklariert keinen load_context-
|
|
71
|
+
Eintrag (nur die anderen vier Safety-Floor-Rules tun das).
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Why it works
|
|
75
|
+
|
|
76
|
+
Tool call before the answer, then a concrete statement with reasoning.
|
|
77
|
+
If the verify cost were too high → ask, don't guess. Here a `grep`
|
|
78
|
+
costs two seconds, so a tool call is mandatory.
|
|
79
|
+
|
|
80
|
+
## Demo 3 — Post-hoc summary creep (Iron Law 3)
|
|
81
|
+
|
|
82
|
+
### Wrong shape
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
User: Wie öffne ich die VBC-Demos?
|
|
86
|
+
|
|
87
|
+
Agent: Hier der Pfad zur Datei:
|
|
88
|
+
|
|
89
|
+
`docs/guidelines/agent-infra/verify-before-complete-demos.md`
|
|
90
|
+
|
|
91
|
+
Zusammenfassend: das ist die Demo-Datei für die Iron Law des
|
|
92
|
+
verify-before-complete-Rule. Sie folgt dem wrong/right/why-Schema
|
|
93
|
+
und ist Teil der Phase 3 von road-to-context-layer-maturity.
|
|
94
|
+
Lass mich wissen, falls du Fragen dazu hast.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Failure mode:** useless summary after the answer, then a service
|
|
98
|
+
phrase. Iron Law 3: the shortest complete answer wins; restating
|
|
99
|
+
context and a closing phrase are both failure modes.
|
|
100
|
+
|
|
101
|
+
### Right shape
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
User: Wie öffne ich die VBC-Demos?
|
|
105
|
+
|
|
106
|
+
Agent: `docs/guidelines/agent-infra/verify-before-complete-demos.md`
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Why it works
|
|
110
|
+
|
|
111
|
+
The path is the whole answer. No re-frame of the question, no
|
|
112
|
+
"in summary", no offered follow-up. If the user wants more, they ask.
|
|
113
|
+
|
|
114
|
+
## Demo 4 — Functional emoji vs prose flair
|
|
115
|
+
|
|
116
|
+
### Wrong shape
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Agent: 🚀 Tests sind durch! ✨ Alle 47 grün 🎉 Bereit für den nächsten Schritt 💪
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Failure mode:** emoji as a style element, not as a functional
|
|
123
|
+
marker. § Emoji Scope allows only the whitelist (`📒` heartbeat,
|
|
124
|
+
mode marker, `❌` `✅` `⚠️` with the two-space rule, roadmap `[x]/[~]/[-]`).
|
|
125
|
+
Everything else is noise.
|
|
126
|
+
|
|
127
|
+
### Right shape
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Agent: Tests durch:
|
|
131
|
+
|
|
132
|
+
$ vendor/bin/pest -q
|
|
133
|
+
............................................... 47 passed
|
|
134
|
+
|
|
135
|
+
✅ 47/47 grün, Exit 0.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Why it works
|
|
139
|
+
|
|
140
|
+
Exactly one emoji from the whitelist (`✅` with two-space), used
|
|
141
|
+
functionally as a status marker next to the CLI output. No decoration,
|
|
142
|
+
no reaction emojis.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Domain Adoption — Gates
|
|
2
|
+
|
|
3
|
+
> The three-gate evidence contract, sunset policy, and failure-mode catalog for the `domain-adoption-policy` rule
|
|
4
|
+
|
|
5
|
+
_Origin: migrated from `src/rules/domain-adoption-policy.md` per the P4 pattern of `road-to-kernel-and-router.md`. The Iron Law and the three gate names stay in the rule; this file carries the per-gate evidence bars and procedures._
|
|
6
|
+
|
|
7
|
+
## Gate 1 — Demand signal
|
|
8
|
+
|
|
9
|
+
At least one of the following must be **true and citeable** in the roadmap:
|
|
10
|
+
|
|
11
|
+
- **≥ 2 consumer projects** in the domain. Cite repository names or
|
|
12
|
+
`agents/settings/contexts/` notes — not "I think there might be".
|
|
13
|
+
- **Named user direction with target.** A specific user ask plus a target
|
|
14
|
+
project / use case — e.g. "harvest the mobile skills for project X, due
|
|
15
|
+
next quarter". Vague *"this might be useful"* does not count.
|
|
16
|
+
- **Public-incident pull.** A reproducible incident on a consumer project
|
|
17
|
+
the domain would have prevented, captured in `agents/settings/contexts/` with
|
|
18
|
+
the missing surface area named.
|
|
19
|
+
|
|
20
|
+
If none of the three is citeable, **defer**. Open a watch-only context note
|
|
21
|
+
under `agents/settings/contexts/domain-watch/<domain>.md` listing the missing signal
|
|
22
|
+
so the next harvest can re-evaluate without re-relitigating the case.
|
|
23
|
+
|
|
24
|
+
## Gate 2 — Named maintenance owner
|
|
25
|
+
|
|
26
|
+
Domain plates rot. Pick the owner before the import, not after.
|
|
27
|
+
|
|
28
|
+
- The roadmap names a **single maintainer** (not "the team", not "TBD")
|
|
29
|
+
responsible for the domain quarterly review.
|
|
30
|
+
- The owner commits to the **refresh cadence** — quarterly review at
|
|
31
|
+
minimum, faster if the domain is volatile (mobile RN/Expo SDK,
|
|
32
|
+
ML model APIs).
|
|
33
|
+
- Each adopted artefact carries an **inline upstream-source line** with
|
|
34
|
+
SHA + last-checked timestamp so refresh is mechanical, not archaeological.
|
|
35
|
+
|
|
36
|
+
If no owner is named or no cadence is set, **defer**. An unowned domain
|
|
37
|
+
plate becomes broken authoritative-links and stale skills inside two cycles.
|
|
38
|
+
|
|
39
|
+
## Gate 3 — CI-tooling decision
|
|
40
|
+
|
|
41
|
+
Either the domain's verification tooling is validated in CI, or the suite
|
|
42
|
+
explicitly accepts platform-bound reference-only status.
|
|
43
|
+
|
|
44
|
+
- **Validated.** The CI pipeline runs the relevant linters/tests/integration
|
|
45
|
+
checks for the domain (e.g. `mobile-e2e` runners, ML model validation,
|
|
46
|
+
contract conformance) on every PR. Cost noted in the roadmap risk
|
|
47
|
+
register.
|
|
48
|
+
- **Out-of-scope (reference-only).** The domain is a platform fact the
|
|
49
|
+
suite cannot validate (iOS Simulator on non-macOS runners, GPU-bound
|
|
50
|
+
ML, hardware-bound IoT). The roadmap states this explicitly; affected
|
|
51
|
+
artefacts carry a "reference-only on \<unsupported platforms\>" header
|
|
52
|
+
so consumers do not file false-positive bugs.
|
|
53
|
+
|
|
54
|
+
If neither line is drawn, **defer**. Half-validated CI silently rots the
|
|
55
|
+
domain — green builds while the underlying tooling drifts.
|
|
56
|
+
|
|
57
|
+
## Sunset Policy stacks on top
|
|
58
|
+
|
|
59
|
+
Every domain track inherits the authoritative-link Sunset path documented
|
|
60
|
+
in any plate that imports volatile upstream content:
|
|
61
|
+
|
|
62
|
+
- Volatile content (SDK-pinned, API-pinned, tool-version-pinned) lives as
|
|
63
|
+
guideline body + SHA-pinned upstream link, not as forked scripts.
|
|
64
|
+
- Refresh trigger: quarterly cadence or earlier if a SHA-pinned link
|
|
65
|
+
404s in CI.
|
|
66
|
+
- The `check-refs` and `check-portability` linters apply unchanged.
|
|
67
|
+
|
|
68
|
+
Adopting a domain does not exempt it from any other suite-wide rule —
|
|
69
|
+
`augment-edit-discipline`, `skill-quality`, `size-enforcement`,
|
|
70
|
+
`rule-type-governance`. Every domain artefact passes the same gates as a
|
|
71
|
+
core artefact.
|
|
72
|
+
|
|
73
|
+
## Failure modes
|
|
74
|
+
|
|
75
|
+
- *"It's just one skill, not a domain."* — Audit the skill's prerequisites.
|
|
76
|
+
If it pulls in a new toolchain, simulator, language runtime, or
|
|
77
|
+
platform-specific build system, it **is** a domain entry. Run the gates.
|
|
78
|
+
- *"The upstream is well-maintained, we can just track it."* — Tracking
|
|
79
|
+
upstream means owning the diff, the breaking changes, and the migrations.
|
|
80
|
+
Tracking is maintenance work; budget for it under Gate 2 or skip the
|
|
81
|
+
adoption.
|
|
82
|
+
- *"We'll add CI later."* — Later does not arrive. Either CI is wired in
|
|
83
|
+
the same plate, or the artefacts ship with explicit reference-only
|
|
84
|
+
headers so users do not assume validated coverage.
|
|
85
|
+
- *"Council convergence is enough."* — Council informs the gates; it does
|
|
86
|
+
not replace them. A council session may surface that all three gates
|
|
87
|
+
pass; the roadmap still cites the evidence.
|
|
88
|
+
- *"Demand-signal is the user asking once."* — Single-shot interest is a
|
|
89
|
+
watch trigger, not an open trigger. Either name the target use case
|
|
90
|
+
with project + timeline, or open a watch note and wait.
|
|
91
|
+
|
|
92
|
+
## What to do when the gates fail
|
|
93
|
+
|
|
94
|
+
1. Mark the domain plate `[-] gated — <gate name> not met` in the relevant
|
|
95
|
+
roadmap. Do **not** silently shrink scope to dodge the gate.
|
|
96
|
+
2. Open a watch-only context note under `agents/settings/contexts/domain-watch/`
|
|
97
|
+
capturing what's missing — citations, owner candidates, CI feasibility.
|
|
98
|
+
3. Re-evaluate at the next harvest cycle. The note is the evidence trail
|
|
99
|
+
so the same questions are not relitigated.
|
|
100
|
+
|
|
101
|
+
## Allowed without gates
|
|
102
|
+
|
|
103
|
+
- Adding **a single skill** to an **already-opened** domain follows the
|
|
104
|
+
regular harvest plate; the gates do not re-fire per skill.
|
|
105
|
+
- Authoring a **guideline** that documents a domain the suite already
|
|
106
|
+
ships in — the domain is open, the guideline is a within-domain artefact.
|
|
107
|
+
- A **rule** that constrains an already-opened domain — within-domain.
|
|
108
|
+
|
|
109
|
+
## See also
|
|
110
|
+
|
|
111
|
+
- `domain-adoption-policy` (rule) — the Iron Law + gate names.
|
|
112
|
+
- `size-enforcement` · `rule-type-governance` · `skill-quality` — the suite-wide floors every domain artefact still passes.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Domain-eval anti-pattern — manufactured false objectivity at N=1
|
|
2
|
+
|
|
3
|
+
> A retrospective from the legal pack (council round 3). It exists so the next
|
|
4
|
+
> domain does not repeat the mistake. The short version: **do not call a
|
|
5
|
+
> self-labeled regression harness an "objective" correctness gate.**
|
|
6
|
+
|
|
7
|
+
## The anti-pattern
|
|
8
|
+
|
|
9
|
+
Gating skill ship on *"≥X% match to expert ground-truth"* and calling it "the
|
|
10
|
+
objective replacement for reviewer sign-off" — when:
|
|
11
|
+
|
|
12
|
+
1. **The ground-truth is unsourced or self-generated.** If the maintainer guesses
|
|
13
|
+
what an expert would flag, the eval measures "does the skill match the
|
|
14
|
+
maintainer's guess," i.e. reviewer subjectivity wearing a quantitative costume.
|
|
15
|
+
2. **Expert agreement is not truth.** Even an attorney-validated gold set at
|
|
16
|
+
inter-annotator agreement ≥0.7 is *inter-subjective expert consensus*, not
|
|
17
|
+
ground truth — `0.7 ≠ 1.0` admits the domain is contested ~30% of the time.
|
|
18
|
+
The honest goal is **measurement objectivity** (reliably detect change), not
|
|
19
|
+
**ground-truth objectivity** (the labels are correct).
|
|
20
|
+
3. **Model capability caps below the threshold.** Clause-extraction caps at
|
|
21
|
+
~F1 0.62; any passable threshold therefore measures "not worse than a mediocre
|
|
22
|
+
baseline," i.e. regression detection — never correctness.
|
|
23
|
+
4. **The statistical language is borrowed from infra that does not exist.**
|
|
24
|
+
Calibrating a threshold "from cross-model distributions" requires a built
|
|
25
|
+
cross-model-parity layer. Borrowing the vocabulary before the layer exists is
|
|
26
|
+
false precision.
|
|
27
|
+
|
|
28
|
+
## The honest alternative
|
|
29
|
+
|
|
30
|
+
- **Ship a regression / consistency harness.** Self-labeled fixtures, explicitly
|
|
31
|
+
marked "regression-only, not correctness, not objective." It catches "did a
|
|
32
|
+
change make a skill worse than its own baseline."
|
|
33
|
+
- **Keep correctness with the human.** Licensed-expert review on material use,
|
|
34
|
+
baked into the skill's output, not a footnote.
|
|
35
|
+
- **Make the objective eval a separate, gated track.** Attorney/expert-validated
|
|
36
|
+
gold set + inter-annotator ≥0.7 is real but expensive; gate it on **validated
|
|
37
|
+
demand + funding**, not on a phase timeline — and note it is classification, so
|
|
38
|
+
it does **not** depend on a cross-model-parity keystone.
|
|
39
|
+
|
|
40
|
+
## The false-blocker corollary
|
|
41
|
+
|
|
42
|
+
When you scope an eval, check what it *actually* depends on. The legal eval was
|
|
43
|
+
briefly gated on the cross-model-parity keystone; the full critique round showed
|
|
44
|
+
that was wrong — legal fixture matching is **classification** (clause
|
|
45
|
+
present/absent/ambiguous), not the finding-count distributions that keystone
|
|
46
|
+
calibrates. The real dependency was labeled-gold-set tooling, buildable in-pack.
|
|
47
|
+
A false structural blocker is as much an error as false objectivity.
|
|
48
|
+
|
|
49
|
+
## See also
|
|
50
|
+
|
|
51
|
+
- [ADR-107 — Legal domain-pack adoption](../../decisions/ADR-107-legal-domain-pack-adoption.md)
|
|
52
|
+
- `domain-pack-architecture.md` — the retrospective sequence this is part of.
|
|
53
|
+
- `src/domains/legal-review-prep/evals/README.md` — the regression harness in practice.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Domain-pack architecture — a retrospective observation (NOT a design driver)
|
|
2
|
+
|
|
3
|
+
> **Status: retrospective hypothesis, N=1.** This documents the sequence the
|
|
4
|
+
> **legal** pack happened to follow. It is **not** a rule and **not** a template
|
|
5
|
+
> that future packs must fit. Validate it against a *second* domain before
|
|
6
|
+
> promoting any of it to a rule or building scaffolding tooling — per
|
|
7
|
+
> `domain-adoption-policy` and the `domain-pack-extraction-when-triggered` (N=2)
|
|
8
|
+
> roadmap. Designing a new pack to fit this speculative pattern would invert the
|
|
9
|
+
> lever: build the domain correctly on its own legs, then observe whether the
|
|
10
|
+
> pattern recurred.
|
|
11
|
+
|
|
12
|
+
## The sequence legal followed
|
|
13
|
+
|
|
14
|
+
1. **Safety floor first** — a domain `*-safety-floor` rule (Iron-Law-shaped,
|
|
15
|
+
~100 lines) before any drafting skill. A drafting skill shipped before its
|
|
16
|
+
floor is the exact liability the floor prevents.
|
|
17
|
+
2. **Enforcement teeth** — the floor's machine-checkable elements become a
|
|
18
|
+
deterministic linter (`lint_legal_pack`) wired into CI. Prompt rules are not
|
|
19
|
+
governance; lint rules are. This is the differentiator vs prompt-only suites.
|
|
20
|
+
3. **Eval = regression harness, not a correctness oracle** — self-labeled
|
|
21
|
+
fixtures in the maintainer's genuine-competence sub-domain; the *objective*
|
|
22
|
+
eval (attorney-validated gold set, inter-annotator ≥0.7) is a separate,
|
|
23
|
+
demand-and-funding-gated track. See `domain-eval-anti-pattern.md`.
|
|
24
|
+
4. **Skills = procedure + output template only** — no default domain positions;
|
|
25
|
+
positions live in a practice profile, so one skill set behaves
|
|
26
|
+
team-specifically and the pack stays portable.
|
|
27
|
+
5. **Practice profile (the keystone)** — a cold-start interview writing a
|
|
28
|
+
plain-prose profile into `.agent-settings.yml` / the setup wizard; skills read
|
|
29
|
+
it and halt on unresolved placeholders.
|
|
30
|
+
6. **Deferred by default** — personas, scheduled watchers, installer hubs, and
|
|
31
|
+
broader scope are recorded as rejected/gated, not built, until evidence pulls
|
|
32
|
+
them in.
|
|
33
|
+
|
|
34
|
+
## Why it is NOT yet a rule
|
|
35
|
+
|
|
36
|
+
- **N=1.** Finance might need real-time-data evals; security might need red-team
|
|
37
|
+
evals; neither looks like "clause extraction + self-labeled fixtures." The
|
|
38
|
+
shape that fit legal may not fit them.
|
|
39
|
+
- **Premature tooling is the maintainer's enemy.** No `domain-pack:new`
|
|
40
|
+
scaffolding ships from this observation. Extraction waits for N=2, where a
|
|
41
|
+
second domain either confirms the sequence (promote to a rule) or diverges
|
|
42
|
+
(document the delta, keep both bespoke).
|
|
43
|
+
|
|
44
|
+
## What to do at N=2
|
|
45
|
+
|
|
46
|
+
Build the second domain on its own merits. *Then* compare: which steps generalised,
|
|
47
|
+
which broke. If the sequence held twice, promote it to a rule and consider
|
|
48
|
+
scaffolding. If it diverged, this note records why a one-size pattern was wrong —
|
|
49
|
+
itself a useful result.
|
|
50
|
+
|
|
51
|
+
## See also
|
|
52
|
+
|
|
53
|
+
- [Capability Boundary Matrix](../../contracts/capability-boundary.md) — per-pack safety posture (default-install / consent / council / disclaimer / eval / risk_class).
|
|
54
|
+
- [ADR-107 — Legal domain-pack adoption](../../decisions/ADR-107-legal-domain-pack-adoption.md)
|
|
55
|
+
- `domain-adoption-policy` (rule) — the three gates before opening any domain.
|
|
56
|
+
- `domain-eval-anti-pattern.md` — why the legal eval is a regression harness, not an objective gate.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Downstream-Changes Mechanics — closed-set evolution
|
|
2
|
+
|
|
3
|
+
> The procedure behind [`downstream-changes`](../../rules/downstream-changes.md)
|
|
4
|
+
> for one change class its table does not reach: a **closed set** whose member
|
|
5
|
+
> list changed. Cited by `skill:code-review` (the propagation dimension) and
|
|
6
|
+
> `skill:code-refactoring` (the reference sweep).
|
|
7
|
+
>
|
|
8
|
+
> It lives here rather than in the rule for a measured reason. Project-scope
|
|
9
|
+
> rules are a gated bucket of the per-spawn standing payload, and that payload
|
|
10
|
+
> currently measures **at** its grace ceiling
|
|
11
|
+
> (`src/config/preamble-payload-budget.json`), so the rule cannot grow by a
|
|
12
|
+
> single line without reddening `check_preamble_payload_budget`. Guidelines are
|
|
13
|
+
> an excluded bucket — read on demand, not re-sent per spawn. The obligation is
|
|
14
|
+
> therefore carried by the two skills that fire at the moment it matters, and
|
|
15
|
+
> the rule keeps its current size until a reduction lands.
|
|
16
|
+
|
|
17
|
+
## The Iron Law
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
CHANGING A MEMBER OF A CLOSED SET IS NEVER DONE WHEN THE TYPE COMPILES.
|
|
21
|
+
EVERY CONSUMER IS CLASSIFIED: EXHAUSTIVE, DELIBERATE FALLBACK, OR MISSING CASE.
|
|
22
|
+
A `default` THAT SWALLOWS THE NEW MEMBER IS A MISSING CASE WEARING A BRANCH.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Why the ordinary sweep misses it
|
|
26
|
+
|
|
27
|
+
`downstream-changes` enumerates callers, tests, imports, type definitions,
|
|
28
|
+
config bindings, routes and docs — all of which are found by searching for the
|
|
29
|
+
**identifier**. A closed set breaks that assumption: the member list changes,
|
|
30
|
+
the type still compiles, and a serializer, a badge variant, an OpenAPI schema or
|
|
31
|
+
a transition table silently keeps the old set. None of them names the type, so
|
|
32
|
+
no identifier search reaches them. This is the shotgun-surgery shape — one
|
|
33
|
+
conceptual change scattered across many small sites, where forgetting one is the
|
|
34
|
+
default outcome rather than the unlucky one.
|
|
35
|
+
|
|
36
|
+
## What counts as a closed set
|
|
37
|
+
|
|
38
|
+
PHP enums · TypeScript enums · discriminated unions · literal-union state types ·
|
|
39
|
+
Rust enums · sealed types · Python `enum` classes · DB enum and check
|
|
40
|
+
constraints · OpenAPI / JSON-Schema `enum` · state machines · role and permission
|
|
41
|
+
sets · finite component variants.
|
|
42
|
+
|
|
43
|
+
## Discover by shape, not by identifier
|
|
44
|
+
|
|
45
|
+
- the member name and its **backing value** (the wire value often differs);
|
|
46
|
+
- `match` / `switch` / if-chains over the type;
|
|
47
|
+
- `Record<Member, …>`, lookup tables and maps keyed by it;
|
|
48
|
+
- `cases()` / `values()` iteration;
|
|
49
|
+
- validators and serializers;
|
|
50
|
+
- DB constraints and migrations;
|
|
51
|
+
- API schemas;
|
|
52
|
+
- UI option sources and variant maps;
|
|
53
|
+
- translation keys;
|
|
54
|
+
- tests, factories and fixtures.
|
|
55
|
+
|
|
56
|
+
## Classify every hit — three outcomes, one defect
|
|
57
|
+
|
|
58
|
+
| Class | What it means | Action |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Exhaustive | The compiler or the data structure forces completeness (a fully-typed `Record<Member, …>`, a `match` with no default) | nothing — this is the outcome to prefer |
|
|
61
|
+
| Deliberate fallback | The fallback is part of the contract: a forward-compatible external value, a protocol unknown, a defensive boundary parse | record why, leave it |
|
|
62
|
+
| Missing case | The new member reaches code written for the old set | fix it |
|
|
63
|
+
|
|
64
|
+
**There is deliberately no blanket rule that a `default` branch is wrong.** Such
|
|
65
|
+
a rule would be refuted by every protocol parser and boundary parse in the tree.
|
|
66
|
+
What is true is sharper and easier to miss: where an exhaustiveness check exists,
|
|
67
|
+
**a `default` clause suppresses its report entirely**, so adding one to quiet the
|
|
68
|
+
check removes exactly the signal it existed to give.
|
|
69
|
+
<!-- harvest:exhaustiveness-default-clause-masks-the-check -->
|
|
70
|
+
|
|
71
|
+
Prefer the language-native guarantee over a comment. In TypeScript a
|
|
72
|
+
`Record<Member, T>` where every member needs a value fails to compile on a new
|
|
73
|
+
member, while a partially-typed string-keyed map does not. In PHP an exhaustive
|
|
74
|
+
`match` without a masking `default` throws on an unhandled case.
|
|
75
|
+
|
|
76
|
+
## Prove the sweep, do not assert it
|
|
77
|
+
|
|
78
|
+
Add a **synthetic member** to the set, confirm the checks you are relying on go
|
|
79
|
+
red, then update the consumers and confirm they go green. A sweep never seen red
|
|
80
|
+
has unknown coverage — the same sensitivity argument
|
|
81
|
+
[`downstream-changes`](../../rules/downstream-changes.md) § Verification
|
|
82
|
+
makes for tests, applied to the discovery step.
|
|
83
|
+
|
|
84
|
+
## See also
|
|
85
|
+
|
|
86
|
+
- [`downstream-changes`](../../rules/downstream-changes.md) — the rule this
|
|
87
|
+
extends; its § Defect-pattern search is the sibling-occurrence half.
|
|
88
|
+
- [`redundancy-taxonomy`](../redundancy-taxonomy.md) — the naming half: one
|
|
89
|
+
concept, several terms.
|
|
90
|
+
- [`prefer-enums-over-literals`](../../rules/prefer-enums-over-literals.md)
|
|
91
|
+
— how a closed set comes to exist in the first place.
|