@event4u/agent-config 9.11.0 → 9.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +80 -204
- package/README.md +8 -1
- package/dist/agent-src/commands/fix/ci.md +29 -0
- package/dist/agent-src/commands/pr/create.md +60 -0
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +18 -2
- package/dist/agent-src/rules/active-remediation.md +0 -2
- package/dist/agent-src/rules/architecture.md +0 -1
- package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -4
- package/dist/agent-src/rules/autonomous-execution.md +1 -2
- package/dist/agent-src/rules/broken-access-control.md +0 -2
- package/dist/agent-src/rules/code-comment-discipline.md +0 -3
- package/dist/agent-src/rules/code-provenance.md +0 -3
- package/dist/agent-src/rules/communication-through-line.md +2 -3
- package/dist/agent-src/rules/content-quoting-floor.md +0 -2
- package/dist/agent-src/rules/context-hygiene.md +1 -3
- package/dist/agent-src/rules/decision-revisit-gate.md +0 -2
- package/dist/agent-src/rules/design-fidelity.md +30 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +0 -3
- package/dist/agent-src/rules/downstream-changes.md +10 -1
- package/dist/agent-src/rules/external-reference-deep-dive.md +0 -7
- package/dist/agent-src/rules/fast-path-marker-visibility.md +0 -1
- package/dist/agent-src/rules/git-history-discipline.md +0 -7
- package/dist/agent-src/rules/guidelines.md +0 -2
- package/dist/agent-src/rules/improve-before-implement.md +4 -2
- package/dist/agent-src/rules/invite-challenge.md +0 -4
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -2
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -2
- package/dist/agent-src/rules/missing-tool-handling.md +0 -1
- package/dist/agent-src/rules/no-attribution-footers.md +0 -3
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +8 -5
- package/dist/agent-src/rules/no-pr-progress-comments.md +1 -3
- package/dist/agent-src/rules/no-roadmap-references.md +0 -2
- package/dist/agent-src/rules/output-discipline.md +0 -1
- package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -2
- package/dist/agent-src/rules/preservation-guard.md +0 -3
- package/dist/agent-src/rules/role-mode-adherence.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +0 -2
- package/dist/agent-src/rules/senior-engineering-discipline.md +0 -2
- package/dist/agent-src/rules/session-canary.md +0 -2
- package/dist/agent-src/rules/size-enforcement.md +0 -5
- package/dist/agent-src/rules/source-confidentiality.md +0 -3
- package/dist/agent-src/rules/source-discovery-gate.md +0 -2
- package/dist/agent-src/rules/think-before-action.md +3 -3
- package/dist/agent-src/rules/token-budget-discipline.md +0 -1
- package/dist/agent-src/rules/token-efficiency.md +1 -2
- package/dist/agent-src/rules/tool-safety.md +0 -1
- package/dist/agent-src/rules/user-interaction.md +0 -3
- package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +8 -0
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +1 -0
- package/dist/agent-src/skills/analysis-skill-router/SKILL.md +55 -86
- package/dist/agent-src/skills/character-consistency/SKILL.md +7 -4
- package/dist/agent-src/skills/decision-record/SKILL.md +8 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +27 -1
- package/dist/agent-src/skills/design-intelligence/data/font-pairings-reference.csv +74 -74
- package/dist/agent-src/skills/design-intelligence/data/manifest.json +2 -0
- package/dist/agent-src/skills/design-review/SKILL.md +11 -0
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +8 -0
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +0 -7
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +34 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +7 -4
- package/dist/agent-src/skills/overbuild-review-lens/SKILL.md +201 -0
- package/dist/agent-src/skills/performance/SKILL.md +14 -0
- package/dist/agent-src/skills/pixar-storyteller/SKILL.md +8 -5
- package/dist/agent-src/skills/scene-expander/SKILL.md +9 -6
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +10 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +55 -11
- package/dist/agent-src/skills/ui-apply-generic/SKILL.md +180 -0
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +14 -37
- package/dist/agent-src/skills/video-director/SKILL.md +9 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +162 -17
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +118 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +49 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
- package/dist/agent-src/templates/scripts/work_engine/state.ts +55 -0
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-IR7P7JWA.js → chunk-A3HJ6NTI.js} +271 -59
- package/dist/cli-delegate/chunk-EJYIGZ3T.js +125 -0
- package/dist/cli-delegate/{chunk-RDGRHAAB.js → chunk-HYWSRNUX.js} +6 -86
- package/dist/cli-delegate/{chunk-YMFO6FDN.js → chunk-QFKQLQ7X.js} +313 -81
- package/dist/cli-delegate/{chunk-4SV3XGFA.js → chunk-TEGJU2JX.js} +7 -9
- package/dist/cli-delegate/chunk-TJIAM5FW.js +133 -0
- package/dist/cli-delegate/cmd_conformance.js +4 -7
- package/dist/cli-delegate/cmd_doctor.js +3 -5
- package/dist/cli-delegate/cmd_explain.js +153 -85
- package/dist/cli-delegate/cmd_export.js +5 -3
- package/dist/cli-delegate/cmd_fleet.js +2 -1
- package/dist/cli-delegate/cmd_preflight.js +6 -123
- package/dist/cli-delegate/cmd_prune.js +5 -3
- package/dist/cli-delegate/cmd_settings_migrate.js +5 -3
- package/dist/cli-delegate/cmd_sync.js +5 -3
- package/dist/cli-delegate/cmd_uninstall.js +6 -5
- package/dist/cli-delegate/cmd_validate.js +5 -3
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +116 -72
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +7 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +6 -4
- package/dist/hooks/dispatch.js +174 -13
- package/dist/install/install.mjs +605 -412
- package/dist/install/ruleInScope.js +123 -0
- package/dist/install/ruleInScope.js.map +1 -0
- package/dist/install/rule_scope.js +2 -2
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/wizard-plan.js +10 -1
- package/dist/install/wizard-plan.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +710 -2491
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +8 -24
- package/dist/scripts/condense.js.map +1 -1
- package/docs/MIGRATION.md +1 -1
- package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +71 -0
- package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +24 -1
- package/docs/guidelines/code-clarity.md +9 -2
- package/docs/guidelines/design-fidelity-mechanics.md +58 -0
- package/llms.txt +63 -27
- package/package.json +4 -4
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +162 -17
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +118 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +49 -6
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +9 -5
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +182 -29
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +311 -24
- package/src/agent-src/templates/scripts/work_engine/state.ts +55 -0
- package/src/config/agent-settings.template.yml +8 -0
- package/src/install/ruleInScope.ts +133 -0
- package/src/install/rule_scope.ts +2 -2
- package/src/install/wizard-plan.ts +11 -1
- package/src/scripts/_lib/counted_probe.ts +142 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +38 -2
- package/src/scripts/_lib/overbuild_lens_contract.ts +196 -0
- package/src/scripts/_lib/release_scope.ts +207 -0
- package/src/scripts/ai_council/stance_tally.ts +37 -2
- package/src/scripts/audit_auto_rules.ts +9 -9
- package/src/scripts/audit_likelihood.ts +3 -3
- package/src/scripts/audit_overlap.ts +2 -2
- package/src/scripts/audit_skill_overlap.ts +233 -95
- package/src/scripts/audit_skill_overlap_allowlist.json +4 -0
- package/src/scripts/build_proof.ts +15 -1
- package/src/scripts/check_dependency_floors.ts +16 -6
- package/src/scripts/check_gate_coverage.ts +6 -6
- package/src/scripts/check_installer_import_purity.ts +295 -0
- package/src/scripts/check_kernel_rule_bundle.ts +5 -4
- package/src/scripts/check_token_quality_golden.ts +0 -18
- package/src/scripts/code_graph/loader.ts +35 -6
- package/src/scripts/compile_router.ts +3 -8
- package/src/scripts/condense.ts +9 -30
- package/src/scripts/explain_run.ts +0 -1
- package/src/scripts/generate_pack_manifests.ts +3 -20
- package/src/scripts/hooks/block_kernel_rule_writes.ts +145 -10
- package/src/scripts/hooks/block_no_verify.ts +101 -0
- package/src/scripts/install-hooks.sh +36 -4
- package/src/scripts/install.ts +210 -5
- package/src/scripts/lint_agent_security.ts +5 -4
- package/src/scripts/lint_framework_leakage_allowlist.json +2 -2
- package/src/scripts/lint_regression.ts +92 -1
- package/src/scripts/lint_skill_descriptions.ts +93 -5
- package/src/scripts/lint_ui_stack_bundles.ts +31 -0
- package/src/scripts/project_thin_rules.ts +2 -2
- package/src/scripts/release.ts +107 -3
- package/src/scripts/resolve_lint_scope.ts +53 -0
- package/src/scripts/router_telemetry.ts +0 -5
- package/src/scripts/runtime_dispatcher.ts +40 -0
- package/src/scripts/schemas/pack.schema.json +1 -5
- package/src/scripts/schemas/rule.schema.json +1 -2
- package/src/scripts/self_review_gate.ts +15 -73
- package/src/scripts/skill_linter.ts +93 -11
- package/src/scripts/sweep_dead_scan_roots.ts +550 -0
- package/src/scripts/trigger_coverage.ts +11 -37
- package/dist/cli-delegate/chunk-7DSAMZFU.js +0 -356
- package/dist/cli-delegate/chunk-BJGXZNPM.js +0 -266
- package/dist/cli-delegate/chunk-TFG57JJM.js +0 -1969
|
@@ -4,8 +4,6 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Endpoint/query on user/tenant data — authenticated ≠ authorized: server-derived ownership/tenant/role + negative tests (401/non-owner/cross-tenant)"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "returning user or tenant data"
|
|
8
|
-
- intent: "adding an endpoint that reads a record by id"
|
|
9
7
|
- keyword: "endpoint"
|
|
10
8
|
- keyword: "route"
|
|
11
9
|
- keyword: "authorization"
|
|
@@ -4,9 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Writing/editing code — a comment states a WHY or constraint the code cannot show; never restate what names/types say; no signature-mirroring docblocks"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "writing or generating code"
|
|
8
|
-
- intent: "adding a class / method / function"
|
|
9
|
-
- intent: "refactoring code"
|
|
10
7
|
- keyword: "comment"
|
|
11
8
|
- keyword: "docblock"
|
|
12
9
|
- keyword: "phpdoc"
|
|
@@ -4,9 +4,6 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Porting/adapting external code (algorithm, structure, >~10 lines) — close the source, re-derive; conscious borrows need a ledger entry + license check"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "porting or adapting code from an external source"
|
|
8
|
-
- intent: "implementing an algorithm or structure seen in another project"
|
|
9
|
-
- intent: "reusing a snippet from online / another repo / a training-data recall"
|
|
10
7
|
- keyword: "port this"
|
|
11
8
|
- keyword: "adapt this"
|
|
12
9
|
- keyword: "based on this repo"
|
|
@@ -3,11 +3,10 @@ type: "auto"
|
|
|
3
3
|
tier: "2b"
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Multi-step or continuation replies carry a red thread — goal once, each turn tied to it, name what changed, close with one end-summary"
|
|
6
|
-
triggers:
|
|
7
|
-
- intent: "producing a multi-step or continuation reply"
|
|
8
|
-
- intent: "reporting progress on ongoing work"
|
|
9
6
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
10
7
|
packs: [meta]
|
|
8
|
+
triggers:
|
|
9
|
+
- phrase: "reporting progress"
|
|
11
10
|
---
|
|
12
11
|
|
|
13
12
|
# Communication Through-Line
|
|
@@ -3,8 +3,6 @@ type: "auto"
|
|
|
3
3
|
tier: "2a"
|
|
4
4
|
description: "Cap verbatim quoting from external sources — 15 words max per quote, one quote per source, never a complete short work, paraphrase by default"
|
|
5
5
|
triggers:
|
|
6
|
-
- intent: "drafting content from a source"
|
|
7
|
-
- intent: "summarizing an external document"
|
|
8
6
|
- keyword: "quote"
|
|
9
7
|
- keyword: "excerpt"
|
|
10
8
|
- keyword: "verbatim"
|
|
@@ -4,10 +4,8 @@ tier: "1"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Debugging, fixing errors, or long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "long conversation"
|
|
8
|
-
- intent: "tool loop"
|
|
9
|
-
- intent: "fresh chat"
|
|
10
7
|
- keyword: "3-failure"
|
|
8
|
+
- phrase: "long conversation"
|
|
11
9
|
routes_to:
|
|
12
10
|
- "guideline:agent-infra/context-hygiene-mechanics"
|
|
13
11
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
@@ -5,8 +5,6 @@ description: "Beneficial change blocked by a lock (honest-null, don't-relitigate
|
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
council_depth: deep
|
|
7
7
|
triggers:
|
|
8
|
-
- intent: "blocked by prior decision"
|
|
9
|
-
- intent: "revisit past verdict"
|
|
10
8
|
- keyword: "don't relitigate"
|
|
11
9
|
- keyword: "honest null"
|
|
12
10
|
- keyword: "already decided"
|
|
@@ -9,10 +9,21 @@ triggers:
|
|
|
9
9
|
- keyword: "design system"
|
|
10
10
|
- keyword: "design spec"
|
|
11
11
|
- keyword: "Figma"
|
|
12
|
+
- keyword: "handoff"
|
|
13
|
+
- keyword: "Claude Design"
|
|
12
14
|
- phrase: "match the design"
|
|
13
15
|
- phrase: "build this design"
|
|
14
16
|
- phrase: "design fidelity"
|
|
15
17
|
- phrase: "stick to the design"
|
|
18
|
+
- phrase: "design.html"
|
|
19
|
+
- phrase: "attached artifact"
|
|
20
|
+
- phrase: "provided artifact"
|
|
21
|
+
- phrase: "übernimm das design"
|
|
22
|
+
- phrase: "baue das nach"
|
|
23
|
+
- phrase: "bau das nach"
|
|
24
|
+
- phrase: "1:1 um"
|
|
25
|
+
- phrase: "1:1 nach"
|
|
26
|
+
- file_pattern: "*design.html"
|
|
16
27
|
applies_to_user_types:
|
|
17
28
|
- "creator"
|
|
18
29
|
- "developer"
|
|
@@ -73,7 +84,25 @@ porting, or modifying UI to match it.
|
|
|
73
84
|
- The user explicitly invites exploration ("show me options", "redesign this", "improve the layout") — that authorises deviation for that turn.
|
|
74
85
|
- Non-UI surfaces (scripts, CLI, backend).
|
|
75
86
|
|
|
76
|
-
|
|
87
|
+
## Routing — an attached artifact is a trigger, an attached HTML file is not
|
|
88
|
+
|
|
89
|
+
Matching is plain lower-cased substring containment on the prompt, plus fnmatch
|
|
90
|
+
over the open files. Three handover classes must reach this rule: an English
|
|
91
|
+
phrasing, a German one, and a prompt carrying **no** keyword at all because the
|
|
92
|
+
artifact is simply attached. The last is covered by `file_pattern: *design.html`
|
|
93
|
+
— the conventional handover filename, not `*.html`, which would fire on every
|
|
94
|
+
HTML edit in every project and be strictly worse than the gap it closes. A
|
|
95
|
+
handover under some other filename needs one word in the prompt.
|
|
96
|
+
|
|
97
|
+
The trigger set is deliberately phrase-heavy on the German side and on
|
|
98
|
+
`artifact`: a bare `artifact` keyword fires on "the CI build artifact is 40 MB".
|
|
99
|
+
`ROUTING_MATRIX` in
|
|
100
|
+
[`design_fidelity_routing.test.ts`](../../tests/scripts/design_fidelity_routing.test.ts)
|
|
101
|
+
pins both halves — every class that must route, and the near-misses that must
|
|
102
|
+
stay silent (fixture `daf-port-trigger-de`). Extending the set without adding a
|
|
103
|
+
near-miss row there is how an over-broad trigger lands.
|
|
104
|
+
|
|
105
|
+
Body migrated to [`guideline:design-fidelity-mechanics`](../docs/guidelines/design-fidelity-mechanics.md) (per P4 of `road-to-kernel-and-router.md`) — surgical visual edits (targeted-edit vs redesign-trigger discipline, stable anchors), asset & imagery discipline (owned-asset path, third-party delivery is self-hosted by default, real-imagery-as-proof, iconography floor, no unrequested filler), deviation-surfacing shape, failure-mode catalog, `daf-*` fixtures.
|
|
77
106
|
Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
|
|
78
107
|
|
|
79
108
|
## See also
|
|
@@ -4,9 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Adopting a new domain track (mobile, ML, IoT…) — demand/owner/CI gates BEFORE harvest"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "adopt new domain"
|
|
8
|
-
- intent: "harvest new domain track"
|
|
9
|
-
- intent: "open a domain plate"
|
|
10
7
|
- keyword: "mobile track"
|
|
11
8
|
- keyword: "ml track"
|
|
12
9
|
- keyword: "blockchain track"
|
|
@@ -4,7 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "After EVERY code edit, find ALL downstream changes — callers, tests, imports, types, documentation"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "after code edit"
|
|
8
7
|
- keyword: "callers"
|
|
9
8
|
- keyword: "imports"
|
|
10
9
|
- keyword: "downstream"
|
|
@@ -81,6 +80,16 @@ Next.js / Python / Go) live in [`agent-docs-writing`](../skills/agent-docs-writi
|
|
|
81
80
|
Before making a change that affects a **public API** (endpoint response, service method signature,
|
|
82
81
|
event payload, job constructor), assess the impact:
|
|
83
82
|
|
|
83
|
+
**Why the surface, not just the contract, is the thing to keep small** (Hyrum's
|
|
84
|
+
Law): with enough consumers, every *observable* behaviour of a system becomes
|
|
85
|
+
something somebody depends on, regardless of what the documented contract
|
|
86
|
+
promises — iteration order, an error message's wording, a timing side effect, a
|
|
87
|
+
field that happens to be present. Two consequences, and they point in opposite
|
|
88
|
+
directions. Adding: a smaller exported surface is fewer accidental contracts to
|
|
89
|
+
honour later, so do not export what the caller does not need. Removing: the
|
|
90
|
+
list above is a floor, not a ceiling — an observable behaviour nobody documented
|
|
91
|
+
can still break someone when it disappears.
|
|
92
|
+
|
|
84
93
|
### Always ask the user first when:
|
|
85
94
|
|
|
86
95
|
- Removing or renaming a public method/class
|
|
@@ -4,13 +4,6 @@ tier: "2b"
|
|
|
4
4
|
description: "User names an external repo/file/URL as reference — fetch the actual tree and inspect; never summarize from README"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "look at how X does it"
|
|
8
|
-
- intent: "compare with reference repo"
|
|
9
|
-
- intent: "use as template / vorlage"
|
|
10
|
-
- intent: "wie macht es X"
|
|
11
|
-
- intent: "vergleiche mit Y"
|
|
12
|
-
- intent: "schau dir Z an"
|
|
13
|
-
- intent: "study this competitor"
|
|
14
7
|
- keyword: "github.com/"
|
|
15
8
|
- keyword: "source of truth"
|
|
16
9
|
- phrase: "reference repo"
|
|
@@ -4,13 +4,6 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Git history — no unasked rebase/squash/amend; never drop foreign commits; pushed rewrite → re-push same turn"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "rebase the branch"
|
|
8
|
-
- intent: "squash commits"
|
|
9
|
-
- intent: "clean up commit history"
|
|
10
|
-
- intent: "fold this into the previous commit"
|
|
11
|
-
- intent: "tidy history after pushing"
|
|
12
|
-
- intent: "reseat the branch base"
|
|
13
|
-
- intent: "exclude these commits from the branch"
|
|
14
7
|
- keyword: "git rebase"
|
|
15
8
|
- keyword: "rebase --onto"
|
|
16
9
|
- keyword: "reset --hard"
|
|
@@ -6,8 +6,6 @@ alwaysApply: false
|
|
|
6
6
|
load_context:
|
|
7
7
|
- ../contexts/communication/rules-auto/guidelines-mechanics.md
|
|
8
8
|
triggers:
|
|
9
|
-
- intent: "writing code"
|
|
10
|
-
- intent: "reviewing code"
|
|
11
9
|
- keyword: "convention"
|
|
12
10
|
workspaces: [agent-config-maintainer, engineering]
|
|
13
11
|
packs: [meta]
|
|
@@ -5,8 +5,6 @@ description: "Before features or architectural changes — validate against exis
|
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
council_depth: deep
|
|
7
7
|
triggers:
|
|
8
|
-
- intent: "implement feature"
|
|
9
|
-
- intent: "architectural change"
|
|
10
8
|
- keyword: "refactor"
|
|
11
9
|
- keyword: "implement"
|
|
12
10
|
- keyword: "migration"
|
|
@@ -42,6 +40,10 @@ Before implementing:
|
|
|
42
40
|
|
|
43
41
|
On a "build me an app / add this feature" ask, ONE reflexive pre-check before the three checks: **who asked · what breaks if unbuilt · what's the evidence?** Recommend **build** only at a real retention/activation blocker (evidence, not anxiety); else **defer/validate**, naming the missing evidence. Advisory — "just build it" proceeds immediately; no network lookup. Hierarchy + build/defer table: guideline § 8-pre.
|
|
44
42
|
|
|
43
|
+
## The solution-size ladder — stop at the first rung that works
|
|
44
|
+
|
|
45
|
+
Once the demand gate says build, "does this already exist?" has an **ordered** answer set: need-to-exist → reuse-in-repo → stdlib / framework → **native platform** → installed dependency → smallest working form. Stop at the first rung that carries the requirement. Ordered **after** comprehension — it shortens the solution, never the reading. Two axes, not one: the ladder is *scope*; **shape** is the other half — of what must exist, the form with the least cognitive load, explicitly not the fewest keystrokes. Rungs, the platform-rung examples, and the precedence order when they pull against each other: guideline § 8b-ladder / § 8b-shape / § 8b-precedence.
|
|
46
|
+
|
|
45
47
|
## The three checks
|
|
46
48
|
|
|
47
49
|
Run, in order: **1. Is the request clear?** · **2. Does it fit the existing architecture?** · **3. Is the approach sound?**
|
|
@@ -5,10 +5,6 @@ description: "Before executing a complex plan — ask 'am I solving the right pr
|
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
council_depth: deep
|
|
7
7
|
triggers:
|
|
8
|
-
- intent: "complex plan"
|
|
9
|
-
- intent: "design decision"
|
|
10
|
-
- intent: "architectural plan"
|
|
11
|
-
- intent: "multi-step implementation"
|
|
12
8
|
- keyword: "plan"
|
|
13
9
|
- keyword: "design"
|
|
14
10
|
- keyword: "architecture"
|
|
@@ -4,8 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "IDE-attached sibling repo detected — prompt once to opt into cross-repo awareness, persist local-only"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "work across two projects"
|
|
8
|
-
- intent: "sibling repository"
|
|
9
7
|
- keyword: "linked project"
|
|
10
8
|
- keyword: "cross-repo"
|
|
11
9
|
- keyword: "sibling repo"
|
|
@@ -4,7 +4,6 @@ tier: "2b"
|
|
|
4
4
|
description: "Generating markdown with code blocks — prevent broken nesting"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "markdown with code blocks"
|
|
8
7
|
- keyword: "triple backticks"
|
|
9
8
|
- file_pattern: "*.md"
|
|
10
9
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
@@ -4,11 +4,11 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Writing or reviewing a diff — smallest change that solves the problem; no drive-by edits or reformatting"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "writing a diff"
|
|
8
|
-
- intent: "reviewing a diff"
|
|
9
7
|
- keyword: "drive-by"
|
|
10
8
|
- keyword: "rewrite"
|
|
11
9
|
- keyword: "fix"
|
|
10
|
+
- phrase: "from scratch"
|
|
11
|
+
- phrase: "second system"
|
|
12
12
|
routes_to:
|
|
13
13
|
- "guideline:agent-infra/minimal-safe-diff-mechanics"
|
|
14
14
|
workspaces: [engineering]
|
|
@@ -5,7 +5,6 @@ description: "CLI tool needed for the task is not installed — ask before worki
|
|
|
5
5
|
triggers:
|
|
6
6
|
- keyword: "command not found"
|
|
7
7
|
- keyword: "not installed"
|
|
8
|
-
- intent: "install tool"
|
|
9
8
|
routes_to:
|
|
10
9
|
- "guideline:agent-infra/missing-tool-handling"
|
|
11
10
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
@@ -4,9 +4,6 @@ tier: "3"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "PR/issue/comment/commit bodies — no 'Generated with' / 'Co-authored by' / 'opened by' attribution footers"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "PR body"
|
|
8
|
-
- intent: "commit message"
|
|
9
|
-
- intent: "Jira comment"
|
|
10
7
|
- keyword: "co-authored"
|
|
11
8
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
12
9
|
packs: [meta]
|
|
@@ -4,13 +4,16 @@ tier: "3"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "PR/issue/commit titles and comments — no decorative emojis; bodies only with an in-artifact legend"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "PR title"
|
|
8
|
-
- intent: "PR body"
|
|
9
|
-
- intent: "commit message"
|
|
10
|
-
- intent: "issue title"
|
|
11
|
-
- intent: "post PR comment"
|
|
12
7
|
- keyword: "gh pr create"
|
|
13
8
|
- keyword: "git commit"
|
|
9
|
+
- keyword: "🤖"
|
|
10
|
+
- keyword: "🚀"
|
|
11
|
+
- keyword: "🎉"
|
|
12
|
+
- keyword: "✨"
|
|
13
|
+
- keyword: "🔥"
|
|
14
|
+
- keyword: "💡"
|
|
15
|
+
- keyword: "👍"
|
|
16
|
+
- keyword: "❤️"
|
|
14
17
|
workspaces: [agent-config-maintainer, engineering]
|
|
15
18
|
packs: [meta]
|
|
16
19
|
---
|
|
@@ -4,11 +4,9 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "PR comments — no unsolicited progress/status/CI narration unless personal.pr_progress_comments is true"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "post PR comment"
|
|
8
|
-
- intent: "PR status update"
|
|
9
|
-
- intent: "CI fix progress"
|
|
10
7
|
- keyword: "gh pr comment"
|
|
11
8
|
- keyword: "PullRequestComment"
|
|
9
|
+
- phrase: "status comment"
|
|
12
10
|
workspaces: [agent-config-maintainer, engineering]
|
|
13
11
|
packs: [meta]
|
|
14
12
|
---
|
|
@@ -8,8 +8,6 @@ triggers:
|
|
|
8
8
|
- path_prefix: "agents/runtime/council/questions/"
|
|
9
9
|
- path_prefix: "agents/runtime/council/responses/"
|
|
10
10
|
- path_prefix: "agents/runtime/council/sessions/"
|
|
11
|
-
- intent: "link from stable artifact"
|
|
12
|
-
- intent: "link to council artefact"
|
|
13
11
|
routes_to:
|
|
14
12
|
- "skill:ai-council"
|
|
15
13
|
- "skill:agent-docs-writing"
|
|
@@ -3,7 +3,6 @@ type: "auto"
|
|
|
3
3
|
tier: "2a"
|
|
4
4
|
description: "No placeholder prose in generated code/UI — no truncation shorthands; on budget overflow emit a clean PAUSED breakpoint"
|
|
5
5
|
triggers:
|
|
6
|
-
- intent: "generating code or multi-section output"
|
|
7
6
|
- keyword: "// rest of component"
|
|
8
7
|
- keyword: "for brevity"
|
|
9
8
|
- keyword: "rest follows the same pattern"
|
|
@@ -4,8 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Field with multiple non-boolean states — prefer an enum over string/numeric literals; old-style literals found → note, finish the task, ask after"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "modeling a field with multiple states"
|
|
8
|
-
- intent: "adding a status or type field"
|
|
9
7
|
- keyword: "enum"
|
|
10
8
|
- keyword: "status"
|
|
11
9
|
- keyword: "kind"
|
|
@@ -4,9 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Merging/refactoring/condensing skills, rules, commands, or guidelines — prevent quality loss"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "merge skill"
|
|
8
|
-
- intent: "condense rule"
|
|
9
|
-
- intent: "refactor artifact"
|
|
10
7
|
- keyword: "Iron Law"
|
|
11
8
|
validator_ignore:
|
|
12
9
|
- type: "substring"
|
|
@@ -6,7 +6,6 @@ alwaysApply: false
|
|
|
6
6
|
triggers:
|
|
7
7
|
- keyword: "active_role"
|
|
8
8
|
- keyword: "role-mode"
|
|
9
|
-
- intent: "mode marker"
|
|
10
9
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
11
10
|
packs: [meta]
|
|
12
11
|
---
|
|
@@ -4,8 +4,6 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Writing a credential into a tracked file or committing one in any VCS (git/svn/hg) — STOP, show the match, ask, offer alternatives; never silently"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "writing a credential or API key into a file"
|
|
8
|
-
- intent: "committing or staging changes that may contain a secret"
|
|
9
7
|
- keyword: "secret"
|
|
10
8
|
- keyword: "password"
|
|
11
9
|
- keyword: "credential"
|
|
@@ -4,8 +4,6 @@ tier: "2b"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Writing/generating code — generalize (no overfit/tautological tests), supply the invisible cross-cutting controls, never invent an API/field/package"
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "writing or generating code"
|
|
8
|
-
- intent: "implementing a feature"
|
|
9
7
|
- keyword: "implement"
|
|
10
8
|
- keyword: "endpoint"
|
|
11
9
|
- keyword: "query"
|
|
@@ -4,8 +4,6 @@ tier: "2a"
|
|
|
4
4
|
description: "personal.canary_name set — open every new task by name (liveness canary); keep the reply-close markers alive (ONE end-summary, PR URL last)"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "starting a new task or a new conversation"
|
|
8
|
-
- intent: "opening the first reply to a request"
|
|
9
7
|
- keyword: "canary"
|
|
10
8
|
- keyword: "canary_name"
|
|
11
9
|
- phrase: "session canary"
|
|
@@ -3,11 +3,6 @@ type: "manual"
|
|
|
3
3
|
tier: "mechanical-already"
|
|
4
4
|
description: "Creating or editing rules, skills, commands, guidelines, AGENTS.md, or copilot-instructions.md — enforce size and scope limits"
|
|
5
5
|
alwaysApply: false
|
|
6
|
-
triggers:
|
|
7
|
-
- intent: "create rule"
|
|
8
|
-
- intent: "create skill"
|
|
9
|
-
- intent: "create command"
|
|
10
|
-
- intent: "create guideline"
|
|
11
6
|
workspaces: [agent-config-maintainer]
|
|
12
7
|
packs: [meta]
|
|
13
8
|
---
|
|
@@ -10,9 +10,6 @@ triggers:
|
|
|
10
10
|
- path_prefix: "docs/"
|
|
11
11
|
- path_prefix: "agents/evidence/"
|
|
12
12
|
- path_prefix: "agents/roadmaps/"
|
|
13
|
-
- intent: "adopt or harvest from an external repo"
|
|
14
|
-
- intent: "compare against another package"
|
|
15
|
-
- intent: "attribute an idea to an external source"
|
|
16
13
|
validator_ignore:
|
|
17
14
|
- type: "substring"
|
|
18
15
|
pattern: "external_sources_denylist"
|
|
@@ -6,9 +6,9 @@ alwaysApply: false
|
|
|
6
6
|
load_context:
|
|
7
7
|
- ../contexts/communication/rules-auto/think-before-action-mechanics.md
|
|
8
8
|
triggers:
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- phrase: "before coding"
|
|
10
|
+
- phrase: "before debugging"
|
|
11
|
+
- phrase: "before modifying"
|
|
12
12
|
- keyword: "implement"
|
|
13
13
|
- keyword: "debug"
|
|
14
14
|
- keyword: "refactor"
|
|
@@ -6,9 +6,8 @@ alwaysApply: false
|
|
|
6
6
|
load_context:
|
|
7
7
|
- ../contexts/communication/rules-auto/token-efficiency-mechanics.md
|
|
8
8
|
triggers:
|
|
9
|
-
- intent: "verbose CLI output"
|
|
10
|
-
- intent: "fetching logs"
|
|
11
9
|
- keyword: "minimize tool calls"
|
|
10
|
+
- phrase: "fetching logs"
|
|
12
11
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
13
12
|
packs: [meta]
|
|
14
13
|
---
|
|
@@ -6,9 +6,6 @@ alwaysApply: false
|
|
|
6
6
|
load_context:
|
|
7
7
|
- ../contexts/communication/rules-auto/user-interaction-mechanics.md
|
|
8
8
|
triggers:
|
|
9
|
-
- intent: "ask user a question"
|
|
10
|
-
- intent: "numbered options"
|
|
11
|
-
- intent: "summarizing progress"
|
|
12
9
|
- keyword: "option"
|
|
13
10
|
- keyword: "recommendation"
|
|
14
11
|
- phrase: "what do you recommend"
|
|
@@ -4,7 +4,6 @@ tier: "2a"
|
|
|
4
4
|
description: "New user instruction mid-flight — STOP the current task, run the new one in full, ASK before resuming"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
triggers:
|
|
7
|
-
- intent: "new instruction while a task is running"
|
|
8
7
|
- keyword: "weiter"
|
|
9
8
|
- keyword: "resume"
|
|
10
9
|
- keyword: "continue"
|
|
@@ -237,6 +237,14 @@ numbered options; do NOT auto-rewrite prose without the user's knowledge:
|
|
|
237
237
|
- Do NOT duplicate content that's already in `AGENTS.md` or `.github/copilot-instructions.md`.
|
|
238
238
|
- Do NOT write docs just to document what you did — only document things others need to know.
|
|
239
239
|
- If unsure whether a doc needs updating, **ask the user**.
|
|
240
|
+
- **Sibling-routing sentences are edited as a set, never alone.** When a skill's
|
|
241
|
+
`description:` carries a routing clause naming an overlapping sibling
|
|
242
|
+
(`Animated → pixar-storyteller`), editing it obliges re-reading every sibling
|
|
243
|
+
it names and every sibling that names it, so no user phrase ends up routed to
|
|
244
|
+
two skills and none ends up routed to neither. One-sided edits are how a
|
|
245
|
+
cluster's descriptions drift back into ambiguity between sweeps;
|
|
246
|
+
`lint_skill_descriptions` catches a *missing* clause, not an *inconsistent*
|
|
247
|
+
one.
|
|
240
248
|
|
|
241
249
|
## Output format
|
|
242
250
|
|
|
@@ -48,6 +48,7 @@ Run the row(s) for what you touched. The grep is a fast authoring-time backstop
|
|
|
48
48
|
| **DB query / ORM** | parameterized, never string-built; tenant predicate present; no `SELECT *` across a serialization boundary; N+1 avoided (eager load) | `source-discovery`, `security` |
|
|
49
49
|
| **Migration** | reversible (`down`); expand-contract for drop/rename (never a bare `DROP COLUMN` before code stops reading it); transaction; index on new FK/filter column | `engineering-safety-floor`, `migration-architect` |
|
|
50
50
|
| **User-controlled render (FE)** | output-encoded; no `dangerouslySetInnerHTML`/`v-html`/`innerHTML`/`eval` on non-constant input; no secret/token in client code; token not in `localStorage` | `frontend-render-security` |
|
|
51
|
+
| **Third-party asset in shipped markup / CSS** | delivery is self-hosted through the project's own route (framework font/asset primitive, bundled package, or locally-served file) — a font/icon/stylesheet CDN link transmits the **visitor's IP** to that third party on every page view; a hotlink only on a stated consumer opt-in; `integrity` + `crossorigin` if a CDN link stays | `design-fidelity-mechanics` § Asset & imagery discipline (owner), `typography-system` |
|
|
51
52
|
| **File / outbound fetch** | path confined to an allowed base; SSRF allow-list + private-IP block on user-supplied URLs; size limit; **explicit timeout** (no unbounded/default-infinite wait); server-side validation (never client-only) | `security`, `defense-in-depth` |
|
|
52
53
|
| **Infra / IaC** | least-privilege (no `Action:*`/`Resource:*`); encryption at rest; no `0.0.0.0/0` to mgmt/DB ports; no hardcoded creds; scanner-verified, not `plan`-verified | `engineering-safety-floor`, `terraform`, `secrets-management` |
|
|
53
54
|
| **New dependency** | package exists on the real registry (not hallucinated); not typo-adjacent to a popular one; pinned + lockfile committed; CVE-scanned | `supply-chain-intake`, `dependency-upgrade` |
|