@event4u/agent-config 1.14.0 → 1.15.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/.agent-src/commands/agent-handoff.md +1 -1
- package/.agent-src/commands/bug-fix.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +2 -2
- package/.agent-src/commands/chat-history-clear.md +1 -1
- package/.agent-src/commands/chat-history-resume.md +2 -2
- package/.agent-src/commands/chat-history.md +2 -2
- package/.agent-src/commands/check-current-md.md +43 -32
- package/.agent-src/commands/commit-in-chunks.md +43 -23
- package/.agent-src/commands/compress.md +34 -2
- package/.agent-src/commands/feature-roadmap.md +2 -2
- package/.agent-src/commands/fix-portability.md +2 -2
- package/.agent-src/commands/onboard.md +14 -5
- package/.agent-src/commands/optimize-augmentignore.md +9 -0
- package/.agent-src/commands/refine-ticket.md +9 -7
- package/.agent-src/commands/review-changes.md +35 -8
- package/.agent-src/commands/roadmap-create.md +13 -2
- package/.agent-src/commands/roadmap-execute.md +9 -7
- package/.agent-src/commands/set-cost-profile.md +8 -0
- package/.agent-src/commands/sync-agent-settings.md +9 -0
- package/.agent-src/commands/tests-execute.md +2 -3
- package/.agent-src/rules/artifact-engagement-recording.md +1 -1
- package/.agent-src/rules/augment-portability.md +56 -37
- package/.agent-src/rules/chat-history-cadence.md +109 -0
- package/.agent-src/rules/chat-history-ownership.md +123 -0
- package/.agent-src/rules/chat-history-visibility.md +96 -0
- package/.agent-src/rules/cli-output-handling.md +1 -1
- package/.agent-src/rules/command-suggestion.md +3 -2
- package/.agent-src/rules/commit-policy.md +44 -34
- package/.agent-src/rules/direct-answers.md +1 -1
- package/.agent-src/rules/language-and-tone.md +19 -15
- package/.agent-src/rules/non-destructive-by-default.md +18 -18
- package/.agent-src/rules/roadmap-progress-sync.md +133 -74
- package/.agent-src/rules/role-mode-adherence.md +1 -1
- package/.agent-src/rules/size-enforcement.md +2 -1
- package/.agent-src/rules/user-interaction.md +28 -4
- package/.agent-src/scripts/update_roadmap_progress.py +56 -4
- package/.agent-src/skills/blade-ui/SKILL.md +29 -10
- package/.agent-src/skills/command-writing/SKILL.md +15 -4
- package/.agent-src/skills/existing-ui-audit/SKILL.md +24 -9
- package/.agent-src/skills/fe-design/SKILL.md +20 -15
- package/.agent-src/skills/file-editor/SKILL.md +9 -0
- package/.agent-src/skills/livewire/SKILL.md +26 -7
- package/.agent-src/skills/refine-ticket/SKILL.md +30 -24
- package/.agent-src/skills/roadmap-management/SKILL.md +22 -16
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/upstream-contribute/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +1 -1
- package/.agent-src/templates/roadmaps.md +9 -8
- package/.agent-src/templates/scripts/memory_lookup.py +1 -1
- package/.agent-src/templates/scripts/work_engine/__init__.py +2 -2
- package/.agent-src/templates/scripts/work_engine/cli.py +64 -461
- package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
- package/.agent-src/templates/scripts/work_engine/delivery_state.py +3 -3
- package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/implement.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/memory.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/plan.py +1 -1
- package/.agent-src/templates/scripts/work_engine/directives/backend/report.py +1 -1
- package/.agent-src/templates/scripts/work_engine/dispatcher.py +1 -1
- package/.agent-src/templates/scripts/work_engine/emitters.py +43 -0
- package/.agent-src/templates/scripts/work_engine/errors.py +19 -0
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +76 -0
- package/.agent-src/templates/scripts/work_engine/input_builders.py +163 -0
- package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +34 -2
- package/.agent-src/templates/scripts/work_engine/persona_policy.py +1 -1
- package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +1 -1
- package/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +6 -4
- package/CHANGELOG.md +83 -8
- package/README.md +24 -23
- package/docs/MIGRATION.md +122 -0
- package/docs/architecture.md +83 -34
- package/docs/contracts/STABILITY.md +95 -0
- package/docs/contracts/adr-chat-history-split.md +132 -0
- package/docs/contracts/adr-command-suggestion.md +146 -0
- package/docs/contracts/adr-implement-ticket-runtime.md +122 -0
- package/docs/contracts/adr-product-ui-track.md +384 -0
- package/docs/contracts/adr-prompt-driven-execution.md +187 -0
- package/docs/contracts/agent-memory-contract.md +149 -0
- package/docs/contracts/artifact-engagement-flow.md +262 -0
- package/docs/contracts/command-clusters.md +126 -0
- package/docs/contracts/command-suggestion-flow.md +148 -0
- package/docs/contracts/implement-ticket-flow.md +628 -0
- package/docs/contracts/linear-ai-rules-inclusion.md +143 -0
- package/docs/contracts/linear-ai-three-layers.md +131 -0
- package/docs/contracts/rule-interactions.md +107 -0
- package/docs/contracts/rule-interactions.yml +142 -0
- package/docs/contracts/ui-stack-extension.md +236 -0
- package/docs/contracts/ui-track-flow.md +338 -0
- package/docs/getting-started.md +2 -2
- package/docs/installation.md +42 -6
- package/docs/migrations/commands-1.15.0.md +112 -0
- package/docs/ui-track-mental-model.md +121 -0
- package/package.json +1 -1
- package/scripts/build_linear_digest.py +4 -4
- package/scripts/check_portability.py +2 -0
- package/scripts/check_public_links.py +185 -0
- package/scripts/check_references.py +1 -0
- package/scripts/lint_no_new_atomic_commands.py +179 -0
- package/scripts/lint_rule_interactions.py +149 -0
- package/scripts/memory_lookup.py +1 -1
- package/scripts/release.py +297 -64
- package/scripts/skill_linter.py +14 -0
- package/scripts/update_counts.py +10 -0
- package/.agent-src/rules/chat-history.md +0 -200
|
@@ -30,12 +30,13 @@ the dashboard **in the same response**.
|
|
|
30
30
|
`count_open == 0` (pure `[x]`, or `[x]` + `[~]`/`[-]`), `git mv`
|
|
31
31
|
it into `agents/roadmaps/archive/` **before** regenerating — see
|
|
32
32
|
the auto-archive decision table under "Check completion status"
|
|
33
|
-
below. A 100%-complete roadmap left in `agents/roadmaps/` makes
|
|
34
|
-
|
|
33
|
+
below. A 100%-complete roadmap left in `agents/roadmaps/` makes the
|
|
34
|
+
next reader think work is still open.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
Batching edits in one response is fine — one final
|
|
38
|
-
replying is enough. But the response must not end
|
|
36
|
+
This is enforced by the [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md)
|
|
37
|
+
rule. Batching multiple edits in one response is fine — one final
|
|
38
|
+
regeneration before replying is enough. But the response must not end
|
|
39
|
+
without it.
|
|
39
40
|
|
|
40
41
|
## Procedure: Manage a roadmap
|
|
41
42
|
|
|
@@ -100,11 +101,13 @@ Every roadmap follows this structure:
|
|
|
100
101
|
|
|
101
102
|
## Key rules for roadmaps
|
|
102
103
|
|
|
103
|
-
### Checkboxes
|
|
104
|
+
### Checkboxes — mandatory, not decorative
|
|
104
105
|
|
|
106
|
+
- **Every active roadmap MUST contain at least one `- [ ]` per non-intro phase.** Decision tables, ICE matrices, and block-sequencing tables are valid rationale, but they do not satisfy this rule on their own — pair them with a `## Phase N` or `## Implementation Checklist` section whose checkboxes execute the decision. A roadmap without checkboxes is invisible to `agents/roadmaps-progress.md` and violates [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md) Iron Law #2.
|
|
105
107
|
- Every actionable step uses `- [ ]` (unchecked) or `- [x]` (completed).
|
|
106
108
|
- Mark steps as `[x]` immediately after completing them.
|
|
107
109
|
- Never remove completed steps — they serve as history.
|
|
110
|
+
- **Status is binary: `ready` (default, implicit) or `draft`.** New roadmaps are created **ready** unless the user explicitly says otherwise — `ready` is implicit and need not be written. A roadmap that is still being authored, awaiting upstream decisions, or capturing options without a worked plan declares `status: draft` in YAML frontmatter at the top of the file. Drafts are hidden from `agents/roadmaps-progress.md` until the flag is removed or flipped to `ready`. There are no other status values; legacy banners (`**Status: directional**`, `Status: capture-only`, `mode: feedback`) are removed.
|
|
108
111
|
|
|
109
112
|
### Phases
|
|
110
113
|
|
|
@@ -138,12 +141,13 @@ Every roadmap implicitly includes these gates (run after each step that changes
|
|
|
138
141
|
1. Ask the user for goal, context-create, and phases.
|
|
139
142
|
2. Use the template structure from `.augment/templates/roadmaps.md`.
|
|
140
143
|
3. Review with the user iteratively until approved.
|
|
141
|
-
4. **Branch & release questions —
|
|
142
|
-
Default: stay on current branch, no version numbers in
|
|
143
|
-
Only propose a separate branch
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
4. **Branch & release questions — at most once, only if genuinely useful.**
|
|
145
|
+
Default: stay on the current branch, no version numbers in the
|
|
146
|
+
roadmap. Only propose a separate branch when there is concrete,
|
|
147
|
+
evidence-based reason (e.g. risky migration benefits from a spike).
|
|
148
|
+
Never include release versions, deprecation dates, or git tags in
|
|
149
|
+
the roadmap text. If the user declines, do **not** re-propose during
|
|
150
|
+
`roadmap-execute`. Decline = silence. See [`scope-control`](../../rules/scope-control.md#decline--silence--no-re-asking-on-the-same-task).
|
|
147
151
|
5. Save with a kebab-case filename (e.g. `optimize-webhook-jobs.md`).
|
|
148
152
|
6. Regenerate the dashboard so the new roadmap is included.
|
|
149
153
|
|
|
@@ -272,8 +276,10 @@ Command:
|
|
|
272
276
|
./agent-config roadmap:progress-check # CI: fail if stale
|
|
273
277
|
```
|
|
274
278
|
|
|
275
|
-
The `./agent-config` wrapper
|
|
276
|
-
installer and
|
|
279
|
+
The `./agent-config` wrapper lives in the project root (written by the
|
|
280
|
+
package installer, gitignored) and delegates to the master CLI inside
|
|
281
|
+
`node_modules/@event4u/agent-config/` or `vendor/event4u/agent-config/`.
|
|
282
|
+
No global tooling required.
|
|
277
283
|
|
|
278
284
|
The dashboard is a **read-only snapshot**. Do not edit it by hand — regenerate it.
|
|
279
285
|
|
|
@@ -309,5 +315,5 @@ The dashboard is a **read-only snapshot**. Do not edit it by hand — regenerate
|
|
|
309
315
|
- Do NOT archive roadmaps with open `[ ]` items without asking the user.
|
|
310
316
|
- Do NOT delete roadmaps — always move to `archive/` or `skipped/`.
|
|
311
317
|
- Do NOT use `skipped/` as a dumping ground for partially-finished work — that is what `archive/` with deferred items is for.
|
|
312
|
-
- Do NOT assign version numbers, git tags, deprecation dates, or release identifiers to phases. Hard rule — see [`scope-control`](../../rules/scope-control.md#git-operations--permission-gated).
|
|
313
|
-
- Do NOT propose a branch switch while executing a roadmap.
|
|
318
|
+
- Do NOT assign version numbers, git tags, deprecation dates, or release identifiers to phases. Roadmaps plan work; releases and tags are decided by the user separately. Hard rule — see [`scope-control`](../../rules/scope-control.md#git-operations--permission-gated).
|
|
319
|
+
- Do NOT propose a branch switch while executing a roadmap. The branch question is settled at creation time; if the user already declined (or you never asked because it wasn't sensible), stay silent. See [`scope-control`](../../rules/scope-control.md#decline--silence--no-re-asking-on-the-same-task).
|
|
@@ -173,9 +173,9 @@ Present the stub as a numbered-options prompt (per `user-interaction`):
|
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
Nothing is committed without the user's pick. If the user picks *skip*,
|
|
176
|
-
record it in the commit message (`Eval stub: deferred`). Peer examples
|
|
177
|
-
`php-coder/evals/triggers.json`,
|
|
178
|
-
`skill-writing/evals/triggers.json`.
|
|
176
|
+
record it in the commit message (`Eval stub: deferred`). Peer examples
|
|
177
|
+
for the expected format: `php-coder/evals/triggers.json`,
|
|
178
|
+
`eloquent/evals/triggers.json`, `skill-writing/evals/triggers.json`.
|
|
179
179
|
|
|
180
180
|
Rules / commands / guidelines do **not** get eval stubs — only skills
|
|
181
181
|
route through the top-level catalogue.
|
|
@@ -185,7 +185,7 @@ run the Stage-4 gate before opening the PR:
|
|
|
185
185
|
./agent-config proposal:check agents/proposals/{slug}.md
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
-
**Hard refusal rule:** if `
|
|
188
|
+
**Hard refusal rule:** if `./agent-config proposal:check` exits non-zero, STOP —
|
|
189
189
|
do not create the branch, do not push, do not open the PR. Surface the
|
|
190
190
|
findings to the user, ask them to fix the proposal (add evidence,
|
|
191
191
|
remove TODO markers, complete required sections), then rerun.
|
|
@@ -247,7 +247,7 @@ The shared version now replaces the local override.
|
|
|
247
247
|
## Do NOT
|
|
248
248
|
|
|
249
249
|
- **Do NOT create any upstream artifact without explicit user consent** — this is the #1 rule
|
|
250
|
-
- **Do NOT open a PR if `
|
|
250
|
+
- **Do NOT open a PR if `./agent-config proposal:check` blocks** — fix the proposal first (step 6b)
|
|
251
251
|
- Do NOT edit `.augment/` in the consumer project — it's managed by the package
|
|
252
252
|
- Do NOT submit project-specific content without generalizing it first
|
|
253
253
|
- Do NOT skip the compressed version — both files are mandatory
|
|
@@ -299,7 +299,7 @@ commands:
|
|
|
299
299
|
# rules, commands, guidelines, personas) the agent consulted and
|
|
300
300
|
# applied. Local only, append-only JSONL, never reaches a consumer
|
|
301
301
|
# repo (gitignored). Maintainer-targeted feature; consumers leave it
|
|
302
|
-
# off. See `
|
|
302
|
+
# off. See `docs/contracts/artifact-engagement-flow.md` (once Phase 3
|
|
303
303
|
# of road-to-artifact-engagement-telemetry lands).
|
|
304
304
|
telemetry:
|
|
305
305
|
artifact_engagement:
|
|
@@ -7,7 +7,8 @@ Templates for roadmap files stored in `agents/roadmaps/` or `app/Modules/{Module
|
|
|
7
7
|
## Rules for Roadmaps
|
|
8
8
|
|
|
9
9
|
1. **Be precise and concise.** Aim for 500–1000 lines max. If larger, split into multiple files.
|
|
10
|
-
2. **
|
|
10
|
+
2. **Checkboxes are mandatory, not decorative.** Every active roadmap MUST contain at least one `- [ ]` per non-intro phase. Decision tables, ICE matrices, and block-sequencing tables capture the *why*; checkboxes capture the *what to do next*. A roadmap without checkboxes is invisible to `agents/roadmaps-progress.md` — the dashboard cannot count it, the next reader thinks no work is planned. Enforced by [`roadmap-progress-sync`](../rules/roadmap-progress-sync.md) Iron Law #2.
|
|
11
|
+
- **Status is binary: `ready` (default) or `draft`.** New roadmaps are created **ready** unless the user explicitly says draft — `ready` is implicit and need not be written. Drafts declare it via frontmatter at the top of the file (`---\nstatus: draft\n---`) and are hidden from the dashboard until the flag is removed or flipped to `ready`. Use `draft` while the roadmap is still being authored, while waiting for upstream decisions, or as a capture-only synthesis that has not been promoted to executable phases. There are no other status values; legacy banners like `**Status: directional**` are removed.
|
|
11
12
|
3. **State the goal first.** One sentence at the top — what is the outcome?
|
|
12
13
|
4. **List prerequisites** — what must exist or be running before starting.
|
|
13
14
|
5. **Reference existing code** — point to files, classes, or modules.
|
|
@@ -24,17 +25,17 @@ Templates for roadmap files stored in `agents/roadmaps/` or `app/Modules/{Module
|
|
|
24
25
|
- `agents/roadmaps/skipped/` — decision against pursuit; typically 0 items `[x]` (superseded, scope rejected)
|
|
25
26
|
|
|
26
27
|
See the `roadmap-management` skill for the exact trigger matrix and user-confirmation flow.
|
|
27
|
-
|
|
28
28
|
13. **No tags, releases, or version numbers.** Roadmaps describe work, not shipping.
|
|
29
29
|
Never assign version suffixes to phases (`Phase 1 — v1.8.0`), never write
|
|
30
30
|
"Target release: X.Y.Z", never plan git tags or deprecation dates. Release
|
|
31
|
-
and tag decisions belong to the user
|
|
32
|
-
[`scope-control`](../rules/scope-control.md#git-operations--permission-gated).
|
|
31
|
+
and tag decisions belong to the user and are taken outside the roadmap.
|
|
32
|
+
This is enforced by [`scope-control`](../rules/scope-control.md#git-operations--permission-gated).
|
|
33
33
|
14. **No automatic branch switches mid-roadmap.** Roadmap work runs on the
|
|
34
|
-
|
|
35
|
-
be useful, agent may propose it **once**
|
|
36
|
-
execution. Default: stay on
|
|
37
|
-
|
|
34
|
+
branch the user is on. If a separate branch (spike, hotfix, experiment)
|
|
35
|
+
would be genuinely useful, the agent may propose it **once** while
|
|
36
|
+
creating the roadmap — not during execution. Default: stay on the
|
|
37
|
+
current branch. If the user declines, the topic is closed for this
|
|
38
|
+
roadmap. See [`scope-control`](../rules/scope-control.md#decline--silence--no-re-asking-on-the-same-task).
|
|
38
39
|
|
|
39
40
|
---
|
|
40
41
|
|
|
@@ -246,7 +246,7 @@ def _apply_conflict_rule(
|
|
|
246
246
|
# says retrieval should route through `@event4u/agent-memory`. The package
|
|
247
247
|
# CLI is purely **semantic** (`memory retrieve <query> --type T …`); the
|
|
248
248
|
# shared `retrieve(types, keys, …)` API is **key-based**. The hybrid
|
|
249
|
-
# resolution agreed in `
|
|
249
|
+
# resolution agreed in `docs/contracts/agent-memory-contract.md` synthesises
|
|
250
250
|
# `keys` into a single natural-language query for the package call, while
|
|
251
251
|
# the file fallback continues to do glob/substring matching on the same
|
|
252
252
|
# keys. Both legs land in the same `Hit` shape so the conflict rule can
|
|
@@ -8,8 +8,8 @@ the dispatcher, CLI and step modules over from the legacy
|
|
|
8
8
|
that re-exports from here with a ``DeprecationWarning``.
|
|
9
9
|
|
|
10
10
|
Architectural constraints (from
|
|
11
|
-
``
|
|
12
|
-
``
|
|
11
|
+
``docs/contracts/adr-implement-ticket-runtime.md`` and
|
|
12
|
+
``docs/contracts/implement-ticket-flow.md``):
|
|
13
13
|
|
|
14
14
|
- Runtime is Python 3.10+.
|
|
15
15
|
- The dispatcher is linear, not a DAG. Eight fixed steps, fixed order.
|