agentic-retro 0.1.0 → 0.1.1
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/README.md +1 -0
- package/cli/agentic-retro.js +3 -0
- package/cli/lib/intro.js +6 -0
- package/cli/lib/setup.js +2 -0
- package/package.json +18 -6
- package/skills/run/agent-setup.md +1 -1
- package/skills/setup/SKILL.md +6 -2
package/README.md
CHANGED
|
@@ -86,6 +86,7 @@ Using Codex? It asks you to trust the new session-end hook the first time a sess
|
|
|
86
86
|
|
|
87
87
|
## CLI commands
|
|
88
88
|
|
|
89
|
+
- `agentic-retro about` – print a short intro to what agentic-retro does
|
|
89
90
|
- `agentic-retro setup` – interactive config, the human alternative to the setup skill
|
|
90
91
|
- `agentic-retro config list | get <key> | set <key> <value>` – read or write one config key
|
|
91
92
|
- `agentic-retro enqueue` – add a finished session to the queue (hooks call this)
|
package/cli/agentic-retro.js
CHANGED
|
@@ -10,8 +10,10 @@ import { syncOutcomes } from './lib/outcomes.js';
|
|
|
10
10
|
import { notice } from './lib/notice.js';
|
|
11
11
|
import { stats } from './lib/stats.js';
|
|
12
12
|
import { installPi } from './lib/pi.js';
|
|
13
|
+
import { INTRO } from './lib/intro.js';
|
|
13
14
|
|
|
14
15
|
const USAGE = `usage: agentic-retro <command>
|
|
16
|
+
about
|
|
15
17
|
setup
|
|
16
18
|
config list | get <key> | set <key> <value>
|
|
17
19
|
enqueue [--harness <h>] [--session <id> --transcript <path> --cwd <dir>] (or hook JSON on stdin)
|
|
@@ -76,6 +78,7 @@ async function main() {
|
|
|
76
78
|
if (command === 'notice') return notice(flags);
|
|
77
79
|
if (command === 'stats') return stats(flags);
|
|
78
80
|
if (command === 'install-pi') return installPi();
|
|
81
|
+
if (command === 'about') return process.stdout.write(INTRO);
|
|
79
82
|
throw new Error(USAGE);
|
|
80
83
|
}
|
|
81
84
|
|
package/cli/lib/intro.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// The one-screen intro shown before setup asks anything. The setup skill prints it too, via `agentic-retro about`.
|
|
2
|
+
export const INTRO = `agentic-retro reviews your finished coding-agent sessions in batches and suggests improvements.
|
|
3
|
+
- It looks for code that could be clearer, agent setup (skills, instructions) that would have saved time, and repo changes that help agents work faster
|
|
4
|
+
- You get one pull request per repo, or a report you walk through with your agent
|
|
5
|
+
- Nothing lands without your review, unless you turn on auto-merge for low-risk changes
|
|
6
|
+
`;
|
package/cli/lib/setup.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createInterface } from 'node:readline';
|
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { delimiter, join } from 'node:path';
|
|
5
5
|
import { loadConfig, saveConfig, getKey, parseValue } from './config.js';
|
|
6
|
+
import { INTRO } from './intro.js';
|
|
6
7
|
|
|
7
8
|
const onPath = (bin) => (process.env.PATH || '').split(delimiter).some((dir) => existsSync(join(dir, bin)));
|
|
8
9
|
|
|
@@ -34,6 +35,7 @@ export async function setup() {
|
|
|
34
35
|
const rl = createInterface({ input: process.stdin, output: process.stdout, terminal: false });
|
|
35
36
|
const lines = rl[Symbol.asyncIterator]();
|
|
36
37
|
const config = loadConfig();
|
|
38
|
+
process.stdout.write(`${INTRO}\nThese questions take about two minutes. Press Enter to keep the value in brackets.\n\n`);
|
|
37
39
|
|
|
38
40
|
for (const [key, label, presets] of questions()) {
|
|
39
41
|
const current = show(getKey(config, key));
|
package/package.json
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-retro",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "agentic-retrospective: reviews finished agent coding sessions and proposes improvements",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"
|
|
6
|
+
"bin": {
|
|
7
|
+
"agentic-retro": "cli/agentic-retro.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"cli/",
|
|
11
|
+
"skills/"
|
|
12
|
+
],
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=20"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "node --test test/*.test.js"
|
|
18
|
+
},
|
|
10
19
|
"license": "MIT",
|
|
11
|
-
"repository":
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "git+https://github.com/ac8318740/agentic-retro.git"
|
|
23
|
+
}
|
|
12
24
|
}
|
|
@@ -41,7 +41,7 @@ Every agent-setup proposal carries a risk label.
|
|
|
41
41
|
## Where a change may go
|
|
42
42
|
|
|
43
43
|
- **New things** go under `targets.preset`, such as `~/.claude/skills`
|
|
44
|
-
- `targets.note` may name another place, such as "send
|
|
44
|
+
- `targets.note` may name another place, such as "send acme-skills fixes to its repo at <path>"
|
|
45
45
|
- Follow the note when it covers the finding
|
|
46
46
|
- **Edits to existing files** go only under a path listed in `editable`
|
|
47
47
|
- Drop a finding against a file outside `editable`, however good it is
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -12,6 +12,10 @@ Walk the user through agentic-retro's config, one question at a time, then write
|
|
|
12
12
|
1. Run `command -v agentic-retro`.
|
|
13
13
|
2. If the command is missing, tell the user to run `npm install -g agentic-retro`, then stop.
|
|
14
14
|
|
|
15
|
+
## Open with the intro
|
|
16
|
+
|
|
17
|
+
Run `agentic-retro about` and show its output to the user as is, before the first question. It says what agentic-retro does in a few lines. Add nothing to it.
|
|
18
|
+
|
|
15
19
|
## Ask each question
|
|
16
20
|
|
|
17
21
|
Use the host's question tool (for example `AskUserQuestion`) when one is available. Otherwise ask in plain chat, one question at a time.
|
|
@@ -32,7 +36,7 @@ Offer the presets below for each question, and let the user type a different ans
|
|
|
32
36
|
9. **Auto-merge** – merge low-risk agent-setup PRs automatically? Default off
|
|
33
37
|
10. **Expire after** – batches an open proposal waits before it expires with no action, default 3
|
|
34
38
|
11. **Targets** – where agent-setup proposals go: `~/.claude/skills`, `~/.codex/skills`, or a plugin repo path
|
|
35
|
-
- Also ask for a free-text note the batch agent reads, for example: "I
|
|
39
|
+
- Also ask for a free-text note the batch agent reads, for example: "I maintain the acme-skills plugin; send fixes to its repo at ~/code/acme-skills"
|
|
36
40
|
12. **Editable paths** – which paths proposals can write to, as a JSON list; every other path stays read-only
|
|
37
41
|
13. **Notes** – free text, anything else the batch agents should know
|
|
38
42
|
|
|
@@ -52,7 +56,7 @@ agentic-retro config set output pr
|
|
|
52
56
|
agentic-retro config set autoMergeLowRisk false
|
|
53
57
|
agentic-retro config set expireAfterBatches 3
|
|
54
58
|
agentic-retro config set targets.preset ~/.claude/skills
|
|
55
|
-
agentic-retro config set targets.note "I
|
|
59
|
+
agentic-retro config set targets.note "I maintain the acme-skills plugin; send fixes to its repo at ~/code/acme-skills"
|
|
56
60
|
agentic-retro config set editable '["~/.claude/skills"]'
|
|
57
61
|
agentic-retro config set notes "ask about this"
|
|
58
62
|
```
|