@event4u/agent-config 14.23.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +144 -152
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-handoff.md +8 -7
- package/dist/agent-src/commands/agents/init.md +1 -1
- package/dist/agent-src/commands/agents/user/accept.md +4 -4
- package/dist/agent-src/commands/agents/user/delete.md +2 -2
- package/dist/agent-src/commands/agents/user/init.md +3 -3
- package/dist/agent-src/commands/agents/user/review.md +3 -3
- package/dist/agent-src/commands/agents/user/show.md +3 -3
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +6 -6
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +2 -2
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/inbox.md +5 -5
- package/dist/agent-src/commands/analyze/incident.md +3 -3
- package/dist/agent-src/commands/analyze/near-miss.md +3 -3
- package/dist/agent-src/commands/analyze/postmortem.md +4 -4
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/analyze.md +2 -2
- package/dist/agent-src/commands/bug/fix.md +1 -1
- package/dist/agent-src/commands/bug/investigate.md +2 -2
- package/dist/agent-src/commands/cost/profile.md +3 -3
- package/dist/agent-src/commands/design.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +1 -1
- package/dist/agent-src/commands/feature/plan.md +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +2 -2
- package/dist/agent-src/commands/ghostwriter/fetch.md +4 -4
- package/dist/agent-src/commands/ghostwriter/list.md +1 -1
- package/dist/agent-src/commands/ghostwriter/show.md +1 -1
- package/dist/agent-src/commands/ghostwriter/write.md +9 -9
- package/dist/agent-src/commands/humanize.md +6 -6
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/judge/solo.md +1 -1
- package/dist/agent-src/commands/judge.md +1 -1
- package/dist/agent-src/commands/knowledge/cross-repo.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +2 -2
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/add.md +3 -3
- package/dist/agent-src/commands/memory/load.md +4 -4
- package/dist/agent-src/commands/memory/mine-session.md +1 -1
- package/dist/agent-src/commands/memory/promote.md +4 -4
- package/dist/agent-src/commands/memory/propose.md +2 -2
- package/dist/agent-src/commands/mode.md +5 -5
- package/dist/agent-src/commands/post-as/ghostwriter.md +3 -3
- package/dist/agent-src/commands/post-as/me.md +7 -7
- package/dist/agent-src/commands/pr/create.md +1 -1
- package/dist/agent-src/commands/pr/merge.md +1 -1
- package/dist/agent-src/commands/profile/activate.md +1 -1
- package/dist/agent-src/commands/profile/show.md +1 -1
- package/dist/agent-src/commands/research/deep.md +2 -2
- package/dist/agent-src/commands/research/report.md +2 -2
- package/dist/agent-src/commands/review/changes.md +1 -1
- package/dist/agent-src/commands/review/routing.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +4 -3
- package/dist/agent-src/commands/roadmap/materialize.md +2 -2
- package/dist/agent-src/commands/roadmap/next.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +2 -2
- package/dist/agent-src/commands/security-audit-config.md +3 -3
- package/dist/agent-src/commands/skill/preview.md +1 -1
- package/dist/agent-src/commands/skills/discover.md +1 -1
- package/dist/agent-src/commands/sync/agent-settings.md +2 -2
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tests/create.md +1 -1
- package/dist/agent-src/commands/tests/e2e-heal.md +1 -1
- package/dist/agent-src/commands/tests/e2e-plan.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +6 -6
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -2
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +88 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +51 -1
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -1
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +1 -1
- package/dist/agent-src/contexts/execution/cheap-question-mechanics.md +1 -1
- package/dist/agent-src/contexts/execution/contract-decision-sheet.md +3 -3
- package/dist/agent-src/contexts/execution/mandated-lines.md +1 -1
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +1 -1
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -1
- package/dist/agent-src/contexts/execution/plan-confidence-gate.md +5 -5
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +1 -1
- package/dist/agent-src/contexts/execution/subagent-routing.md +2 -2
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +3 -3
- package/dist/agent-src/contexts/execution/verification-mechanics.md +1 -1
- package/dist/agent-src/contexts/judges/persona-voice-rubric.md +2 -2
- package/dist/agent-src/guidelines/abstraction-thresholds.md +88 -0
- package/dist/agent-src/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +99 -0
- package/dist/agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +325 -0
- package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +222 -0
- package/dist/agent-src/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/asking-and-brevity-examples.md +198 -0
- package/dist/agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
- package/dist/agent-src/guidelines/agent-infra/carve-out-predicates.md +17 -0
- package/dist/agent-src/guidelines/agent-infra/comparison-matrix.md +179 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +165 -0
- package/dist/agent-src/guidelines/agent-infra/corpus-grounding-authoring.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/critical-thinking.md +156 -0
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
- package/dist/agent-src/guidelines/agent-infra/direct-answers-demos.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/domain-adoption-gates.md +112 -0
- package/dist/agent-src/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
- package/dist/agent-src/guidelines/agent-infra/domain-pack-architecture.md +56 -0
- package/dist/agent-src/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
- package/dist/agent-src/guidelines/agent-infra/emphasis-budget.md +45 -0
- package/dist/agent-src/guidelines/agent-infra/engineering-memory-data-format.md +210 -0
- package/dist/agent-src/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/dist/agent-src/guidelines/agent-infra/existence-question-verdicts.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/failure-signatures.md +70 -0
- package/dist/agent-src/guidelines/agent-infra/false-green.md +233 -0
- package/dist/agent-src/guidelines/agent-infra/first-principles.md +192 -0
- package/dist/agent-src/guidelines/agent-infra/framework-neutrality-patterns.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +169 -0
- package/dist/agent-src/guidelines/agent-infra/gate-authoring.md +177 -0
- package/dist/agent-src/guidelines/agent-infra/guarded-baseline.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/installed-tools-manifest.md +142 -0
- package/dist/agent-src/guidelines/agent-infra/inversion-thinking.md +388 -0
- package/dist/agent-src/guidelines/agent-infra/ios-simulator-guide.md +378 -0
- package/dist/agent-src/guidelines/agent-infra/language-and-tone-examples.md +141 -0
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +317 -0
- package/dist/agent-src/guidelines/agent-infra/linked-projects-onboarding-gate.md +80 -0
- package/dist/agent-src/guidelines/agent-infra/mcp-request-signing.md +197 -0
- package/dist/agent-src/guidelines/agent-infra/memory-access.md +149 -0
- package/dist/agent-src/guidelines/agent-infra/mental-models.md +314 -0
- package/dist/agent-src/guidelines/agent-infra/minimal-safe-diff-mechanics.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/missing-tool-handling.md +66 -0
- package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +101 -0
- package/dist/agent-src/guidelines/agent-infra/naming.md +69 -0
- package/dist/agent-src/guidelines/agent-infra/notes-horizon-mechanics.md +90 -0
- package/dist/agent-src/guidelines/agent-infra/output-patterns.md +117 -0
- package/dist/agent-src/guidelines/agent-infra/recurring-criticism-mechanics.md +96 -0
- package/dist/agent-src/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
- package/dist/agent-src/guidelines/agent-infra/review-routing-data-format.md +143 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +274 -0
- package/dist/agent-src/guidelines/agent-infra/role-contracts.md +209 -0
- package/dist/agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +241 -0
- package/dist/agent-src/guidelines/agent-infra/rule-type-governance.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
- package/dist/agent-src/guidelines/agent-infra/scqa-framework.md +526 -0
- package/dist/agent-src/guidelines/agent-infra/security-lint-containment.md +121 -0
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +134 -0
- package/dist/agent-src/guidelines/agent-infra/simplicity-and-goal-demos.md +211 -0
- package/dist/agent-src/guidelines/agent-infra/six-hats.md +353 -0
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +229 -0
- package/dist/agent-src/guidelines/agent-infra/skill-quality-checklist.md +157 -0
- package/dist/agent-src/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
- package/dist/agent-src/guidelines/agent-infra/symptom-driven-harvest-loop.md +104 -0
- package/dist/agent-src/guidelines/agent-infra/systems-thinking.md +220 -0
- package/dist/agent-src/guidelines/agent-infra/tool-description-as-policy.md +35 -0
- package/dist/agent-src/guidelines/agent-infra/tool-integration.md +73 -0
- package/dist/agent-src/guidelines/agent-infra/traceability-field-mechanics.md +50 -0
- package/dist/agent-src/guidelines/agent-infra/untrusted-input-spotlighting.md +166 -0
- package/dist/agent-src/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
- package/dist/agent-src/guidelines/augment-portability-patterns.md +70 -0
- package/dist/agent-src/guidelines/code-clarity.md +350 -0
- package/dist/agent-src/guidelines/component-oriented-and-oop-development.md +189 -0
- package/dist/agent-src/guidelines/cross-role-handoff.md +127 -0
- package/dist/agent-src/guidelines/design-antipatterns-triggers.json +18 -0
- package/dist/agent-src/guidelines/design-antipatterns.md +327 -0
- package/dist/agent-src/guidelines/design-asset-discipline.md +38 -0
- package/dist/agent-src/guidelines/design-canon.md +63 -0
- package/dist/agent-src/guidelines/design-fidelity-mechanics.md +293 -0
- package/dist/agent-src/guidelines/design-fidelity-routing.md +78 -0
- package/dist/agent-src/guidelines/design-handover-extraction.md +117 -0
- package/dist/agent-src/guidelines/design-modes.md +143 -0
- package/dist/agent-src/guidelines/design-reconciliation.md +172 -0
- package/dist/agent-src/guidelines/docs/readme-size-and-splitting.md +209 -0
- package/dist/agent-src/guidelines/e2e/playwright.md +363 -0
- package/dist/agent-src/guidelines/gtm-handoff.md +114 -0
- package/dist/agent-src/guidelines/monorepo-antipatterns.md +141 -0
- package/dist/agent-src/guidelines/php/api-design.md +115 -0
- package/dist/agent-src/guidelines/php/artisan-commands.md +81 -0
- package/dist/agent-src/guidelines/php/blade-ui.md +78 -0
- package/dist/agent-src/guidelines/php/controllers.md +90 -0
- package/dist/agent-src/guidelines/php/database.md +194 -0
- package/dist/agent-src/guidelines/php/eloquent.md +208 -0
- package/dist/agent-src/guidelines/php/flux.md +80 -0
- package/dist/agent-src/guidelines/php/general.md +207 -0
- package/dist/agent-src/guidelines/php/git.md +164 -0
- package/dist/agent-src/guidelines/php/jobs.md +111 -0
- package/dist/agent-src/guidelines/php/livewire.md +71 -0
- package/dist/agent-src/guidelines/php/logging.md +79 -0
- package/dist/agent-src/guidelines/php/naming.md +89 -0
- package/dist/agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
- package/dist/agent-src/guidelines/php/patterns/dtos.md +199 -0
- package/dist/agent-src/guidelines/php/patterns/events.md +67 -0
- package/dist/agent-src/guidelines/php/patterns/factory.md +53 -0
- package/dist/agent-src/guidelines/php/patterns/pipelines.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/policies.md +66 -0
- package/dist/agent-src/guidelines/php/patterns/repositories.md +122 -0
- package/dist/agent-src/guidelines/php/patterns/service-layer.md +64 -0
- package/dist/agent-src/guidelines/php/patterns/strategy.md +247 -0
- package/dist/agent-src/guidelines/php/patterns.md +28 -0
- package/dist/agent-src/guidelines/php/performance.md +92 -0
- package/dist/agent-src/guidelines/php/php-coding-patterns.md +80 -0
- package/dist/agent-src/guidelines/php/resources.md +100 -0
- package/dist/agent-src/guidelines/php/security.md +110 -0
- package/dist/agent-src/guidelines/php/sql.md +97 -0
- package/dist/agent-src/guidelines/php/validations.md +119 -0
- package/dist/agent-src/guidelines/php/websocket.md +100 -0
- package/dist/agent-src/guidelines/prompt-templates.md +189 -0
- package/dist/agent-src/guidelines/redundancy-taxonomy.md +208 -0
- package/dist/agent-src/guidelines/wing4-handoff.md +127 -0
- package/dist/agent-src/personas/README.md +1 -1
- package/dist/agent-src/personas/_template-specialist/persona.md +1 -1
- package/dist/agent-src/personas/product-owner.md +1 -1
- package/dist/agent-src/rules/active-remediation.md +1 -1
- package/dist/agent-src/rules/architecture.md +2 -2
- package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/dist/agent-src/rules/ask-when-uncertain.md +2 -2
- package/dist/agent-src/rules/brand-source-of-truth.md +9 -7
- package/dist/agent-src/rules/code-comment-discipline.md +2 -2
- package/dist/agent-src/rules/code-provenance.md +1 -1
- package/dist/agent-src/rules/content-quoting-floor.md +1 -1
- package/dist/agent-src/rules/context-hygiene.md +5 -5
- package/dist/agent-src/rules/cross-source-consistency.md +1 -1
- package/dist/agent-src/rules/design-fidelity.md +36 -46
- package/dist/agent-src/rules/direct-answers.md +2 -2
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/icon-consistency.md +5 -1
- package/dist/agent-src/rules/improve-before-implement.md +1 -1
- package/dist/agent-src/rules/language-and-tone.md +3 -3
- package/dist/agent-src/rules/minimal-safe-diff.md +1 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +2 -2
- package/dist/agent-src/rules/recurring-criticism.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
- package/dist/agent-src/rules/role-mode-adherence.md +2 -2
- package/dist/agent-src/rules/security-sensitive-stop.md +1 -1
- package/dist/agent-src/rules/size-enforcement.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +2 -2
- package/dist/agent-src/rules/think-before-action.md +1 -1
- package/dist/agent-src/rules/token-efficiency.md +7 -5
- package/dist/agent-src/rules/ui-audit-gate.md +3 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -3
- package/dist/agent-src/rules/user-interaction.md +31 -30
- package/dist/agent-src/skills/activation-design/SKILL.md +2 -2
- package/dist/agent-src/skills/adr-create/SKILL.md +5 -5
- package/dist/agent-src/skills/ai-council/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +1 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +24 -3
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -1
- package/dist/agent-src/skills/churn-prevention/SKILL.md +2 -2
- package/dist/agent-src/skills/code-refactoring/SKILL.md +3 -3
- package/dist/agent-src/skills/code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
- package/dist/agent-src/skills/comp-banding/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-moat-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -2
- package/dist/agent-src/skills/contracts-cognition/SKILL.md +1 -1
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +2 -2
- package/dist/agent-src/skills/customer-research/SKILL.md +2 -2
- package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
- package/dist/agent-src/skills/data-handling-judgment/SKILL.md +1 -1
- package/dist/agent-src/skills/deal-qualification-meddic/SKILL.md +2 -2
- package/dist/agent-src/skills/decision-record/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-review/SKILL.md +8 -8
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +22 -22
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +2 -2
- package/dist/agent-src/skills/design-review/SKILL.md +4 -4
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +17 -2
- package/dist/agent-src/skills/design-variations/SKILL.md +2 -2
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/dist/agent-src/skills/discovery-interview/SKILL.md +2 -2
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +3 -3
- package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +9 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +44 -1
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +2 -2
- package/dist/agent-src/skills/expansion-playbook/SKILL.md +2 -2
- package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/experiment-loop/references/protocol.md +1 -1
- package/dist/agent-src/skills/fe-design/SKILL.md +3 -3
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +1 -1
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +3 -3
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/forecast-accuracy/SKILL.md +2 -2
- package/dist/agent-src/skills/forecasting/SKILL.md +2 -2
- package/dist/agent-src/skills/fundraising-narrative/SKILL.md +2 -2
- package/dist/agent-src/skills/funnel-analysis/SKILL.md +2 -2
- package/dist/agent-src/skills/gtm-launch/SKILL.md +2 -2
- package/dist/agent-src/skills/hiring-loop-design/SKILL.md +1 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +5 -5
- package/dist/agent-src/skills/humanizer/SKILL.md +1 -1
- package/dist/agent-src/skills/humanizer/data/patterns.md +1 -1
- package/dist/agent-src/skills/iconography/SKILL.md +3 -3
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +3 -3
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +6 -6
- package/dist/agent-src/skills/livewire/SKILL.md +1 -1
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/mcp-builder/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +3 -3
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +2 -2
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/onboarding-design/SKILL.md +2 -2
- package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
- package/dist/agent-src/skills/one-on-one-cadence/SKILL.md +1 -1
- package/dist/agent-src/skills/org-design/SKILL.md +1 -1
- package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +3 -3
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
- package/dist/agent-src/skills/persona-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/php-coder/SKILL.md +1 -1
- package/dist/agent-src/skills/pipeline-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -3
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/positioning-strategy/SKILL.md +2 -2
- package/dist/agent-src/skills/privacy-review/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +3 -3
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +2 -2
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/release-comms/SKILL.md +2 -2
- package/dist/agent-src/skills/retention-loops/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +1 -1
- package/dist/agent-src/skills/roadmap-management/references/archival.md +1 -1
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +5 -5
- package/dist/agent-src/skills/rule-writing/SKILL.md +6 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +2 -2
- package/dist/agent-src/skills/scenario-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-writing/references/procedure.md +1 -1
- package/dist/agent-src/skills/skill-writing/references/section-patterns.md +3 -3
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +1 -1
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +11 -5
- package/dist/agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +1 -1
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +28 -8
- package/dist/agent-src/skills/unit-economics-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/skills/vision-articulation/SKILL.md +1 -1
- package/dist/agent-src/skills/voc-extract/SKILL.md +2 -2
- package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +1 -1
- package/dist/agent-src/skills/workspace-link/SKILL.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +6 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +2 -3
- package/dist/agent-src/templates/copilot-instructions.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +2 -2
- package/dist/agent-src/user-types/_template/user-type.md +1 -1
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/{chunk-NLP54U3J.js → chunk-2XY7ILBT.js} +13 -1
- package/dist/cli-delegate/{chunk-IAI3XL43.js → chunk-3FKR64R5.js} +22 -6
- package/dist/cli-delegate/{chunk-J3RFNKG4.js → chunk-55ACLDUE.js} +2 -2
- package/dist/cli-delegate/{chunk-PKOBQADP.js → chunk-57PN4GYJ.js} +1 -1
- package/dist/cli-delegate/{chunk-KCNTUSPI.js → chunk-AK6HODNQ.js} +4 -4
- package/dist/cli-delegate/{chunk-2FTMENJL.js → chunk-GYC3VRYN.js} +1 -1
- package/dist/cli-delegate/{chunk-LWTYTX6F.js → chunk-H32DGUJH.js} +15 -84
- package/dist/cli-delegate/{chunk-6RJA2F5A.js → chunk-IVBPRCQO.js} +1 -1
- package/dist/cli-delegate/chunk-NUHLI2RX.js +80 -0
- package/dist/cli-delegate/{chunk-TYSY33MD.js → chunk-QJWAUMJW.js} +12 -2
- package/dist/cli-delegate/{chunk-2KKXJW25.js → chunk-S3VFXMTM.js} +1 -1
- package/dist/cli-delegate/{chunk-I6RHFQEG.js → chunk-YUM5KURG.js} +17 -1
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +834 -275
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_explain.js +5 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +6 -6
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +3 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +3 -3
- package/dist/cli-delegate/cmd_route_explain.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +3 -3
- package/dist/cli-delegate/cmd_settings_get.js +15 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +54 -11
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +25 -78
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +5 -7
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +4 -6
- package/dist/hooks/dispatch.js +9684 -9304
- package/dist/install/install.mjs +36 -8
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2147 -1470
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +73 -0
- package/dist/scripts/_lib/agent_src.js +20 -0
- package/dist/scripts/_lib/guidelines_lane.js +158 -0
- package/dist/scripts/_lib/installed_lock.js +1 -1
- package/dist/scripts/condense.js +2 -5
- package/dist/server/io/yamlIO.js +175 -17
- package/dist/server/schemas/settings.js +18 -4
- package/dist/shared/settingsSurface.js +6 -1
- package/docs/contracts/settings-classes.md +18 -9
- package/docs/guidelines/abstraction-thresholds.md +35 -0
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +3 -3
- package/docs/guidelines/agent-infra/false-green.md +2 -2
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +1 -1
- package/docs/guidelines/design-fidelity-mechanics.md +4 -0
- package/docs/guidelines/design-fidelity-routing.md +78 -0
- package/docs/guidelines/design-reconciliation.md +172 -0
- package/docs/guidelines/gtm-handoff.md +2 -2
- package/docs/guidelines/wing4-handoff.md +2 -2
- package/package.json +7 -3
- package/src/config/agent-settings.template.yml +55 -8
- package/src/config/ci-local-parity.yml +34 -0
- package/src/config/continuity-surface.json +11 -32
- package/src/config/gate-coverage.yml +31 -8
- package/src/config/gate-reachability-exemptions.json +1 -0
- package/src/config/gate-violation-baselines.json +3 -3
- package/src/config/hook-token-budget.json +1 -1
- package/src/config/host-injection-effect.json +2 -2
- package/src/config/pack-size-budget.json +55 -4
- package/src/config/platform-anchor.json +47 -0
- package/src/config/preamble-payload-budget.json +12 -8
- package/src/config/preamble-payload-exceptions.json +28 -0
- package/src/config/publish-surface.json +4 -2
- package/src/config/ratification-policy.json +7 -0
- package/src/config/rule-stub-ceilings.json +16 -9
- package/src/scripts/_cli/cmd_settings_get.ts +22 -7
- package/src/scripts/_dispatch.bash +3 -1
- package/src/scripts/_lib/agent_settings.ts +85 -0
- package/src/scripts/_lib/agent_src.ts +21 -0
- package/src/scripts/_lib/artifact_maturity.ts +242 -0
- package/src/scripts/_lib/base_ref_payload.ts +315 -0
- package/src/scripts/_lib/conformance_report.ts +403 -0
- package/src/scripts/_lib/continuity_writer.ts +72 -13
- package/src/scripts/_lib/design_system_import.ts +20 -0
- package/src/scripts/_lib/design_tolerance.ts +281 -0
- package/src/scripts/_lib/dropped_decision.ts +142 -0
- package/src/scripts/_lib/guidelines_lane.ts +164 -0
- package/src/scripts/_lib/installed_lock.ts +1 -1
- package/src/scripts/_lib/measured_payload_ceiling.ts +424 -0
- package/src/scripts/_lib/obligation_frequency.ts +2 -3
- package/src/scripts/_lib/payload_catalogue_completeness.ts +211 -0
- package/src/scripts/_lib/platform_anchor.ts +1053 -0
- package/src/scripts/_lib/ratification_artifact.ts +278 -0
- package/src/scripts/_lib/release_findings_ingest.ts +324 -0
- package/src/scripts/_lib/release_tag_dispatch.ts +63 -0
- package/src/scripts/_lib/review_baseline.ts +254 -0
- package/src/scripts/_lib/review_skipped_record.ts +61 -1
- package/src/scripts/_lib/security_lint.ts +23 -2
- package/src/scripts/_lib/self_repair.ts +21 -0
- package/src/scripts/_lib/session_index_trust.ts +42 -1
- package/src/scripts/_lib/standing_bound_ratchet.ts +267 -88
- package/src/scripts/_lib/tolerance_shadow.ts +177 -0
- package/src/scripts/_lib/turn_end_refusals.ts +51 -4
- package/src/scripts/ai_council/redact_low_impact_entry.ts +8 -0
- package/src/scripts/autonomy_friction_traffic.ts +379 -0
- package/src/scripts/check_beta_review_markers.ts +35 -4
- package/src/scripts/check_finding_dispositions.ts +167 -16
- package/src/scripts/check_held_object_arrivals.ts +381 -0
- package/src/scripts/check_kernel_edit_ratified.ts +462 -0
- package/src/scripts/check_loss_class_declared.ts +793 -46
- package/src/scripts/check_platform_anchor.ts +390 -0
- package/src/scripts/check_preamble_payload_budget.ts +672 -107
- package/src/scripts/check_projected_rule_routes.ts +395 -0
- package/src/scripts/check_release_published.ts +1 -1
- package/src/scripts/check_reply_consistency.ts +86 -17
- package/src/scripts/code_graph/cli.ts +6 -0
- package/src/scripts/condense.ts +2 -6
- package/src/scripts/generate_host_cost_table.ts +354 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +74 -30
- package/src/scripts/hooks/block_kernel_rule_writes.ts +12 -2
- package/src/scripts/hooks/category_a.ts +1 -1
- package/src/scripts/hooks/chain_nudge_hook.ts +311 -25
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/end_review_nudge_hook.ts +101 -21
- package/src/scripts/hooks/review_baseline_hook.ts +130 -0
- package/src/scripts/hooks/session_eol_hook.ts +68 -154
- package/src/scripts/hooks/source_first_gate_hook.ts +12 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +232 -14
- package/src/scripts/hooks/ui_route_nudge_hook.ts +52 -15
- package/src/scripts/hooks_doctor.ts +4 -1
- package/src/scripts/hot_context_hook.ts +41 -401
- package/src/scripts/install.ts +1 -1
- package/src/scripts/interruption_report.ts +8 -2
- package/src/scripts/janitor.ts +8 -1
- package/src/scripts/lint_evidence_artifacts.ts +1 -0
- package/src/scripts/lint_knowledge_scale.ts +0 -26
- package/src/scripts/measure_turn_end_gate.ts +302 -5
- package/src/scripts/memory_lookup.ts +9 -9
- package/src/scripts/release.ts +52 -64
- package/src/scripts/release_drill.ts +193 -14
- package/src/scripts/release_env.ts +1 -1
- package/src/scripts/release_publication.ts +1 -1
- package/src/scripts/report_held_object_arrivals.ts +456 -0
- package/src/scripts/report_standing_payload_by_host.ts +7 -7
- package/src/scripts/session_memory_index.ts +5 -0
- package/src/scripts/sync_agent_settings.ts +394 -12
- package/src/server/io/yamlIO.ts +175 -17
- package/src/server/schemas/settings.ts +25 -5
- package/src/shared/settingsSurface.ts +13 -2
- package/src/templates/compact-instructions.md +8 -3
- package/dist/agent-src/commands/chat-history/import.md +0 -170
- package/dist/agent-src/commands/chat-history.md +0 -63
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# 5W2H Analysis
|
|
2
|
+
|
|
3
|
+
Reference guideline for Wing-1 deep-thinking work — the 5W2H systematic
|
|
4
|
+
questioning method (What · Why · Who · When · Where · How · How-much) for
|
|
5
|
+
comprehensive understanding of any topic, problem, or plan. Adopted under
|
|
6
|
+
the **Reference-Guideline Sunset Policy** (see frontmatter `upstream` /
|
|
7
|
+
`refresh_trigger` keys) and cross-referenced from:
|
|
8
|
+
|
|
9
|
+
- [`deep-reading-analyst`](../../skills/deep-reading-analyst/SKILL.md)
|
|
10
|
+
— L1 Quick analysis depth.
|
|
11
|
+
- [`refine-ticket`](../../skills/refine-ticket/SKILL.md)
|
|
12
|
+
— completeness check on a Jira / Linear ticket before estimation.
|
|
13
|
+
- [`bug-investigate`](../../../src/domains/engineering-base/bug/investigate/command.md)
|
|
14
|
+
— gap analysis on an incident report before forming a hypothesis.
|
|
15
|
+
|
|
16
|
+
> **Core principle:** "Quality of decisions equals quality of questions
|
|
17
|
+
> asked." — 5W2H captures essence in seven dimensions.
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
Ideal for:
|
|
22
|
+
|
|
23
|
+
- 📋 Quickly understanding complete article information
|
|
24
|
+
- 🔍 Discovering information gaps and omissions
|
|
25
|
+
- 📊 Evaluating plan feasibility
|
|
26
|
+
- 💼 Analyzing business cases and proposals
|
|
27
|
+
- 📝 Organizing complex information
|
|
28
|
+
- ✅ Verifying information completeness
|
|
29
|
+
|
|
30
|
+
Do **not** use when the user wants depth on a single dimension (use
|
|
31
|
+
[`mental-models`](mental-models.md)) or pre-mortem on failure paths
|
|
32
|
+
(use [`inversion-thinking`](inversion-thinking.md)).
|
|
33
|
+
|
|
34
|
+
## The 7 Questions in Detail
|
|
35
|
+
|
|
36
|
+
### W1: What (Content)
|
|
37
|
+
|
|
38
|
+
**Core questions:**
|
|
39
|
+
|
|
40
|
+
1. What is the main topic?
|
|
41
|
+
2. What are the key claims / conclusions?
|
|
42
|
+
3. What solutions are proposed?
|
|
43
|
+
4. What core concepts are involved?
|
|
44
|
+
5. What are the expected outcomes?
|
|
45
|
+
|
|
46
|
+
**Deep inquiry:** What is the real problem? What is missing? What
|
|
47
|
+
could go wrong? What are the alternatives?
|
|
48
|
+
|
|
49
|
+
### W2: Why (Reasons)
|
|
50
|
+
|
|
51
|
+
**Core questions:**
|
|
52
|
+
|
|
53
|
+
1. Why discuss this topic now?
|
|
54
|
+
2. Why is this solution effective?
|
|
55
|
+
3. Why not choose other approaches?
|
|
56
|
+
4. Why should the audience care?
|
|
57
|
+
5. Why this timing?
|
|
58
|
+
|
|
59
|
+
**Five Whys technique** — ask "why" five times to reach root cause:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Problem: [Surface issue]
|
|
63
|
+
→ Why 1: [First layer]
|
|
64
|
+
→ Why 2: [Second layer]
|
|
65
|
+
→ Why 3: [Third layer]
|
|
66
|
+
→ Why 4: [Fourth layer]
|
|
67
|
+
→ Why 5: [Root cause] ← Real issue
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### W3: Who (People)
|
|
71
|
+
|
|
72
|
+
**Core questions:**
|
|
73
|
+
|
|
74
|
+
1. Who is the target audience?
|
|
75
|
+
2. Who are the stakeholders?
|
|
76
|
+
3. Who is responsible for execution?
|
|
77
|
+
4. Who benefits? Who loses?
|
|
78
|
+
5. Whose expertise / cases are cited?
|
|
79
|
+
6. Who is the author? (potential biases?)
|
|
80
|
+
|
|
81
|
+
**Deep analysis:** stakeholder mapping · decision-makers vs. executors
|
|
82
|
+
· who has veto power.
|
|
83
|
+
|
|
84
|
+
### W4: When (Timing)
|
|
85
|
+
|
|
86
|
+
**Core questions:**
|
|
87
|
+
|
|
88
|
+
1. When to start?
|
|
89
|
+
2. What is the timeline / schedule?
|
|
90
|
+
3. When will results appear?
|
|
91
|
+
4. How time-sensitive is this?
|
|
92
|
+
5. When are key decisions needed?
|
|
93
|
+
6. What is the historical context?
|
|
94
|
+
|
|
95
|
+
**Time-trap identification:** unrealistic time expectations · missing
|
|
96
|
+
key milestones · buffer time considered.
|
|
97
|
+
|
|
98
|
+
### W5: Where (Context)
|
|
99
|
+
|
|
100
|
+
**Core questions:**
|
|
101
|
+
|
|
102
|
+
1. Where does this apply? (geography, industry, organization)
|
|
103
|
+
2. Where is execution happening?
|
|
104
|
+
3. Where to get resources?
|
|
105
|
+
4. What are the limitations / constraints?
|
|
106
|
+
5. What is the scope of impact?
|
|
107
|
+
|
|
108
|
+
**Context dependency:** does it work in different environments? ·
|
|
109
|
+
cultural differences · scale considerations.
|
|
110
|
+
|
|
111
|
+
### H1: How (Methods)
|
|
112
|
+
|
|
113
|
+
**Core questions:**
|
|
114
|
+
|
|
115
|
+
1. What are the specific steps?
|
|
116
|
+
2. What tools / methods are used?
|
|
117
|
+
3. How to measure progress?
|
|
118
|
+
4. How to handle obstacles?
|
|
119
|
+
5. How to ensure quality?
|
|
120
|
+
6. How to get started?
|
|
121
|
+
|
|
122
|
+
**Process mapping:**
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
[Start] → [Step 1] → [Decision Point]
|
|
126
|
+
↓ Yes / ↓ No
|
|
127
|
+
[Step 2A] [Step 2B]
|
|
128
|
+
↓ ↓
|
|
129
|
+
[Step 3] ← [Converge]
|
|
130
|
+
↓
|
|
131
|
+
[End]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### H2: How Much (Metrics)
|
|
135
|
+
|
|
136
|
+
**Core questions:**
|
|
137
|
+
|
|
138
|
+
1. What is the cost? (money, time, opportunity, learning)
|
|
139
|
+
2. How many resources needed?
|
|
140
|
+
3. What is the expected ROI?
|
|
141
|
+
4. What is the scale / magnitude?
|
|
142
|
+
5. How big are the risks?
|
|
143
|
+
6. What are the target metrics?
|
|
144
|
+
|
|
145
|
+
**ROI analysis:**
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Investment:
|
|
149
|
+
- Direct costs: [$]
|
|
150
|
+
- Indirect costs: [$]
|
|
151
|
+
- Total: [$]
|
|
152
|
+
|
|
153
|
+
Returns:
|
|
154
|
+
- Expected benefit: [$]
|
|
155
|
+
- Timeframe: [X months]
|
|
156
|
+
- ROI = (Benefit - Cost) / Cost × 100%
|
|
157
|
+
|
|
158
|
+
Worth it?: [Yes / No]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Complete Analysis Template
|
|
162
|
+
|
|
163
|
+
### Quick version (15 min)
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
# 5W2H Quick Analysis: [Article Title]
|
|
167
|
+
|
|
168
|
+
**What**: [One-line topic and solution]
|
|
169
|
+
**Why**: [Core motivation and value]
|
|
170
|
+
**Who**: [Target audience and executors]
|
|
171
|
+
**When**: [Timeline and urgency]
|
|
172
|
+
**Where**: [Applicability and context]
|
|
173
|
+
**How**: [Key steps (3–5)]
|
|
174
|
+
**How much**: [Main costs and expected returns]
|
|
175
|
+
|
|
176
|
+
## Gap Analysis
|
|
177
|
+
|
|
178
|
+
Missing information: [List unanswered questions from 5W2H]
|
|
179
|
+
Key risks: [Risks based on missing info]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Deep version (60 min)
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
# 5W2H Deep Analysis: [Article Title]
|
|
186
|
+
|
|
187
|
+
## 📋 What — Content Analysis
|
|
188
|
+
[Detailed breakdown…]
|
|
189
|
+
|
|
190
|
+
## 🎯 Why — Reason Analysis
|
|
191
|
+
[Detailed breakdown…]
|
|
192
|
+
[Five Whys analysis]
|
|
193
|
+
|
|
194
|
+
## 👥 Who — People Analysis
|
|
195
|
+
[Detailed breakdown…]
|
|
196
|
+
[Stakeholder map]
|
|
197
|
+
|
|
198
|
+
## ⏰ When — Time Analysis
|
|
199
|
+
[Detailed breakdown…]
|
|
200
|
+
[Timeline visualization]
|
|
201
|
+
|
|
202
|
+
## 🌍 Where — Context Analysis
|
|
203
|
+
[Detailed breakdown…]
|
|
204
|
+
[Applicability matrix]
|
|
205
|
+
|
|
206
|
+
## 🔧 How — Method Analysis
|
|
207
|
+
[Detailed breakdown…]
|
|
208
|
+
[Process flowchart]
|
|
209
|
+
|
|
210
|
+
## 💰 How Much — Cost-Benefit Analysis
|
|
211
|
+
[Detailed breakdown…]
|
|
212
|
+
[ROI calculation]
|
|
213
|
+
|
|
214
|
+
## 📊 Overall Assessment
|
|
215
|
+
|
|
216
|
+
### Information completeness
|
|
217
|
+
- ✅ Clearly answered: [X / 7]
|
|
218
|
+
- ⚠️ Partially answered: [List]
|
|
219
|
+
- ❌ Completely missing: [List]
|
|
220
|
+
|
|
221
|
+
### Feasibility score
|
|
222
|
+
Based on 5W2H completeness: [X / 10]
|
|
223
|
+
|
|
224
|
+
### Risk level
|
|
225
|
+
Based on missing info: [High / Medium / Low]
|
|
226
|
+
|
|
227
|
+
### Action recommendations
|
|
228
|
+
1. [Specific recommendation based on analysis]
|
|
229
|
+
2. [Information needed to supplement]
|
|
230
|
+
3. [Priority actions to take]
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Integration with Other Frameworks
|
|
234
|
+
|
|
235
|
+
### + Critical Thinking
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
5W2H → Identify missing information
|
|
239
|
+
Critical Thinking → Evaluate quality of existing information
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### + SCQA
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
SCQA → Understand problem framework
|
|
246
|
+
5W2H → Analyze solution completeness
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### + Inversion
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
5W2H → Forward analysis of plan
|
|
253
|
+
Inversion → For each W / H, ask "what if it's missing?"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## ADOPT citation
|
|
259
|
+
|
|
260
|
+
Adapted from an external reference.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Active Remediation — Mechanics
|
|
2
|
+
|
|
3
|
+
> Ladder detail, version-gated modernization, and anti-nagging guardrails for the `active-remediation` rule
|
|
4
|
+
|
|
5
|
+
_Origin: migrated from `src/rules/active-remediation.md` per the P4 pattern of `road-to-kernel-and-router.md`. The Iron Law, the ladder tier names, and the live-security carve-out stay in the rule; this file carries the per-tier criteria and the modernization gates._
|
|
6
|
+
|
|
7
|
+
## The ladder — classify, then act
|
|
8
|
+
|
|
9
|
+
### Fix now (autonomous, inline) — a bounded amendment to `minimal-safe-diff`
|
|
10
|
+
|
|
11
|
+
Allowed **only** when ALL hold — this is the testable "small + task-aligned" definition:
|
|
12
|
+
|
|
13
|
+
- **Same request path / module** as the current task (not an unrelated feature).
|
|
14
|
+
- **≤ ~10 changed lines** in one production file plus its test file — no wider cross-file ripple.
|
|
15
|
+
- **No public-API / response-shape change**, no new parameter.
|
|
16
|
+
- **No dependency bump, no migration, no data change.**
|
|
17
|
+
- **Its verification ships in the same commit** — e.g. the security fix's negative test, or the correctness fix's case.
|
|
18
|
+
|
|
19
|
+
Under those constraints the fix is auditable in the same diff and is *not* scope creep — it corrects a boundary the agent touched. Anything outside them → the fix is **note + ask**, never auto. (`minimal-safe-diff` still governs everything else: no reformatting, no opportunistic refactor, no drive-by rename.)
|
|
20
|
+
|
|
21
|
+
### Note + ask (batched)
|
|
22
|
+
|
|
23
|
+
Bigger, or diverges from the task → do **not** refactor inline, do **not** interrupt the flow. Note the site (file:line + the issue). Surface the batch as **one** numbered-options prompt (per `user-interaction`, one recommendation line) **after the task is delivered** — or mid-work only when the flow makes it natural. Each option must carry a real trade-off (`no-cheap-questions`). Refactor only on an explicit yes, as a separate scoped change (`scope-control`, `downstream-changes`).
|
|
24
|
+
|
|
25
|
+
#### Option anatomy — a pickable fix, not a yes/no
|
|
26
|
+
|
|
27
|
+
The user should be able to answer with one number and get a change they can predict. Each numbered option therefore names four things, in a line or two:
|
|
28
|
+
|
|
29
|
+
1. **What changes** — the concrete edit, in the vocabulary of the code ("replace the three `array()` literals with `[]`", not "clean up the file").
|
|
30
|
+
2. **Where** — file, or the group of files if the option covers a batch.
|
|
31
|
+
3. **How large** — line count or an honest size class, so the user can weigh it without opening the diff.
|
|
32
|
+
4. **What it costs** — the risk, the review burden, or the reason it was not simply done inline.
|
|
33
|
+
|
|
34
|
+
Group findings by **fix shape**, never one option per finding: seven lint errors that are three `no-unused-vars`, three `prefer-const` and one genuine type hole are three options, not seven. The final option is always an explicit **leave it as is** — its absence is what turns a menu into pressure. One recommendation line under the block names your pick (`user-interaction` Iron Law 1).
|
|
35
|
+
|
|
36
|
+
#### Carry-over — undecided is not finished
|
|
37
|
+
|
|
38
|
+
An item the user has not answered stays live: raise it once more at the next natural task boundary, in the same batched form. Two bounds keep that from becoming nagging:
|
|
39
|
+
|
|
40
|
+
- **A decline is terminal.** An explicit "leave it" / "ignore" closes the item for the task; re-raising it is the re-ask `scope-control` § Decline = silence forbids.
|
|
41
|
+
- **Once per boundary, not once per reply.** The batch is a task-close artifact. Repeating it between steps is the continuation prompt `no-cheap-questions` Iron Law 4 forbids.
|
|
42
|
+
|
|
43
|
+
### Propose a follow-up PR (many spots)
|
|
44
|
+
|
|
45
|
+
When the issues are too many to fold in without blowing the current diff's scope, propose **one or more separate follow-up PRs** (or a roadmap under `agents/roadmaps/`, using the shared-prefix convention) so the user reviews the changes before merge. Creating the PR/roadmap is **permission-gated** — propose, get a yes, then create (`scope-control`, `commit-policy`).
|
|
46
|
+
|
|
47
|
+
## Observed failing checks — classifying the red you already have
|
|
48
|
+
|
|
49
|
+
The rule puts a check result you have already seen into the same ladder as a defect you read in a file. Running a command, reading seven errors, and walking past them is not scoping the work — it is looking away.
|
|
50
|
+
|
|
51
|
+
The rule's two bounds, in full:
|
|
52
|
+
|
|
53
|
+
- **Only output you already have.** The clause never obliges a check run; it fires on a result already in front of you. What runs locally stays the user's call — this package records "no proactive quality tools, remote CI gates only" as a standing preference — and the remote CI remains the authoritative gate. An obligation to *hunt* for red would contradict that outright; an obligation not to walk past red you already read does not.
|
|
54
|
+
- **Ownership picks the tier, never the silence.** Caused by your diff → it is the task. Pre-existing and inside the fix-now bar → fix it. Pre-existing and wider, or many, or unrelated → note + ask, or a follow-up PR. There is no seventh option called "mention it in the closing summary" — that line reads as a status report and closes nothing.
|
|
55
|
+
|
|
56
|
+
Classification is the whole of the work, and it runs on two axes:
|
|
57
|
+
|
|
58
|
+
| | Inside the fix-now bar | Outside it |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| **Caused by this diff** | Fix it — it is the task, not remediation. | Fix it; a diff you cannot make green is not deliverable. Blocked → surface it as a blocker, never as a caveat. |
|
|
61
|
+
| **Pre-existing** | Fix it with the work, and say in the commit body that it was pre-existing. | Note + ask with candidate fixes, or a follow-up PR when the batch is large. |
|
|
62
|
+
|
|
63
|
+
Two failure shapes this table exists to name:
|
|
64
|
+
|
|
65
|
+
- **"Not mine, so not mentioned."** Pre-existing red is the most common thing an agent walks past, because `minimal-safe-diff` reads like permission to ignore it. It is not: that rule bounds the *diff*, this one bounds the *silence*. The two are satisfied together by noting the finding and asking, which changes no line of code.
|
|
66
|
+
- **"Mine, so quietly worked around."** A gate that goes green because the check was narrowed, an assertion loosened, or a file excluded is a defect with a green light on top. Route it through the ladder as an issue, and say what was narrowed.
|
|
67
|
+
|
|
68
|
+
### Worked example — a red gate seen mid-task
|
|
69
|
+
|
|
70
|
+
> the `check` task fails; the lint step reports 7 errors, all pre-existing on `main`, in files this branch does not touch.
|
|
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 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
|
+
|
|
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
|
+
|
|
76
|
+
1. Fix the 3 `no-unused-vars` in `src/a.ts`, `src/b.ts` — ~6 lines, mechanical, ships in this PR.
|
|
77
|
+
2. Fix all 7 in a separate follow-up PR — keeps this diff single-purpose; needs a branch (permission-gated).
|
|
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 — the `check` task stays unusable as a chain until someone else picks it up.
|
|
80
|
+
|
|
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
|
+
|
|
83
|
+
## Version-gated modernization
|
|
84
|
+
|
|
85
|
+
Update stale idioms to the version the project **actually runs** — but only when that version is **verified**:
|
|
86
|
+
|
|
87
|
+
- **Establish the version first** from the manifest constraint (`composer.json` `require`, `package.json` `engines`, `.tool-versions`, lockfile) — use the **lowest** bound; on an ambiguous/monorepo range, ask once. **Unknown version → do not touch** (must fit the project structure — this is the `source-discovery` gate).
|
|
88
|
+
- **Syntax-only, behavior-preserving idioms** (e.g. `array()` → `[]`, `isset($x)?$x:$d` → `$x ?? $d`, string concat → template) that are provably equivalent → treat as a small fix (auto per the ladder).
|
|
89
|
+
- **Behavioral changes** (`readonly`/typed properties, new language semantics) and **any dependency/version bump** → **ask only**, never auto (a version bump stays under `minimal-safe-diff`'s no-dependency-bump prohibition; a pure syntax idiom is categorically different).
|
|
90
|
+
|
|
91
|
+
## Guardrails — don't become a nagging machine
|
|
92
|
+
|
|
93
|
+
- Subordinate to `no-cheap-questions` (self-check items 3 & 14 — real trade-off, not a disguised continuation/commit ask), `autonomous-execution` (the end-of-session batch must not read as "shall I continue?"), `user-interaction`, `ask-when-uncertain` (one batched prompt = one question).
|
|
94
|
+
- Threshold to surface at all: a **real, nameable** improvement with a concrete benefit. Cosmetic nitpicks with no trade-off → drop silently. The live-security carve-out is the only case that interrupts or overrides autonomy.
|
|
95
|
+
|
|
96
|
+
## See also
|
|
97
|
+
|
|
98
|
+
- [`active-remediation`](../../rules/active-remediation.md) — the rule this file details (Iron Law + ladder + live-security carve-out).
|
|
99
|
+
- [`minimal-safe-diff`](minimal-safe-diff-mechanics.md) — the diff-shape mechanics the fix-now tier amends.
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
# agent-interaction-and-decision-quality
|
|
2
|
+
|
|
3
|
+
Improves how the agent asks questions, handles uncertainty, learns from feedback,
|
|
4
|
+
and integrates quality rules into CI.
|
|
5
|
+
|
|
6
|
+
## Core principles
|
|
7
|
+
|
|
8
|
+
- Do not guess when clarification is cheap
|
|
9
|
+
- Do not overwhelm the user with too many complex questions at once
|
|
10
|
+
- Prefer structured decision-making over assumptions
|
|
11
|
+
- Learn from negative feedback and turn it into system improvements
|
|
12
|
+
- Integrate recurring improvements into rules, skills, or CI
|
|
13
|
+
|
|
14
|
+
## 1. Question strategy
|
|
15
|
+
|
|
16
|
+
### Simple decisions
|
|
17
|
+
|
|
18
|
+
If questions are simple binary or small choices — ask multiple at once, numbered clearly:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
1. Use Tailwind or existing styles?
|
|
22
|
+
2. Add tests? (yes/no)
|
|
23
|
+
3. Extend existing component or create new one?
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Complex questions
|
|
27
|
+
|
|
28
|
+
If questions require thinking, context-create, or explanation:
|
|
29
|
+
|
|
30
|
+
- Ask ONE question at a time
|
|
31
|
+
- Wait for answer before continuing
|
|
32
|
+
- Do not bundle multiple complex topics together
|
|
33
|
+
|
|
34
|
+
### Handoff / model-switch questions
|
|
35
|
+
|
|
36
|
+
If a handoff (e.g. model change, deeper analysis) is required:
|
|
37
|
+
|
|
38
|
+
1. First ask all necessary domain questions (step-by-step if complex)
|
|
39
|
+
2. Then ask the handoff question LAST
|
|
40
|
+
|
|
41
|
+
Reason: answers must be available before switching context — avoids incomplete downstream instructions.
|
|
42
|
+
|
|
43
|
+
## 2. No blind implementation
|
|
44
|
+
|
|
45
|
+
Before implementing, analyze what already exists:
|
|
46
|
+
|
|
47
|
+
- Identify used frameworks, libraries, patterns
|
|
48
|
+
- If multiple UI systems exist (e.g. Tailwind, shadcn, custom): ask which one to use
|
|
49
|
+
- Do NOT pick one arbitrarily or start implementation without alignment
|
|
50
|
+
|
|
51
|
+
## 3. Handling unclear requirements
|
|
52
|
+
|
|
53
|
+
If instructions are incomplete:
|
|
54
|
+
|
|
55
|
+
- Do NOT assume missing behavior
|
|
56
|
+
- Do NOT silently decide critical aspects
|
|
57
|
+
- Ask precise clarification questions or output a structured clarification request
|
|
58
|
+
|
|
59
|
+
## 4. Learning from negative feedback
|
|
60
|
+
|
|
61
|
+
If the user complains, says something is wrong, or shows frustration:
|
|
62
|
+
|
|
63
|
+
1. Do NOT ignore or defend blindly
|
|
64
|
+
2. Extract the underlying failure pattern
|
|
65
|
+
3. Convert it into one of:
|
|
66
|
+
- Rule (constraint to prevent recurrence)
|
|
67
|
+
- Skill improvement (better workflow step)
|
|
68
|
+
- Guideline addition (reference convention)
|
|
69
|
+
- Linter check (if recurring and automatable)
|
|
70
|
+
|
|
71
|
+
> Every mistake should improve the system.
|
|
72
|
+
|
|
73
|
+
## 5. CI integration mindset
|
|
74
|
+
|
|
75
|
+
When introducing new quality patterns, consider whether they should be enforced automatically.
|
|
76
|
+
|
|
77
|
+
If unsure, ask:
|
|
78
|
+
- "Should this be enforced via CI?"
|
|
79
|
+
- "Should this be part of the linter?"
|
|
80
|
+
|
|
81
|
+
Prefer consistent enforcement over manual discipline.
|
|
82
|
+
|
|
83
|
+
## 6. Decision transparency
|
|
84
|
+
|
|
85
|
+
When making decisions:
|
|
86
|
+
|
|
87
|
+
- State what you assumed
|
|
88
|
+
- State what alternatives exist
|
|
89
|
+
- State why a decision was made
|
|
90
|
+
- If the decision is important: confirm with the user before proceeding
|
|
91
|
+
|
|
92
|
+
## 7. Efficiency in interaction
|
|
93
|
+
|
|
94
|
+
- Avoid long back-and-forth caused by poor initial questions
|
|
95
|
+
- Avoid rework caused by wrong assumptions
|
|
96
|
+
- Prefer: short clarification early → correct implementation once
|
|
97
|
+
|
|
98
|
+
## 8. Improve before implement — pre-implementation validation
|
|
99
|
+
|
|
100
|
+
_Origin: migrated from `src/rules/improve-before-implement.md` per the P4 pattern of `road-to-kernel-and-router.md`. The rule keeps the activation lists and the golden rule ("Challenge to improve, never to refuse"); the check detail lives here._
|
|
101
|
+
|
|
102
|
+
Before coding a new feature, refactor, module, or behavior-altering change, quickly verify:
|
|
103
|
+
|
|
104
|
+
### 8-pre. Demand gate — should this exist at all? (build / defer)
|
|
105
|
+
|
|
106
|
+
One altitude ABOVE engineering-fit. Fires on a "build me an app / add this
|
|
107
|
+
feature" ask, before checks 8a–8c. It is a three-question advisor, NOT a
|
|
108
|
+
product-management framework — surface it in one short block, then proceed on
|
|
109
|
+
the user's answer (never block; `improve-before-implement`'s golden rule holds).
|
|
110
|
+
|
|
111
|
+
**Read the addressee before the questions.** The ladder below measures **market
|
|
112
|
+
demand**, and market demand is a meaningful quantity only where a market is
|
|
113
|
+
intended. Who the project is built for is `project.audience` — resolve it with
|
|
114
|
+
`agent-config settings:get project.audience`, which reports the value and the
|
|
115
|
+
file it came from, rather than opening one file. An absent value resolves to
|
|
116
|
+
`public`, and mechanically so: the template-defaults layer supplies the shipped
|
|
117
|
+
value beneath every file layer (`src/scripts/_lib/agent_settings.ts:873`) and
|
|
118
|
+
`project.audience` is not in the `settingsCarveOut` set, so absent and an
|
|
119
|
+
explicit `public` are the same behaviour. (It used to explain the
|
|
120
|
+
same conclusion with "this package has no defaults layer" — true of the retired
|
|
121
|
+
`_DEFAULTS`, false since that layer shipped. The conclusion never moved; the
|
|
122
|
+
reason did, and the reason decides how far a change to the shipped
|
|
123
|
+
default would reach.)
|
|
124
|
+
|
|
125
|
+
| `project.audience` | What 8-pre does |
|
|
126
|
+
|---|---|
|
|
127
|
+
| `self` | **Inert.** One line — "demand gate skipped (audience: self)" — then straight to 8a. No deferral, no demand question. |
|
|
128
|
+
| `internal` | Question 2 only ("what breaks without it?"). Questions 1 and 3 are already answered — the requester is the team. |
|
|
129
|
+
| `client` | The requester is the client, not a segment. Question 2 survives; 1 and 3 are answered by the engagement. |
|
|
130
|
+
| `public` | **Today's behaviour, unchanged** — all three questions and the full ladder. |
|
|
131
|
+
|
|
132
|
+
Three questions:
|
|
133
|
+
|
|
134
|
+
1. **Who requested this?** (a real user / segment, or an internal hunch?)
|
|
135
|
+
2. **What happens if you DON'T build it?** (churn / blocked deal, or nothing measurable?)
|
|
136
|
+
3. **What's the demand evidence?** (requests, usage data, lost revenue — or a feeling?)
|
|
137
|
+
|
|
138
|
+
Map the answers to a compressed feature-demand hierarchy and recommend:
|
|
139
|
+
|
|
140
|
+
| Level | Signal | Recommendation |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| L-self | The maintainer needs it for their own work — no user population is intended | **Build** |
|
|
143
|
+
| L0 | Founder/agent anxiety — "it feels missing" | **Defer** — validate demand first |
|
|
144
|
+
| L1 | One anecdotal request, no pattern | **Defer** — watch for repetition |
|
|
145
|
+
| L2 | Repeated requests, no measured impact | **Validate** — instrument before building |
|
|
146
|
+
| L3 | Blocks activation/retention for a real segment | **Build** |
|
|
147
|
+
| L4 | Users are churning / deals lost without it | **Build now** |
|
|
148
|
+
|
|
149
|
+
Build at **L-self**, **L3**, or **L4**; L0–L2 get a defer/validate
|
|
150
|
+
recommendation with the one missing evidence named.
|
|
151
|
+
|
|
152
|
+
`L-self` is not a weaker L3. L3 and L4 are defined exclusively over third-party
|
|
153
|
+
users — "a real segment", "users are churning" — so a project with no intended
|
|
154
|
+
user population cannot reach either, not because it is bad but because the scale
|
|
155
|
+
has no value for it. Its ceiling on the L0–L4 ladder is L0, whose recommendation
|
|
156
|
+
is *defer*, which would defer a single-user tool forever. `L-self` is the level
|
|
157
|
+
that ladder is missing, not a discount on the ones it has.
|
|
158
|
+
|
|
159
|
+
**The artefact consequence.** At `L-self`, or at `audience: self` / `internal`,
|
|
160
|
+
never write a roadmap gate, exit criterion, or opening condition that names an
|
|
161
|
+
external user population, a market, or an external measurement. A gate whose
|
|
162
|
+
condition depends on a quantity the project cannot produce is not a gate — it is
|
|
163
|
+
a permanent no in the shape of an answer. This is where the advisory reading
|
|
164
|
+
actually breaks: in conversation "never block" holds, but when a roadmap needs a
|
|
165
|
+
falsifiable opening condition the agent reaches for the only vocabulary it has
|
|
166
|
+
for *should this exist*, and an advisory ladder becomes a number, then a gate.
|
|
167
|
+
|
|
168
|
+
This is advisory — the user decides; a "just build it" answer proceeds
|
|
169
|
+
immediately to 8a. No network, no case-memory API (the source's remote lookup is
|
|
170
|
+
dropped — a lethal-trifecta egress concern).
|
|
171
|
+
|
|
172
|
+
**Enforcement, honestly.** Nothing reads `project.audience` to change what this
|
|
173
|
+
section does. § 8-pre is prose and the branch table above is model-carried —
|
|
174
|
+
the same honesty boundary `security-sensitive-stop` and `untrusted-input-defense`
|
|
175
|
+
state for their own obligations. The one deterministic backstop sits downstream,
|
|
176
|
+
where the damage actually lands: `lint_roadmap_complexity` warns when a roadmap
|
|
177
|
+
gate rests on an external population.
|
|
178
|
+
|
|
179
|
+
### 8a. Is the request clear?
|
|
180
|
+
|
|
181
|
+
- Are acceptance criteria defined or derivable?
|
|
182
|
+
- Is the scope bounded? (not "make it better" but "add X to Y")
|
|
183
|
+
- Are edge cases considered?
|
|
184
|
+
|
|
185
|
+
**If unclear** → ask ONE focused question per turn (`ask-when-uncertain` Iron Law — serial, never batched), never an interrogation.
|
|
186
|
+
|
|
187
|
+
### 8b. Does it fit the existing architecture?
|
|
188
|
+
|
|
189
|
+
- Does similar functionality already exist?
|
|
190
|
+
- Does it follow established patterns in the codebase?
|
|
191
|
+
- Does it contradict existing conventions?
|
|
192
|
+
- Do **multiple valid patterns/frameworks** already exist (e.g. Tailwind + Flux, multiple form libraries, competing state stores)? If yes, do NOT pick one arbitrarily — ask which to use.
|
|
193
|
+
- Is the change a **second branch on the same discriminator** — second `match`/`switch` arm, second `if/elseif`, or second class hardcoded to one enum value (e.g. `Provider::FOO`, `'stripe'`)? If yes, run the Strategy sniff test before adding the branch — see [`strategy.md`](../php/patterns/strategy.md#sniff-test--when-an-enumstring-discriminator-wants-to-become-a-strategy).
|
|
194
|
+
|
|
195
|
+
**If misfit** → show evidence (file references), propose alternative.
|
|
196
|
+
**If multiple valid options** → list them, ask which to use. See [§ 2 — No blind implementation](#2-no-blind-implementation).
|
|
197
|
+
|
|
198
|
+
#### 8b-ladder. The solution-size ladder — stop at the first rung that works
|
|
199
|
+
|
|
200
|
+
"Does similar functionality already exist?" is one question with an **ordered**
|
|
201
|
+
answer set. Walk it top-down and stop at the first rung that carries the
|
|
202
|
+
requirement; each rung down costs more code to write, own, and eventually
|
|
203
|
+
delete. Ordered **after** comprehension, never instead of it — the ladder
|
|
204
|
+
shortens the solution, never the reading.
|
|
205
|
+
|
|
206
|
+
| # | Rung | The question |
|
|
207
|
+
|---|---|---|
|
|
208
|
+
| 1 | **Need to exist** | Does this have to be built at all? (§ 8-pre decides) |
|
|
209
|
+
| 2 | **Reuse in repo** | Does a unit already in this codebase do it? |
|
|
210
|
+
| 3 | **Stdlib / framework** | Does the language stdlib or the framework already do it? |
|
|
211
|
+
| 4 | **Native platform** | Does the OS, runtime, browser, or database already do it? |
|
|
212
|
+
| 5 | **Installed dependency** | Is it already in the dependency tree? |
|
|
213
|
+
| 6 | **Smallest working form** | Of what genuinely must be written, what is the least of it? |
|
|
214
|
+
|
|
215
|
+
Rungs 1, 2, 3, 5 and 6 are obligations this suite already states elsewhere
|
|
216
|
+
(§ 8-pre; § 8b above and [`component-oriented-and-oop-development`](../component-oriented-and-oop-development.md)
|
|
217
|
+
"Reuse before you build"; `architecture`'s "use the framework's primitive";
|
|
218
|
+
[`supply-chain-intake`](../../skills/supply-chain-intake/SKILL.md) step 0;
|
|
219
|
+
`minimal-safe-diff`'s smallest-change Iron Law) — the ladder **orders** them, it
|
|
220
|
+
does not add them.
|
|
221
|
+
|
|
222
|
+
**Rung 4 is the one that was missing.** Between "the framework does it" and "add
|
|
223
|
+
a dependency" sits the platform the code already runs on: `crypto.randomUUID`
|
|
224
|
+
before a uuid package, a database's own JSON / full-text / generated-column
|
|
225
|
+
support before an application-side index, `AbortSignal.timeout` before a timeout
|
|
226
|
+
helper, `Intl` before a formatting library, a filesystem watcher before a polling
|
|
227
|
+
loop. A dependency added for something the platform already ships is permanent
|
|
228
|
+
cost bought against a capability you already had.
|
|
229
|
+
|
|
230
|
+
#### 8b-shape. The shape axis — simple is not the same as short
|
|
231
|
+
|
|
232
|
+
The ladder above is the **scope** axis: must this exist, and can something
|
|
233
|
+
cheaper serve? The **shape** axis is the other half: of what must exist, which
|
|
234
|
+
form carries the **least cognitive load** — explicitly *not* the fewest
|
|
235
|
+
keystrokes.
|
|
236
|
+
|
|
237
|
+
A flat version one line longer beats a dense clever one. A one-liner qualifies
|
|
238
|
+
as the "smallest working form" only when it is also the *simplest* form, not
|
|
239
|
+
merely the shortest — nested ternaries, long optional-call chains, and clever
|
|
240
|
+
one-expression reductions all shrink the diff while raising the cost of every
|
|
241
|
+
future read. The failure mode is measured, not theoretical: generated code
|
|
242
|
+
trends shorter but denser, carrying more cognitive load per line. A size metric
|
|
243
|
+
on its own rewards exactly that.
|
|
244
|
+
|
|
245
|
+
Read with [`code-clarity`](../code-clarity.md), which owns the line-level form
|
|
246
|
+
decisions and states the same distinction from the other direction.
|
|
247
|
+
|
|
248
|
+
#### 8b-precedence. Resolution order when these pull against each other
|
|
249
|
+
|
|
250
|
+
Stated once, here, so the clauses above never issue contradictory simultaneous
|
|
251
|
+
instructions. Higher wins:
|
|
252
|
+
|
|
253
|
+
1. **Safety floors** — `engineering-safety-floor`, `security-sensitive-stop`,
|
|
254
|
+
and `senior-engineering-discipline`'s invisible cross-cutting controls. A
|
|
255
|
+
rung that saves a line by dropping a guard has lost, not won.
|
|
256
|
+
2. **Explicit user-fenced scope** — "just this one line" ends the ladder.
|
|
257
|
+
3. **Shape** (simplicity) — a simpler form beats a smaller one.
|
|
258
|
+
4. **Scope** (don't build it) — a cheaper rung beats a lower rung.
|
|
259
|
+
5. **De-duplication** — last, and gated: extract only when the repetition
|
|
260
|
+
trigger in [`minimal-safe-diff-mechanics`](minimal-safe-diff-mechanics.md)
|
|
261
|
+
§ Anti-over-engineering fires, never as a reflex.
|
|
262
|
+
|
|
263
|
+
Any pair is resolvable from this list alone. This is a **principle** ordering
|
|
264
|
+
and deliberately *not* an entry in `docs/contracts/rule-interactions.yml`, which
|
|
265
|
+
is a pairwise contract scoped to the always-on kernel rules — forking that
|
|
266
|
+
linted contract with a second prose ordering over a different kind of object is
|
|
267
|
+
the drift this ladder exists to avoid.
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
### 8c. Is the approach sound?
|
|
271
|
+
|
|
272
|
+
- Is there a simpler way to achieve the same result?
|
|
273
|
+
- Are there known problems with the requested approach?
|
|
274
|
+
- Does the scope match the stated goal? (not over-engineered, not under-specified)
|
|
275
|
+
|
|
276
|
+
**If problematic** → explain the concern, propose a better approach.
|
|
277
|
+
|
|
278
|
+
### How to challenge
|
|
279
|
+
|
|
280
|
+
- **Be concise** — one sentence per concern, not paragraphs
|
|
281
|
+
- **Show evidence** — reference existing code, patterns, or conventions
|
|
282
|
+
- **Offer alternatives** — don't just say "this is wrong"
|
|
283
|
+
- **Use numbered options** — let the user choose quickly
|
|
284
|
+
- **Respect "just do it"** — if the user insists after your challenge, execute immediately
|
|
285
|
+
|
|
286
|
+
Example:
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
> ⚠️ `UserService` already has a `deactivate()` method that covers this case.
|
|
290
|
+
>
|
|
291
|
+
> 1. Use existing method — extend with new parameter
|
|
292
|
+
> 2. Create new method anyway — I'll explain the overlap in a comment
|
|
293
|
+
> 3. Skip validation — implement as requested
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
After presenting concerns: user picks an option → execute immediately; user says "just do it" → execute immediately. Never argue twice about the same point. Never block work — delay is only justified if it prevents a clear mistake.
|
|
297
|
+
|
|
298
|
+
### Scope limits
|
|
299
|
+
|
|
300
|
+
- **Max 1-2 challenges per task** — not every request needs validation
|
|
301
|
+
- **Max 1 minute of analysis** — if the check takes longer, skip it
|
|
302
|
+
- **Never validate simple tasks** — only features, architecture, significant changes
|
|
303
|
+
- **Never validate after the user already explained their reasoning**
|
|
304
|
+
|
|
305
|
+
### Verify with concrete tools, not prose
|
|
306
|
+
|
|
307
|
+
If the challenge requires you to confirm current behavior before proposing an alternative, use a concrete probe — a `curl` against the endpoint, a Playwright spec, a debugger / `xdebug` step-through, or the project's test runner with a targeted filter. Asserting current behavior from memory is not validation.
|
|
308
|
+
|
|
309
|
+
### Intent inference (RDP, standard host)
|
|
310
|
+
|
|
311
|
+
When the literal request and the underlying goal may differ, **state the inferred goal in one line and give ONE recommendation** — do not spread 2–3 framings (that is the overplanning [`direct-answers`](../../rules/direct-answers.md) suppresses). Standard host only; a strong-reasoning host self-infers, so skip it there. Engage per [`rdp-gate`](../../contexts/execution/rdp-gate.md).
|
|
312
|
+
|
|
313
|
+
## Anti-patterns
|
|
314
|
+
|
|
315
|
+
- Asking 5 complex questions at once
|
|
316
|
+
- Mixing clarification and implementation in the same step
|
|
317
|
+
- Doing handoff before collecting required context
|
|
318
|
+
- Blindly choosing frameworks/tools without checking existing usage
|
|
319
|
+
- Ignoring user frustration instead of learning from it
|
|
320
|
+
- Introducing new quality rules without considering CI enforcement
|
|
321
|
+
- Making important decisions silently without stating reasoning
|
|
322
|
+
|
|
323
|
+
## Final principle
|
|
324
|
+
|
|
325
|
+
> Ask better → decide better → build once → improve system continuously
|