@event4u/agent-config 1.32.0 → 1.33.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/research/deep.md +149 -0
- package/.agent-src/commands/research/report.md +134 -0
- package/.agent-src/commands/research.md +43 -13
- package/.claude-plugin/marketplace.json +3 -1
- package/CHANGELOG.md +27 -0
- package/README.md +3 -3
- package/docs/architecture.md +2 -2
- package/docs/catalog.md +10 -3
- package/docs/contracts/command-clusters.md +1 -1
- package/docs/contracts/file-ownership-matrix.json +54 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/5w2h-analysis.md +260 -0
- package/docs/guidelines/agent-infra/critical-thinking.md +156 -0
- package/docs/guidelines/agent-infra/first-principles.md +192 -0
- package/docs/guidelines/agent-infra/six-hats.md +353 -0
- package/docs/guidelines/agent-infra/systems-thinking.md +220 -0
- package/package.json +1 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research:deep
|
|
3
|
+
cluster: research
|
|
4
|
+
sub: deep
|
|
5
|
+
description: "Read `outline.yaml`, research each item in batches, write per-item JSON validated against the project-local research-schema. No Python runtime, no `~/.claude/` paths."
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
skills: [deep-reading-analyst]
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "deep research, populate the research scaffold, fill outline.yaml items"
|
|
11
|
+
trigger_context: "user has run `/research <topic>` and now wants per-item depth"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /research:deep
|
|
15
|
+
|
|
16
|
+
Reads the `outline.yaml` produced by [`/research`](../research.md), launches
|
|
17
|
+
batched per-item research, and writes one JSON per item under
|
|
18
|
+
`{output_dir}/`. Each JSON is self-validated against the
|
|
19
|
+
[`research-schema`](../../contexts/contracts/research-schema.md)
|
|
20
|
+
contract before write — **no `validate_json.py` script, no Python
|
|
21
|
+
runtime, no `~/.claude/` paths**.
|
|
22
|
+
|
|
23
|
+
## Trigger
|
|
24
|
+
|
|
25
|
+
`/research:deep [--batch-confirm=each|once|auto]`
|
|
26
|
+
|
|
27
|
+
`--batch-confirm` controls user gating between batches:
|
|
28
|
+
|
|
29
|
+
- `each` (default) — confirm before every batch.
|
|
30
|
+
- `once` — confirm only the first batch, then run the rest.
|
|
31
|
+
- `auto` — no confirmation, run all batches (only honoured under
|
|
32
|
+
explicit `/roadmap process-full` autonomy).
|
|
33
|
+
|
|
34
|
+
## Workflow
|
|
35
|
+
|
|
36
|
+
### Step 1 — Auto-locate outline
|
|
37
|
+
|
|
38
|
+
Search `$PROJECT_ROOT/agents/research/*/outline.yaml` (single match) or
|
|
39
|
+
ask via numbered options if multiple `outline.yaml` files exist. Read:
|
|
40
|
+
|
|
41
|
+
- `topic`, `topic_slug`, `items[]`, `execution.batch_size`,
|
|
42
|
+
`execution.items_per_agent`, `execution.output_dir` (default
|
|
43
|
+
`./results` relative to the topic dir).
|
|
44
|
+
|
|
45
|
+
### Step 2 — Resume check
|
|
46
|
+
|
|
47
|
+
Scan `{output_dir}/` for `*.json` files; mark items whose
|
|
48
|
+
`{slug(item.name)}.json` exists as **complete**. Slugify by lowercasing,
|
|
49
|
+
replacing whitespace with `_`, and stripping characters outside
|
|
50
|
+
`[a-z0-9_-]`.
|
|
51
|
+
|
|
52
|
+
### Step 3 — Batch execution
|
|
53
|
+
|
|
54
|
+
Group remaining items by `batch_size` (each batch holds
|
|
55
|
+
`batch_size × items_per_agent` items at most). For each batch:
|
|
56
|
+
|
|
57
|
+
1. Show the batch summary: `[N/M] items: a, b, c …`.
|
|
58
|
+
2. Apply the `--batch-confirm` policy (default `each` — wait for the
|
|
59
|
+
user; `once` after the first; `auto` skips).
|
|
60
|
+
3. For every item in the batch, run the per-item research using the
|
|
61
|
+
agent's **native web-search** (no `web-search-agent` persona).
|
|
62
|
+
|
|
63
|
+
#### Per-item prompt template
|
|
64
|
+
|
|
65
|
+
Variables in `{xxx}` only — **do not modify structure or wording**.
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
## Task
|
|
69
|
+
Research {item_related_info}, output structured JSON to {output_path}.
|
|
70
|
+
|
|
71
|
+
## Field definitions
|
|
72
|
+
Read {fields_path} to get all field definitions.
|
|
73
|
+
|
|
74
|
+
## Output requirements
|
|
75
|
+
1. Output JSON whose top-level keys map to the categories in
|
|
76
|
+
`fields.yaml` (or to the `{slug(category)}` form — both are
|
|
77
|
+
accepted by `/research:report`).
|
|
78
|
+
2. Mark uncertain field values with the literal string `[uncertain]`.
|
|
79
|
+
3. Append an `uncertain` array at the end of the JSON listing all
|
|
80
|
+
field names whose value contains `[uncertain]` or could not be
|
|
81
|
+
sourced.
|
|
82
|
+
4. All field values in English.
|
|
83
|
+
|
|
84
|
+
## Output path
|
|
85
|
+
{output_path}
|
|
86
|
+
|
|
87
|
+
## Validation (no Python, no host paths)
|
|
88
|
+
Self-validate the JSON against
|
|
89
|
+
`<package>/.agent-src.uncompressed/contexts/contracts/research-schema.md`
|
|
90
|
+
in memory before writing. The well-formedness escape hatch is
|
|
91
|
+
`jq -e '.[]' {output_path}` — agent runs it after write and re-tries
|
|
92
|
+
once on failure. Task is complete only after both checks pass.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### Variable bindings
|
|
96
|
+
|
|
97
|
+
| Variable | Source |
|
|
98
|
+
|---|---|
|
|
99
|
+
| `{topic}` | `outline.yaml#/topic` |
|
|
100
|
+
| `{item_related_info}` | the item's full YAML block (`name`, `category`, `description`, etc.) |
|
|
101
|
+
| `{output_dir}` | `outline.yaml#/execution/output_dir` (default `./results`) |
|
|
102
|
+
| `{fields_path}` | `$PROJECT_ROOT/agents/research/{topic_slug}/fields.yaml` |
|
|
103
|
+
| `{output_path}` | `{output_dir}/{slug(item.name)}.json` |
|
|
104
|
+
|
|
105
|
+
### Step 4 — Wait and monitor
|
|
106
|
+
|
|
107
|
+
Wait for the current batch to finish (all per-item JSON files written
|
|
108
|
+
+ validated). Display per-item status (`✅ done`, `⚠️ uncertain`,
|
|
109
|
+
`❌ failed`) before moving on.
|
|
110
|
+
|
|
111
|
+
### Step 5 — Summary report
|
|
112
|
+
|
|
113
|
+
After all batches complete, print:
|
|
114
|
+
|
|
115
|
+
- Total items · completed · uncertain · failed.
|
|
116
|
+
- Output directory.
|
|
117
|
+
- Pointer to `/research:report` for the next phase.
|
|
118
|
+
|
|
119
|
+
## Output paths
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
$PROJECT_ROOT/agents/research/{topic_slug}/
|
|
123
|
+
├── outline.yaml
|
|
124
|
+
├── fields.yaml
|
|
125
|
+
└── {output_dir}/
|
|
126
|
+
├── {slug(item_a)}.json
|
|
127
|
+
├── {slug(item_b)}.json
|
|
128
|
+
└── …
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Portability notes
|
|
132
|
+
|
|
133
|
+
- **No Python runtime** — validator dropped at adoption, replaced by
|
|
134
|
+
the in-memory JSON-Schema check + `jq -e` escape hatch (`jq` is
|
|
135
|
+
optional; agents skip it gracefully if not installed and report
|
|
136
|
+
`⚠️ jq missing — well-formedness not verified`).
|
|
137
|
+
- **No `~/.claude/` paths** — every reference is rooted at
|
|
138
|
+
`$PROJECT_ROOT/agents/research/`.
|
|
139
|
+
- **No `web-search-agent` persona** — uses the host agent's native
|
|
140
|
+
web-search tool.
|
|
141
|
+
|
|
142
|
+
## ADOPT citation
|
|
143
|
+
|
|
144
|
+
Adopted from [`Weizhena/Deep-Research-skills`](https://github.com/Weizhena/Deep-Research-skills)
|
|
145
|
+
`@dc18cf4:skills/research-en/research-deep/SKILL.md` · MIT License.
|
|
146
|
+
Refactored:
|
|
147
|
+
dropped Pydantic validator + `~/.claude/` paths + `web-search-agent`
|
|
148
|
+
persona, added `--batch-confirm` flag, kept the per-item prompt
|
|
149
|
+
structure verbatim except for the validation block.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research:report
|
|
3
|
+
cluster: research
|
|
4
|
+
sub: report
|
|
5
|
+
description: "Summarise per-item JSON results from `/research:deep` into `report.md`. Agent renders directly + emits an optional `jq` template for deterministic regeneration. No Python runtime."
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
skills: [deep-reading-analyst]
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "summarise research results, build research report, render outline.yaml results"
|
|
11
|
+
trigger_context: "user has finished `/research:deep` and wants a single markdown summary"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /research:report
|
|
15
|
+
|
|
16
|
+
Reads the per-item JSON files emitted by
|
|
17
|
+
[`/research:deep`](deep.md), asks the user which fields to surface in
|
|
18
|
+
the table of contents, then writes `{topic_slug}/report.md` directly.
|
|
19
|
+
Optionally emits `{topic_slug}/report-template.jq` so the same report
|
|
20
|
+
can be regenerated deterministically without re-invoking the agent.
|
|
21
|
+
|
|
22
|
+
## Trigger
|
|
23
|
+
|
|
24
|
+
`/research:report`
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
### Step 1 — Locate results
|
|
29
|
+
|
|
30
|
+
Find `$PROJECT_ROOT/agents/research/*/outline.yaml` (single match) or
|
|
31
|
+
ask via numbered options. Read `topic`, `topic_slug`, and
|
|
32
|
+
`execution.output_dir`.
|
|
33
|
+
|
|
34
|
+
### Step 2 — Scan summary-field candidates
|
|
35
|
+
|
|
36
|
+
Read every `*.json` in `{output_dir}/`. Collect field names whose
|
|
37
|
+
values are short / numeric (e.g. `github_stars`,
|
|
38
|
+
`google_scholar_cites`, `swe_bench_score`, `user_scale`, `valuation`,
|
|
39
|
+
`release_date`). Filter:
|
|
40
|
+
|
|
41
|
+
- numeric scalars (int / float),
|
|
42
|
+
- short strings (≤ 40 chars), or
|
|
43
|
+
- ISO-8601 dates.
|
|
44
|
+
|
|
45
|
+
### Step 3 — Ask user (numbered options)
|
|
46
|
+
|
|
47
|
+
Per [`user-interaction`](../../rules/user-interaction.md) Iron Law,
|
|
48
|
+
offer numbered options for **TOC summary fields** drawn from the
|
|
49
|
+
candidate list. Allow multi-select (e.g., *"1, 3, 5"*) plus *"none"*.
|
|
50
|
+
|
|
51
|
+
### Step 4 — Render `report.md` directly
|
|
52
|
+
|
|
53
|
+
The agent itself reads each JSON + `fields.yaml` + the user's TOC
|
|
54
|
+
choices, then writes `{topic_slug}/report.md`. **No `generate_report.py`
|
|
55
|
+
script, no Python runtime.**
|
|
56
|
+
|
|
57
|
+
#### Required structure
|
|
58
|
+
|
|
59
|
+
1. **Title** — `# {topic} — Research Report`.
|
|
60
|
+
2. **TOC** — every item, anchor-linked, with the chosen summary fields
|
|
61
|
+
inline. Example:
|
|
62
|
+
`1. [GitHub Copilot](#github-copilot) — Stars: 10k · Score: 85%`.
|
|
63
|
+
3. **Detailed sections** — one `## {item.name}` per item, then
|
|
64
|
+
`### {category}` per category from `fields.yaml`, then field
|
|
65
|
+
key/value rows.
|
|
66
|
+
|
|
67
|
+
#### Rendering rules
|
|
68
|
+
|
|
69
|
+
| Rule | Behaviour |
|
|
70
|
+
|---|---|
|
|
71
|
+
| **JSON shape** | Support flat (`{"name": "…"}`) and nested (`{"basic_info": {"name": "…"}}`) layouts. Lookup order: top-level → category mapping → recursive walk. |
|
|
72
|
+
| **Category mapping** | Maintain a bidirectional alias map between `fields.yaml` category labels and JSON keys (e.g. `"Basic info" ↔ "basic_info"`). Use language-neutral keys, no hard-coded English/Chinese. |
|
|
73
|
+
| **List of dicts** | One row per dict, `key:value` pairs joined with ` \| `. |
|
|
74
|
+
| **Plain list** | Short → comma-joined; long (> 5 items) → bullet list. |
|
|
75
|
+
| **Nested dict** | Recurse; render with `;` between sibling keys or hard-break on long values. |
|
|
76
|
+
| **Long text** | Strings > 100 chars → wrap in a blockquote or insert `<br>`. |
|
|
77
|
+
| **Extra fields** | JSON keys not declared in `fields.yaml` → group under `### Other info`. Filter `_source_file`, `uncertain`, and category-container keys. |
|
|
78
|
+
| **`uncertain` array** | Render each entry on its own line under `### Uncertain fields`; never compress to a one-liner. |
|
|
79
|
+
| **Skip conditions** | Field value contains `[uncertain]` · field name in `uncertain` · value is `null` / empty string. |
|
|
80
|
+
|
|
81
|
+
### Step 5 — Optional `jq` template (deterministic regenerate)
|
|
82
|
+
|
|
83
|
+
Also emit `{topic_slug}/report-template.jq` capturing the user's TOC
|
|
84
|
+
choices + rendering rules as a `jq` program. Document the regenerate
|
|
85
|
+
command in the file's leading comment:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
# Regenerate report.md without re-invoking the agent:
|
|
89
|
+
# jq -rsf report-template.jq results/*.json > report.md
|
|
90
|
+
# Requires: jq ≥ 1.6. Skip this file if jq is unavailable —
|
|
91
|
+
# `report.md` from step 4 is the canonical artefact.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
The template is **best-effort**. Agents that cannot fully express
|
|
95
|
+
the rendering rules in `jq` may emit a stub with a `# TODO` comment
|
|
96
|
+
and a pointer back to step 4. The primary deliverable is `report.md`;
|
|
97
|
+
the `jq` template is a power-user convenience.
|
|
98
|
+
|
|
99
|
+
### Step 6 — Confirm
|
|
100
|
+
|
|
101
|
+
Print:
|
|
102
|
+
|
|
103
|
+
- Path to `report.md`.
|
|
104
|
+
- Whether `report-template.jq` was emitted.
|
|
105
|
+
- Item count · category count · skipped-uncertain count.
|
|
106
|
+
|
|
107
|
+
## Output paths
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
$PROJECT_ROOT/agents/research/{topic_slug}/
|
|
111
|
+
├── report.md # primary artefact (agent-rendered)
|
|
112
|
+
└── report-template.jq # optional, deterministic regen
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Portability notes
|
|
116
|
+
|
|
117
|
+
- **No Python runtime** — upstream's `generate_report.py` was a
|
|
118
|
+
Python conversion script; this port shifts the transformation to
|
|
119
|
+
the agent (primary) + a `jq` template (optional). `augment-portability`
|
|
120
|
+
Iron Law upheld.
|
|
121
|
+
- **No `~/.claude/` paths** — every reference is rooted at
|
|
122
|
+
`$PROJECT_ROOT/agents/research/`.
|
|
123
|
+
- **`jq` is optional** — agents skip the template gracefully and
|
|
124
|
+
surface `⚠️ jq template not emitted` in the summary if generation
|
|
125
|
+
fails or the dependency is missing.
|
|
126
|
+
|
|
127
|
+
## ADOPT citation
|
|
128
|
+
|
|
129
|
+
Adopted from [`Weizhena/Deep-Research-skills`](https://github.com/Weizhena/Deep-Research-skills)
|
|
130
|
+
`@dc18cf4:skills/research-en/research-report/SKILL.md` · MIT License.
|
|
131
|
+
Refactored: dropped the `generate_report.py` Python script (replaced
|
|
132
|
+
with agent-side rendering + optional `jq` template), kept the
|
|
133
|
+
multilingual category mapping + complex-value formatting rules,
|
|
134
|
+
re-anchored every path under `$PROJECT_ROOT/agents/research/`.
|
|
@@ -12,15 +12,43 @@ suggestion:
|
|
|
12
12
|
|
|
13
13
|
# /research
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
the
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
Top-level entry point for the `/research` family. Bare `/research <topic>`
|
|
16
|
+
runs the preliminary scaffolder described under `## Default flow`. Sub-commands
|
|
17
|
+
drive the downstream phases (`:deep` populates the scaffold, `:report`
|
|
18
|
+
summarises the results).
|
|
19
19
|
|
|
20
20
|
Routes thinking-framework support to
|
|
21
21
|
[`deep-reading-analyst`](../skills/deep-reading-analyst/SKILL.md) (SCQA
|
|
22
22
|
for narrative structure, mental-models lens for object selection).
|
|
23
23
|
|
|
24
|
+
## Sub-commands
|
|
25
|
+
|
|
26
|
+
| Sub-command | Routes to | Purpose |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `/research <topic>` (bare) | this file (`## Default flow`) | Pick objects, define fields, emit `outline.yaml` + `fields.yaml` |
|
|
29
|
+
| `/research:deep` | `commands/research/deep.md` | Read scaffold, research each item in batches, write per-item JSON |
|
|
30
|
+
| `/research:report` | `commands/research/report.md` | Summarise per-item JSON into a markdown report (+ optional `jq` template) |
|
|
31
|
+
|
|
32
|
+
## Dispatch
|
|
33
|
+
|
|
34
|
+
1. Parse the user's argument: `/research[:<sub>] [args]`.
|
|
35
|
+
2. Bare `/research <topic>` → run the `## Workflow` below verbatim.
|
|
36
|
+
3. `/research:deep` → load `commands/research/deep.md` and follow its
|
|
37
|
+
`## Workflow` section verbatim.
|
|
38
|
+
4. `/research:report` → load `commands/research/report.md` and follow its
|
|
39
|
+
`## Workflow` section verbatim.
|
|
40
|
+
5. Unknown sub-command → print the table above and ask which one.
|
|
41
|
+
|
|
42
|
+
## Rules
|
|
43
|
+
|
|
44
|
+
- **Do NOT commit, push, or open a PR** unless the sub-command explicitly
|
|
45
|
+
authorizes it.
|
|
46
|
+
- **Do NOT chain sub-commands.** One `/research[:<sub>]` per turn.
|
|
47
|
+
- If the user invokes `/research` with no argument, **show the menu** —
|
|
48
|
+
do not guess whether they meant the bare workflow or a sub-command.
|
|
49
|
+
- **Edit `.agent-src.uncompressed/` only.** `.agent-src/` and `.augment/`
|
|
50
|
+
regenerate from source.
|
|
51
|
+
|
|
24
52
|
## Trigger
|
|
25
53
|
|
|
26
54
|
`/research <topic>`
|
|
@@ -126,17 +154,19 @@ $PROJECT_ROOT/agents/research/{topic_slug}/
|
|
|
126
154
|
└── fields.yaml # field definitions
|
|
127
155
|
```
|
|
128
156
|
|
|
129
|
-
## Out of scope
|
|
157
|
+
## Out of scope
|
|
130
158
|
|
|
131
|
-
`/research
|
|
132
|
-
|
|
133
|
-
are
|
|
159
|
+
`/research:add-items` and `/research:add-fields` are **not** ported —
|
|
160
|
+
the existing scaffolder + sub-commands cover the round-trip; the
|
|
161
|
+
upstream incremental-edit commands are too thin to justify their own
|
|
162
|
+
sub-command. Re-run `/research <topic>` and merge by hand if the
|
|
163
|
+
field framework needs a follow-up adjustment.
|
|
134
164
|
|
|
135
165
|
## ADOPT citation
|
|
136
166
|
|
|
137
167
|
Adopted from [`Weizhena/Deep-Research-skills`](https://github.com/Weizhena/Deep-Research-skills)
|
|
138
|
-
|
|
139
|
-
Refactored: dropped `web-search-agent` persona
|
|
140
|
-
Pydantic validator (replaced with JSON-Schema
|
|
141
|
-
`./` → `$PROJECT_ROOT/agents/research
|
|
142
|
-
`/research
|
|
168
|
+
`@dc18cf4:skills/research-en/research/SKILL.md` · MIT License.
|
|
169
|
+
Refactored: dropped `web-search-agent` persona
|
|
170
|
+
(portability), dropped Pydantic validator (replaced with JSON-Schema
|
|
171
|
+
reference), repathed `./` → `$PROJECT_ROOT/agents/research/`. Phase 2
|
|
172
|
+
ported `/research:deep` and `/research:report` as cluster sub-commands.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.33.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
@@ -213,6 +213,8 @@
|
|
|
213
213
|
"./.claude/skills/repomix-packer",
|
|
214
214
|
"./.claude/skills/requesting-code-review",
|
|
215
215
|
"./.claude/skills/research",
|
|
216
|
+
"./.claude/skills/research-deep",
|
|
217
|
+
"./.claude/skills/research-report",
|
|
216
218
|
"./.claude/skills/review-changes",
|
|
217
219
|
"./.claude/skills/review-routing",
|
|
218
220
|
"./.claude/skills/rice-prioritization",
|
package/CHANGELOG.md
CHANGED
|
@@ -318,6 +318,33 @@ our recommendation order, not its support status.
|
|
|
318
318
|
users" tension without removing any path that an existing user
|
|
319
319
|
might rely on.
|
|
320
320
|
|
|
321
|
+
## [1.33.0](https://github.com/event4u-app/agent-config/compare/1.32.0...1.33.0) (2026-05-09)
|
|
322
|
+
|
|
323
|
+
### Features
|
|
324
|
+
|
|
325
|
+
* **commands:** port /research:deep + /research:report as cluster sub-commands ([71f8141](https://github.com/event4u-app/agent-config/commit/71f8141a3c553ee5b35f31ffdd7ab33e9cb110e5))
|
|
326
|
+
* **guidelines:** port 5w2h, six-hats, systems-thinking, first-principles, critical-thinking from ginobefun ([40ea866](https://github.com/event4u-app/agent-config/commit/40ea8662f4e7714aa66348aff5456b53a3045350))
|
|
327
|
+
|
|
328
|
+
### Bug Fixes
|
|
329
|
+
|
|
330
|
+
* **roadmap:** inline council convergence summary instead of file ref ([1087cab](https://github.com/event4u-app/agent-config/commit/1087cab557c12fb353cb7a3e5ac7ab27a8d19379))
|
|
331
|
+
* **research:** add ## Rules section to cluster head ([044bdab](https://github.com/event4u-app/agent-config/commit/044bdabd82b2b16350277f3f7b5e1b0e50703242))
|
|
332
|
+
* **research:** collapse ADOPT citation paths into repo@sha:path tokens ([54deb0d](https://github.com/event4u-app/agent-config/commit/54deb0ddcf201ecbeecf6a57c1074d904fb2d197))
|
|
333
|
+
|
|
334
|
+
### Documentation
|
|
335
|
+
|
|
336
|
+
* **counts:** bump command count 101→103 in README + getting-started ([f2fb002](https://github.com/event4u-app/agent-config/commit/f2fb0026c803819569c0c739fdbad8addd96928a))
|
|
337
|
+
* **roadmap:** refresh counts and progress for deep-research adoption phase 2 ([2c284cd](https://github.com/event4u-app/agent-config/commit/2c284cd431480e9c2ae39ec70132a1f8d5eb6e59))
|
|
338
|
+
|
|
339
|
+
### Chores
|
|
340
|
+
|
|
341
|
+
* **roadmap:** close road-to-feedback-followups (P0-P3+P5 done, P4 deferred) ([b07db6c](https://github.com/event4u-app/agent-config/commit/b07db6cae705a1e372ed9b75e47d2b14f8447b18))
|
|
342
|
+
* **roadmap:** cancel road-to-event-driven-discipline (skipped, 0% executed) ([590f27d](https://github.com/event4u-app/agent-config/commit/590f27d8c7239431df92e1b7e003837c6e0be178))
|
|
343
|
+
* **roadmap:** close road-to-deep-research-adoption (P1+P2 done, P3 dropped) ([d2a8808](https://github.com/event4u-app/agent-config/commit/d2a880836d79f13efefe6b3257a2ac869e6c9697))
|
|
344
|
+
* **ownership:** regenerate file-ownership matrix for research cluster ([e90f886](https://github.com/event4u-app/agent-config/commit/e90f8861a356e51dbb7bce8baf5c2d8e53732bd2))
|
|
345
|
+
|
|
346
|
+
Tests: 2560 (+0 since 1.32.0)
|
|
347
|
+
|
|
321
348
|
## [1.32.0](https://github.com/event4u-app/agent-config/compare/1.31.0...1.32.0) (2026-05-09)
|
|
322
349
|
|
|
323
350
|
### Features
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
|
|
|
7
7
|
> Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<strong>153 Skills</strong> · <strong>60 Rules</strong> · <strong>
|
|
10
|
+
<strong>153 Skills</strong> · <strong>60 Rules</strong> · <strong>103 Commands</strong> · <strong>68 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
13
|
---
|
|
@@ -343,7 +343,7 @@ kernel set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-member
|
|
|
343
343
|
| [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
|
|
344
344
|
| [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
|
|
345
345
|
|
|
346
|
-
→ [Browse all
|
|
346
|
+
→ [Browse all 103 active commands](.agent-src/commands/)
|
|
347
347
|
|
|
348
348
|
---
|
|
349
349
|
|
|
@@ -368,7 +368,7 @@ Every developer gets the same behavior. No per-user setup needed.
|
|
|
368
368
|
native slash-commands)
|
|
369
369
|
|
|
370
370
|
> **What this means in practice:** Augment Code and Claude Code get the full
|
|
371
|
-
> package (rules + 153 skills +
|
|
371
|
+
> package (rules + 153 skills + 103 native commands). Cursor, Cline, Windsurf,
|
|
372
372
|
> Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
|
|
373
373
|
> commands are available to them as documentation the agent can read, not as
|
|
374
374
|
> first-class features.
|
package/docs/architecture.md
CHANGED
|
@@ -98,8 +98,8 @@ fails on any source-side violation, without producing artifacts.
|
|
|
98
98
|
|---|---|---|
|
|
99
99
|
| **Skills** | 153 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
|
|
100
100
|
| **Rules** | 60 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
|
|
101
|
-
| **Commands** |
|
|
102
|
-
| **Guidelines** |
|
|
101
|
+
| **Commands** | 103 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
|
|
102
|
+
| **Guidelines** | 68 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
|
|
103
103
|
| **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
|
|
104
104
|
| **Contexts** | 5 | Shared knowledge about the system itself |
|
|
105
105
|
|
package/docs/catalog.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# agent-config — Public Catalog
|
|
2
2
|
|
|
3
|
-
Consumer-facing catalog of all **
|
|
3
|
+
Consumer-facing catalog of all **381 public artefacts** shipped by
|
|
4
4
|
this package. Internal package-maintenance rules and deprecation shims
|
|
5
5
|
are excluded.
|
|
6
6
|
|
|
@@ -227,7 +227,7 @@ are excluded.
|
|
|
227
227
|
| rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
|
|
228
228
|
| rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
|
|
229
229
|
|
|
230
|
-
## Commands (
|
|
230
|
+
## Commands (103)
|
|
231
231
|
|
|
232
232
|
| kind | name | cluster | description |
|
|
233
233
|
|---|---|---|---|
|
|
@@ -312,6 +312,8 @@ are excluded.
|
|
|
312
312
|
| command | [`project-health`](../.agent-src/commands/project-health.md) | | Quick project health check — show status of docs, modules, contexts, and roadmaps without creating anything |
|
|
313
313
|
| command | [`quality-fix`](../.agent-src/commands/quality-fix.md) | | Run quality pipeline (PHP and/or JS/TS) and fix all errors — auto-detects language from changed files |
|
|
314
314
|
| command | [`refine-ticket`](../.agent-src/commands/refine-ticket.md) | | Refine a Jira/Linear ticket before planning — rewritten ticket + Top-5 risks + persona voices, orchestrates validate-feature-fit and threat-modeling, ends with a close-prompt |
|
|
315
|
+
| command | [`research:deep`](../.agent-src/commands/research/deep.md) | cluster: research | Read `outline.yaml`, research each item in batches, write per-item JSON validated against the project-local research-schema. No Python runtime, no `~/.claude/` paths. |
|
|
316
|
+
| command | [`research:report`](../.agent-src/commands/research/report.md) | cluster: research | Summarise per-item JSON results from `/research:deep` into `report.md`. Agent renders directly + emits an optional `jq` template for deterministic regeneration. No Python runtime. |
|
|
315
317
|
| command | [`research`](../.agent-src/commands/research.md) | cluster: research | Preliminary research scaffolder — pick objects, define fields, emit `outline.yaml` + `fields.yaml` for downstream deep research. Use for surveys, benchmarks, tech selection, competitive scans. |
|
|
316
318
|
| command | [`review-changes`](../.agent-src/commands/review-changes.md) | | Self-review local changes before creating a PR — dispatches to four specialized judges (bug, security, tests, quality) and consolidates verdicts |
|
|
317
319
|
| command | [`review-routing`](../.agent-src/commands/review-routing.md) | | Compute reviewer roles and matched historical bug patterns for the current diff, using project-local ownership-map.yml and historical-bug-patterns.yml |
|
|
@@ -333,18 +335,21 @@ are excluded.
|
|
|
333
335
|
| command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
|
|
334
336
|
| command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
|
|
335
337
|
|
|
336
|
-
## Guidelines (
|
|
338
|
+
## Guidelines (68)
|
|
337
339
|
|
|
338
340
|
| kind | name | category | description |
|
|
339
341
|
|---|---|---|---|
|
|
342
|
+
| guideline | [`5w2h-analysis`](../docs/guidelines/agent-infra/5w2h-analysis.md) | agent-infra | |
|
|
340
343
|
| guideline | [`agent-interaction-and-decision-quality`](../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md) | agent-infra | |
|
|
341
344
|
| guideline | [`ask-when-uncertain-demos`](../docs/guidelines/agent-infra/ask-when-uncertain-demos.md) | agent-infra | |
|
|
342
345
|
| guideline | [`asking-and-brevity-examples`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md) | agent-infra | |
|
|
343
346
|
| guideline | [`break-glass-usage`](../docs/guidelines/agent-infra/break-glass-usage.md) | agent-infra | |
|
|
344
347
|
| guideline | [`carve-out-predicates`](../docs/guidelines/agent-infra/carve-out-predicates.md) | agent-infra | |
|
|
348
|
+
| guideline | [`critical-thinking`](../docs/guidelines/agent-infra/critical-thinking.md) | agent-infra | |
|
|
345
349
|
| guideline | [`developer-judgment`](../docs/guidelines/agent-infra/developer-judgment.md) | agent-infra | |
|
|
346
350
|
| guideline | [`direct-answers-demos`](../docs/guidelines/agent-infra/direct-answers-demos.md) | agent-infra | |
|
|
347
351
|
| guideline | [`engineering-memory-data-format`](../docs/guidelines/agent-infra/engineering-memory-data-format.md) | agent-infra | |
|
|
352
|
+
| guideline | [`first-principles`](../docs/guidelines/agent-infra/first-principles.md) | agent-infra | |
|
|
348
353
|
| guideline | [`inversion-thinking`](../docs/guidelines/agent-infra/inversion-thinking.md) | agent-infra | |
|
|
349
354
|
| guideline | [`ios-simulator-guide`](../docs/guidelines/agent-infra/ios-simulator-guide.md) | agent-infra | |
|
|
350
355
|
| guideline | [`language-and-tone-examples`](../docs/guidelines/agent-infra/language-and-tone-examples.md) | agent-infra | |
|
|
@@ -362,8 +367,10 @@ are excluded.
|
|
|
362
367
|
| guideline | [`runtime-layer`](../docs/guidelines/agent-infra/runtime-layer.md) | agent-infra | |
|
|
363
368
|
| guideline | [`scqa-framework`](../docs/guidelines/agent-infra/scqa-framework.md) | agent-infra | |
|
|
364
369
|
| guideline | [`self-improvement-pipeline`](../docs/guidelines/agent-infra/self-improvement-pipeline.md) | agent-infra | |
|
|
370
|
+
| guideline | [`six-hats`](../docs/guidelines/agent-infra/six-hats.md) | agent-infra | |
|
|
365
371
|
| guideline | [`size-and-scope`](../docs/guidelines/agent-infra/size-and-scope.md) | agent-infra | |
|
|
366
372
|
| guideline | [`skill-quality-checklist`](../docs/guidelines/agent-infra/skill-quality-checklist.md) | agent-infra | |
|
|
373
|
+
| guideline | [`systems-thinking`](../docs/guidelines/agent-infra/systems-thinking.md) | agent-infra | |
|
|
367
374
|
| guideline | [`tool-integration`](../docs/guidelines/agent-infra/tool-integration.md) | agent-infra | |
|
|
368
375
|
| guideline | [`verify-before-complete-demos`](../docs/guidelines/agent-infra/verify-before-complete-demos.md) | agent-infra | |
|
|
369
376
|
| guideline | [`augment-portability-patterns`](../docs/guidelines/augment-portability-patterns.md) | (root) | |
|
|
@@ -43,7 +43,7 @@ column 1 of this table.
|
|
|
43
43
|
| `create-pr` | 2 | `description-only` | `create-pr-description` |
|
|
44
44
|
| `council` | 3 | `default` · `pr` · `design` · `optimize` | `council` (legacy default lens) · `council-pr` · `council-design` · `council-optimize` |
|
|
45
45
|
| `challenge-me` | — | `vision` · `with-docs` | new — Pocock-inspired one-question-at-a-time interview; `vision` is the standard 95%-confidence variant, `with-docs` adds doc/glossary awareness with a session-scoped glossary and load-bearing claim-vs-code verification |
|
|
46
|
-
| `research` |
|
|
46
|
+
| `research` | 2 | `deep` · `report` | preliminary-research scaffolder ported from `Weizhena/Deep-Research-skills` (cluster head emits `outline.yaml` + `fields.yaml` against the `research-schema` contract). `:deep` populates per-item JSON in batches with native web-search + JSON-Schema self-validation (no Python runtime); `:report` renders `report.md` directly + optionally emits a `jq` template for deterministic regeneration. `add-items` / `add-fields` intentionally **not** ported — re-run `/research <topic>` to extend the field framework. |
|
|
47
47
|
|
|
48
48
|
**Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
|
|
49
49
|
collapses 26 atomics → 11 sub-command clusters. Sub-commands use
|
|
@@ -495,6 +495,18 @@
|
|
|
495
495
|
"load_context": [],
|
|
496
496
|
"load_context_eager": []
|
|
497
497
|
},
|
|
498
|
+
".agent-src.uncompressed/commands/research/deep.md": {
|
|
499
|
+
"kind": "command",
|
|
500
|
+
"rule_type": null,
|
|
501
|
+
"load_context": [],
|
|
502
|
+
"load_context_eager": []
|
|
503
|
+
},
|
|
504
|
+
".agent-src.uncompressed/commands/research/report.md": {
|
|
505
|
+
"kind": "command",
|
|
506
|
+
"rule_type": null,
|
|
507
|
+
"load_context": [],
|
|
508
|
+
"load_context_eager": []
|
|
509
|
+
},
|
|
498
510
|
".agent-src.uncompressed/commands/review-changes.md": {
|
|
499
511
|
"kind": "command",
|
|
500
512
|
"rule_type": null,
|
|
@@ -3380,6 +3392,48 @@
|
|
|
3380
3392
|
"via": "body_link",
|
|
3381
3393
|
"depth": 1
|
|
3382
3394
|
},
|
|
3395
|
+
{
|
|
3396
|
+
"source": ".agent-src.uncompressed/commands/research/deep.md",
|
|
3397
|
+
"target": ".agent-src.uncompressed/commands/research.md",
|
|
3398
|
+
"type": "READ_ONLY",
|
|
3399
|
+
"via": "body_link",
|
|
3400
|
+
"depth": 1
|
|
3401
|
+
},
|
|
3402
|
+
{
|
|
3403
|
+
"source": ".agent-src.uncompressed/commands/research/deep.md",
|
|
3404
|
+
"target": ".agent-src.uncompressed/commands/research/deep.md",
|
|
3405
|
+
"type": "WRITE",
|
|
3406
|
+
"via": "self",
|
|
3407
|
+
"depth": 0
|
|
3408
|
+
},
|
|
3409
|
+
{
|
|
3410
|
+
"source": ".agent-src.uncompressed/commands/research/deep.md",
|
|
3411
|
+
"target": ".agent-src.uncompressed/contexts/contracts/research-schema.md",
|
|
3412
|
+
"type": "READ_ONLY",
|
|
3413
|
+
"via": "body_link",
|
|
3414
|
+
"depth": 1
|
|
3415
|
+
},
|
|
3416
|
+
{
|
|
3417
|
+
"source": ".agent-src.uncompressed/commands/research/report.md",
|
|
3418
|
+
"target": ".agent-src.uncompressed/commands/research/deep.md",
|
|
3419
|
+
"type": "READ_ONLY",
|
|
3420
|
+
"via": "body_link",
|
|
3421
|
+
"depth": 1
|
|
3422
|
+
},
|
|
3423
|
+
{
|
|
3424
|
+
"source": ".agent-src.uncompressed/commands/research/report.md",
|
|
3425
|
+
"target": ".agent-src.uncompressed/commands/research/report.md",
|
|
3426
|
+
"type": "WRITE",
|
|
3427
|
+
"via": "self",
|
|
3428
|
+
"depth": 0
|
|
3429
|
+
},
|
|
3430
|
+
{
|
|
3431
|
+
"source": ".agent-src.uncompressed/commands/research/report.md",
|
|
3432
|
+
"target": ".agent-src.uncompressed/rules/user-interaction.md",
|
|
3433
|
+
"type": "READ_ONLY",
|
|
3434
|
+
"via": "body_link",
|
|
3435
|
+
"depth": 1
|
|
3436
|
+
},
|
|
3383
3437
|
{
|
|
3384
3438
|
"source": ".agent-src.uncompressed/commands/review-changes.md",
|
|
3385
3439
|
"target": ".agent-src.uncompressed/commands/judge.md",
|
package/docs/getting-started.md
CHANGED
|
@@ -153,7 +153,7 @@ Your agent now understands slash commands:
|
|
|
153
153
|
| `/quality-fix` | Run and fix all quality checks |
|
|
154
154
|
| `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
|
|
155
155
|
|
|
156
|
-
→ [Browse all
|
|
156
|
+
→ [Browse all 103 active commands](../.agent-src/commands/)
|
|
157
157
|
|
|
158
158
|
---
|
|
159
159
|
|