@event4u/agent-config 2.25.0 → 2.26.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.
Files changed (122) hide show
  1. package/.agent-src/commands/bug-fix.md +1 -0
  2. package/.agent-src/commands/feature/roadmap.md +2 -2
  3. package/.agent-src/commands/fix/seeder.md +3 -2
  4. package/.agent-src/commands/memory/add.md +3 -3
  5. package/.agent-src/commands/module/create.md +1 -0
  6. package/.agent-src/commands/module/explore.md +10 -6
  7. package/.agent-src/commands/onboard.md +9 -1
  8. package/.agent-src/commands/optimize/augmentignore.md +52 -20
  9. package/.agent-src/commands/optimize/rtk.md +56 -30
  10. package/.agent-src/commands/package-test.md +86 -10
  11. package/.agent-src/commands/quality-fix.md +49 -27
  12. package/.agent-src/commands/update-form-request-messages.md +2 -1
  13. package/.agent-src/contexts/augment-infrastructure.md +4 -7
  14. package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
  15. package/.agent-src/contexts/contracts/research-schema.md +1 -1
  16. package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
  17. package/.agent-src/contexts/skills-and-commands.md +2 -2
  18. package/.agent-src/rules/architecture.md +24 -10
  19. package/.agent-src/rules/artifact-drafting-protocol.md +6 -0
  20. package/.agent-src/rules/augment-edit-discipline.md +28 -0
  21. package/.agent-src/rules/augment-source-of-truth.md +2 -2
  22. package/.agent-src/rules/autonomous-execution.md +31 -0
  23. package/.agent-src/rules/context-hygiene.md +1 -1
  24. package/.agent-src/rules/domain-adoption-policy.md +4 -5
  25. package/.agent-src/rules/domain-safety-disclaimer.md +114 -0
  26. package/.agent-src/rules/domain-safety-pii.md +142 -0
  27. package/.agent-src/rules/domain-safety-retention.md +86 -0
  28. package/.agent-src/rules/downstream-changes.md +4 -4
  29. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +130 -0
  30. package/.agent-src/rules/git-history-discipline.md +99 -0
  31. package/.agent-src/rules/minimal-safe-diff.md +6 -0
  32. package/.agent-src/rules/no-roadmap-references.md +4 -2
  33. package/.agent-src/rules/user-interrupt-priority.md +46 -0
  34. package/.agent-src/rules/verify-before-complete.md +11 -2
  35. package/.agent-src/skills/adversarial-review/SKILL.md +1 -1
  36. package/.agent-src/skills/ai-council/SKILL.md +1 -0
  37. package/.agent-src/skills/api-endpoint/SKILL.md +58 -154
  38. package/.agent-src/skills/api-testing/SKILL.md +11 -0
  39. package/.agent-src/skills/code-refactoring/SKILL.md +36 -30
  40. package/.agent-src/skills/code-review/SKILL.md +41 -36
  41. package/.agent-src/skills/context-authoring/SKILL.md +1 -1
  42. package/.agent-src/skills/dashboard-design/SKILL.md +1 -2
  43. package/.agent-src/skills/database/SKILL.md +8 -3
  44. package/.agent-src/skills/dependency-upgrade/SKILL.md +65 -19
  45. package/.agent-src/skills/developer-like-execution/SKILL.md +25 -14
  46. package/.agent-src/skills/eloquent/SKILL.md +1 -1
  47. package/.agent-src/skills/feature-planning/SKILL.md +1 -1
  48. package/.agent-src/skills/file-editor/SKILL.md +45 -19
  49. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  50. package/.agent-src/skills/git-workflow/SKILL.md +4 -4
  51. package/.agent-src/skills/laravel-api-endpoint/SKILL.md +187 -0
  52. package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +5 -4
  53. package/.agent-src/skills/{migration-creator → laravel-migration}/SKILL.md +11 -10
  54. package/.agent-src/skills/laravel-reverb/SKILL.md +3 -3
  55. package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +4 -3
  56. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +1 -1
  57. package/.agent-src/skills/merge-conflicts/SKILL.md +49 -17
  58. package/.agent-src/skills/migration-architect/SKILL.md +6 -6
  59. package/.agent-src/skills/module-management/SKILL.md +1 -0
  60. package/.agent-src/skills/multi-tenancy/SKILL.md +15 -8
  61. package/.agent-src/skills/pest-testing/SKILL.md +18 -0
  62. package/.agent-src/skills/php-debugging/SKILL.md +28 -0
  63. package/.agent-src/skills/php-service/SKILL.md +3 -3
  64. package/.agent-src/skills/playwright-testing/SKILL.md +16 -1
  65. package/.agent-src/skills/project-analyzer/SKILL.md +68 -42
  66. package/.agent-src/skills/readme-writing-package/SKILL.md +94 -23
  67. package/.agent-src/skills/roadmap-management/SKILL.md +1 -1
  68. package/.agent-src/skills/rtk-output-filtering/SKILL.md +23 -8
  69. package/.agent-src/skills/rule-refactor/SKILL.md +145 -0
  70. package/.agent-src/skills/rule-writing/SKILL.md +34 -8
  71. package/.agent-src/skills/security/SKILL.md +38 -29
  72. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  73. package/.agent-src/skills/test-driven-development/SKILL.md +4 -4
  74. package/.agent-src/skills/test-performance/SKILL.md +6 -5
  75. package/.agent-src/skills/verify-completion-evidence/SKILL.md +24 -27
  76. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  77. package/.agent-src/templates/copilot-instructions.md +2 -2
  78. package/.agent-src/templates/rule.md +2 -2
  79. package/.claude-plugin/marketplace.json +6 -4
  80. package/AGENTS.md +1 -1
  81. package/CHANGELOG.md +74 -170
  82. package/README.md +2 -2
  83. package/docs/architecture.md +2 -2
  84. package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
  85. package/docs/catalog.md +17 -12
  86. package/docs/contracts/file-ownership-matrix.json +473 -43
  87. package/docs/contracts/kernel-membership.md +17 -0
  88. package/docs/contracts/smoke-contracts.md +8 -8
  89. package/docs/getting-started.md +1 -1
  90. package/docs/guidelines/php/api-design.md +1 -1
  91. package/docs/guidelines/php/controllers.md +1 -1
  92. package/docs/guidelines/php/resources.md +1 -1
  93. package/docs/guidelines/php/validations.md +1 -1
  94. package/package.json +1 -1
  95. package/scripts/build_linear_digest.py +0 -1
  96. package/scripts/lint_framework_leakage.py +348 -0
  97. package/scripts/lint_framework_leakage_allowlist.json +476 -0
  98. package/scripts/measure_augment_budget.py +6 -0
  99. package/scripts/schemas/command.schema.json +5 -0
  100. package/scripts/schemas/skill.schema.json +5 -0
  101. package/scripts/skill_linter.py +60 -7
  102. package/scripts/smoke/kernel.sh +4 -4
  103. package/scripts/smoke/router.sh +2 -2
  104. package/.agent-src/rules/agent-docs.md +0 -20
  105. package/.agent-src/rules/augment-portability.md +0 -23
  106. package/.agent-src/rules/capture-learnings.md +0 -19
  107. package/.agent-src/rules/docs-sync.md +0 -20
  108. package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
  109. package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
  110. package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
  111. package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
  112. package/.agent-src/rules/domain-safety-export-redact.md +0 -65
  113. package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
  114. package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
  115. package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
  116. package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
  117. package/.agent-src/rules/domain-safety-pii-support.md +0 -57
  118. package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
  119. package/.agent-src/rules/domain-safety-retention-support.md +0 -55
  120. package/.agent-src/rules/e2e-testing.md +0 -19
  121. package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
  122. package/.agent-src/rules/post-push-rewrite-discipline.md +0 -70
@@ -1,48 +0,0 @@
1
- ---
2
- type: "auto"
3
- tier: "2a"
4
- description: "Finance data retention guidance — flag jurisdiction dependence, default to longest applicable retention, never delete records under audit hold"
5
- source: package
6
- triggers:
7
- - keyword: "retention policy"
8
- - keyword: "data retention"
9
- - keyword: "record retention"
10
- - keyword: "delete financial"
11
- - keyword: "purge invoice"
12
- - phrase: "how long should we keep"
13
- - phrase: "when can we delete"
14
- routes_to:
15
- - "skill:data-handling-judgment"
16
- applies_to_user_types:
17
- - "finance"
18
- - "ops"
19
- ---
20
-
21
- # Domain Safety — Finance Record Retention
22
-
23
- ## Iron Law
24
-
25
- ```
26
- WHEN ASKED HOW LONG TO KEEP FINANCIAL RECORDS — NAME THE JURISDICTION GAP
27
- AND DEFAULT TO THE LONGEST APPLICABLE FLOOR. NEVER RECOMMEND DELETION
28
- OF RECORDS UNDER AUDIT HOLD, LITIGATION HOLD, OR REGULATORY INQUIRY.
29
- ```
30
-
31
- Retention questions look operational but are regulatory minefields: tax-authority floors, statute-of-limitations windows, GAAP / IFRS requirements, and contractual obligations stack non-trivially. A wrong "delete after 3 years" recommendation can destroy evidence in a future tax audit or litigation.
32
-
33
- ## Required surface in every retention answer
34
-
35
- 1. **Jurisdiction gap.** *"Retention floor depends on jurisdiction — name yours."* Then provide ranges if known (e.g., US-federal-tax: 7 years from filing; EU VAT: 10 years in DE/AT, 6 in UK post-Brexit).
36
- 2. **Audit / litigation hold check.** *"If any of these apply, do not delete: open tax audit, pending litigation, regulatory inquiry, contractual record-keeping clause, criminal investigation."*
37
- 3. **Longest-floor default.** When multiple floors apply, the longest wins. Document the chosen floor.
38
- 4. **Disclaimer.** Append the financial-disclaimer footer from `domain-safety-disclaimer-financial`.
39
-
40
- ## Refusal triggers
41
-
42
- - *"Delete all invoices older than 2 years"* (without jurisdiction context) → refuse + ask the jurisdiction-gap question.
43
- - *"We're under SEC investigation — can we clean up old emails?"* → hard refuse; flag spoliation risk; redirect to counsel.
44
-
45
- ## See also
46
-
47
- - `skill:data-handling-judgment` — retention + transfer cognition.
48
- - `domain-safety-disclaimer-financial` — companion advisory disclaimer.
@@ -1,55 +0,0 @@
1
- ---
2
- type: "auto"
3
- tier: "2a"
4
- description: "Support / CRM data retention guidance — surface DSR-readiness, consent-window expiry, ticket-body retention vs. analytics aggregate retention"
5
- source: package
6
- triggers:
7
- - keyword: "ticket retention"
8
- - keyword: "CRM retention"
9
- - keyword: "DSAR"
10
- - keyword: "data subject request"
11
- - keyword: "right to be forgotten"
12
- - phrase: "delete customer data"
13
- - phrase: "how long do we keep tickets"
14
- routes_to:
15
- - "skill:data-handling-judgment"
16
- - "skill:privacy-review"
17
- applies_to_user_types:
18
- - "support"
19
- - "gtm"
20
- ---
21
-
22
- # Domain Safety — Support / CRM Retention
23
-
24
- ## Iron Law
25
-
26
- ```
27
- SUPPORT-DATA RETENTION ANSWERS DISTINGUISH RAW TICKET BODY (PII-LADEN)
28
- FROM AGGREGATE ANALYTICS (DE-IDENTIFIED). DSR-READINESS IS THE FLOOR,
29
- NOT THE CEILING.
30
- ```
31
-
32
- The right answer to *"how long do we keep tickets?"* is almost never a single number — it's a two-track policy. Raw ticket bodies contain PII and must respect deletion requests on a DSR clock (typically 30 days under GDPR). De-identified aggregate analytics (resolution times, category counts) can persist indefinitely for product / ops insight.
33
-
34
- ## Required structure in every support-retention answer
35
-
36
- 1. **Two tracks.** Raw ticket body + attachments (PII): short retention with DSR honoring. Aggregate metrics (de-identified): long retention OK.
37
- 2. **Consent-window check.** If consent was time-bound (e.g., "we'll keep your data for 12 months for support quality"), name the expiry and the deletion job that must run.
38
- 3. **DSR readiness.** *"You must be able to honor a deletion request within [N] days. The system needs a query that finds every ticket + attachment + log line tied to one customer."*
39
- 4. **Backup retention gotcha.** *"Backups also contain PII. Either purge on the same DSR clock or document that backups are inaccessible and rotate within [N] days."*
40
-
41
- ## Default floors (cite, then qualify)
42
-
43
- | Class | Typical floor | Driver |
44
- |---|---|---|
45
- | Raw ticket body | 12-24 months from close | Consent window + DSR readiness |
46
- | Attachments with PII | 6-12 months | Higher leak risk → shorter |
47
- | Aggregate analytics (de-identified) | Indefinite | No PII linkage |
48
- | Quality-assurance recordings | 30-90 days | Consent typically narrow |
49
-
50
- Verify against the customer's privacy notice, regulatory regime, and contractual data-processing agreements before locking values.
51
-
52
- ## See also
53
-
54
- - `skill:data-handling-judgment` — retention + DSR shape.
55
- - `skill:privacy-review` — regulatory-regime read.
@@ -1,19 +0,0 @@
1
- ---
2
- type: "auto"
3
- tier: "3"
4
- description: "Playwright E2E tests — locators, assertions, Page Objects, fixtures, CI, and flaky test prevention"
5
- source: package
6
- triggers:
7
- - keyword: "playwright"
8
- - keyword: "e2e"
9
- - phrase: "page object"
10
- routes_to:
11
- - "command:e2e-heal"
12
- ---
13
-
14
- # E2E Testing
15
-
16
- **Iron Law.** Playwright E2E: stable locators, no `waitForTimeout`, Page Objects for shared flows, fixtures over `beforeEach`.
17
-
18
- Body migrated to `command:e2e-heal` (per P4 of `road-to-kernel-and-router.md`).
19
- Trigger-set above activates this routing under the `balanced` and `full` profiles.
@@ -1,107 +0,0 @@
1
- ---
2
- type: "auto"
3
- tier: "2a"
4
- alwaysApply: false
5
- description: "Working with git history — never rewrite, rebase, squash, fixup, or amend without explicit user request; shape is the user's call, not tidiness"
6
- source: package
7
- triggers:
8
- - intent: "rebase the branch"
9
- - intent: "squash commits"
10
- - intent: "clean up commit history"
11
- - intent: "fold this into the previous commit"
12
- - keyword: "git rebase"
13
- - keyword: "fixup"
14
- - keyword: "--amend"
15
- - keyword: "force-push"
16
- - keyword: "squash-merge"
17
- ---
18
-
19
- # No Unsolicited Rebase
20
-
21
- ## Iron Law
22
-
23
- ```
24
- NEVER REBASE, SQUASH, FIXUP, OR AMEND PUBLISHED OR LOCAL HISTORY
25
- WITHOUT THE USER ASKING FOR IT THIS TURN.
26
- LINEAR HISTORY IS A PREFERENCE, NOT A DEFAULT.
27
- COMMIT-CHUNK ORDER IS NOT A CORRECTNESS GOAL.
28
- ```
29
-
30
- Add the next commit on top. Never reorder, fold, drop, or rewrite earlier
31
- commits to make the log "look right".
32
-
33
- ## Why this rule exists
34
-
35
- Interactive rebase + fixup loops generate disproportionate token cost on
36
- every iteration: re-running CI per replayed commit, resolving the same
37
- content conflict in three derived files (`.compression-hashes.json`,
38
- `router.json`, `.windsurfrules`), losing the working tree to a stash that
39
- silently re-introduces older state. A single conflict can burn the budget
40
- of an entire feature. The user pays for it. The "clean history" payoff is
41
- cosmetic; reviewers read the diff, not the log.
42
-
43
- ## When rebase / amend / fixup IS allowed
44
-
45
- Exactly three:
46
-
47
- 1. **User says so this turn** — "rebase onto main", "squash these two",
48
- "amend that". This operation only, not a standing rule.
49
- 2. **Standing instruction not yet revoked** — the user said earlier in
50
- the conversation "always squash before pushing"; honor it.
51
- 3. **Conflict resolution forced by `git pull --rebase`** — the user
52
- already invoked the rebase via pull; finish it.
53
-
54
- Anything else — chunk-tidiness, "logical order", folding a follow-up fix
55
- into its parent — **forbidden**. The follow-up ships as its own commit
56
- (`fix: …`, `chore: …`).
57
-
58
- ## Equivalents that are also forbidden by default
59
-
60
- - `git rebase -i` (interactive)
61
- - `git rebase --autosquash`
62
- - `git commit --fixup` / `--squash` (the helper that feeds the autosquash)
63
- - `git commit --amend` on already-pushed commits
64
- - `git push --force` / `--force-with-lease`
65
- - `git reset --hard` past unpushed work the user might want
66
- - Squash-merge of a PR via API or CLI when the user has not picked the
67
- merge strategy
68
- - Cherry-pick rewriting that drops or reorders commits
69
-
70
- `--amend` on the *current local* commit before the first push is the
71
- narrow exception (treated as continuing to compose the commit, not
72
- rewriting history).
73
-
74
- ## When you'd be tempted
75
-
76
- - "I want commit 3 to come before commit 2 because the topic flows better."
77
- → don't. Reviewers read the PR diff.
78
- - "There are two `chore: regenerate` commits, ugly." → don't. They are
79
- honest checkpoints.
80
- - "A linter caught an issue in commit 2 — let me fold the fix in."
81
- → don't. Add `fix(scope): …` on top.
82
- - "I want to drop the WIP commit before pushing." → ask the user first.
83
- - "Squash-merge when I open the PR will clean it anyway." → also true,
84
- also irrelevant — let the merge strategy do that work, not you.
85
-
86
- ## Failure mode catalog
87
-
88
- - **Rebase-conflict cascade.** Interactive rebase replays N commits. Any
89
- derived file (`.compression-hashes.json`, generated tool projections,
90
- index/catalog) carries a hash per commit and conflicts on every replay.
91
- Resolution time scales with N, not with the actual change.
92
- - **Stash-pop reverts work.** A `git stash` issued during rebase recovery
93
- can re-introduce older edits that overwrite committed work after the
94
- rebase finishes. Hard to spot in `git status` because the file shapes
95
- match.
96
- - **Force-push during review.** Rewriting history on a branch with an
97
- open PR invalidates review comments anchored to commits and forces a
98
- re-review.
99
-
100
- ## See also
101
-
102
- - [`scope-control`](scope-control.md) — git-ops permission gate ("rebase"
103
- already named in the canonical list).
104
- - [`commit-policy`](commit-policy.md) — commits are the user's call;
105
- rewriting them is a stronger version of the same restriction.
106
- - [`token-efficiency`](token-efficiency.md) — Iron Law on burning the
107
- user's tokens for cosmetic gain.
@@ -1,70 +0,0 @@
1
- ---
2
- type: "auto"
3
- tier: "2a"
4
- alwaysApply: false
5
- description: "Git history after a push — squash/amend/rebase of pushed commits must pair with immediate re-push in same turn; stop on divergent state"
6
- source: package
7
- triggers:
8
- - intent: "squash the pushed branch"
9
- - intent: "clean up commits on the PR branch"
10
- - intent: "tidy history after pushing"
11
- - keyword: "git rebase -i"
12
- - keyword: "--amend"
13
- - keyword: "force-push"
14
- - keyword: "--force-with-lease"
15
- - phrase: "branch diverged"
16
- - phrase: "pull --rebase failed"
17
- - phrase: "ahead and behind"
18
- routes_to:
19
- - "skill:git-workflow"
20
- ---
21
-
22
- # Post-Push Rewrite Discipline
23
-
24
- ## Iron Law
25
-
26
- ```
27
- ONCE PUSHED, A COMMIT IS PUBLISHED.
28
- ANY REWRITE OF PUSHED HISTORY MUST PAIR WITH AN IMMEDIATE RE-PUSH
29
- IN THE SAME TURN — OR DON'T REWRITE.
30
- NEVER END A SESSION WITH REWRITTEN-BUT-UNPUSHED LOCAL HISTORY.
31
- ```
32
-
33
- ## Two protective stops
34
-
35
- 1. **Pre-rewrite stop.** Before any squash / amend / rebase on a
36
- branch that is on origin: `git fetch && git rev-list --left-right
37
- --count HEAD...@{u}`. If **either** side is non-zero — STOP and
38
- route to `skill:git-workflow § Divergent-State Recovery`. A blind
39
- `git pull --rebase` in this state is the documented failure mode.
40
-
41
- 2. **Post-rewrite stop.** After the rewrite, push in the **same turn**
42
- with `--force-with-lease=<branch>:<fetched-sha>` and verify
43
- `git rev-parse origin/<branch>` equals `git rev-parse HEAD`.
44
- If the push fails (hook, network, token budget) — fix the cause
45
- and re-push **before** ending the session, committing new work,
46
- or handing off.
47
-
48
- If either stop fires and resolution is not immediate → tag the state
49
- (`git tag local-rewritten-tip-<ISO-date>`) and hand control back to
50
- the user. Do not let a new session inherit a dirty divergence.
51
-
52
- ## Why this rule exists
53
-
54
- A previous session squashed a pushed branch, the push hook failed at
55
- the token boundary, the session ended — and the next session saw
56
- local and origin pointing at different SHAs for the same logical work.
57
- A blind `git pull --rebase` cascaded into conflicts across every
58
- derived file (`.compression-hashes.json`, router projections). Recovery
59
- required forensic SHA-archaeology. This rule makes that sequence
60
- structurally impossible: rewrite without immediate push is forbidden.
61
-
62
- ## See also
63
-
64
- - [`no-unsolicited-rebase`](no-unsolicited-rebase.md) — whether to
65
- rewrite at all (this rule kicks in once rewriting is authorized).
66
- - [`skill:git-workflow`](../skills/git-workflow/SKILL.md) — Safe
67
- Squash-After-Push protocol and Divergent-State Recovery decision
68
- tree.
69
- - [`commit-policy`](commit-policy.md) — never rewrite or commit
70
- without explicit authorization.