@ersbeth/codelife 0.0.0-stage → 0.11.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/.claude-plugin/plugin.json +19 -0
- package/LICENSE +21 -0
- package/README.md +65 -2
- package/agents/evaluate.md +97 -0
- package/agents/ground.md +49 -0
- package/agents/implementer.md +49 -0
- package/agents/judge.md +128 -0
- package/agents/planner.md +45 -0
- package/agents/prerequisites.md +62 -0
- package/agents/reader.md +40 -0
- package/agents/reproduce.md +65 -0
- package/bin/codelife +4 -0
- package/package.json +38 -4
- package/presets/tsconfig.json +14 -0
- package/presets/vite.config.d.mts +3 -0
- package/presets/vite.config.mjs +49 -0
- package/scripts/audit/cadence.mjs +24 -0
- package/scripts/audit/close.mjs +57 -0
- package/scripts/audit/file.mjs +70 -0
- package/scripts/audit/fold.mjs +48 -0
- package/scripts/audit/lib.mjs +93 -0
- package/scripts/audit/prepare.mjs +180 -0
- package/scripts/audit/table.mjs +65 -0
- package/scripts/brainstorm/decided.mjs +6 -0
- package/scripts/brainstorm/lib.mjs +33 -0
- package/scripts/brainstorm/named.mjs +9 -0
- package/scripts/changelog.mjs +100 -0
- package/scripts/check-tag.mjs +19 -0
- package/scripts/checks.mjs +53 -0
- package/scripts/codelife.mjs +42 -0
- package/scripts/commit-msg.mjs +43 -0
- package/scripts/contract.mjs +179 -0
- package/scripts/former-form.mjs +170 -0
- package/scripts/git/branches.mjs +6 -0
- package/scripts/git/commit.mjs +40 -0
- package/scripts/git/diff.mjs +17 -0
- package/scripts/git/diff_lines.mjs +5 -0
- package/scripts/git/held.mjs +53 -0
- package/scripts/git/is_ancestor.mjs +28 -0
- package/scripts/git/lib.mjs +20 -0
- package/scripts/git/log_since.mjs +27 -0
- package/scripts/git/parent.mjs +51 -0
- package/scripts/git/show.mjs +4 -0
- package/scripts/git/status.mjs +25 -0
- package/scripts/git/submodules.mjs +5 -0
- package/scripts/init.mjs +21 -0
- package/scripts/install.mjs +32 -0
- package/scripts/lenses/A11Y.md +91 -0
- package/scripts/lenses/ARCH.md +90 -0
- package/scripts/lenses/BUG.md +52 -0
- package/scripts/lenses/BUILD.md +40 -0
- package/scripts/lenses/COMPAT.md +67 -0
- package/scripts/lenses/CONF.md +49 -0
- package/scripts/lenses/DEPS.md +43 -0
- package/scripts/lenses/DOC.md +73 -0
- package/scripts/lenses/FAIL.md +57 -0
- package/scripts/lenses/GOV.md +56 -0
- package/scripts/lenses/GUARD.md +47 -0
- package/scripts/lenses/INTENT.md +52 -0
- package/scripts/lenses/LEAN.md +49 -0
- package/scripts/lenses/LINES.md +48 -0
- package/scripts/lenses/PERF.md +61 -0
- package/scripts/lenses/PKG.md +58 -0
- package/scripts/lenses/SEC.md +49 -0
- package/scripts/lenses/STANDARDS.md +62 -0
- package/scripts/lenses/TYPE.md +56 -0
- package/scripts/lenses/VERIF.md +81 -0
- package/scripts/link.mjs +40 -0
- package/scripts/methods/cause.md +21 -0
- package/scripts/methods/comments.md +157 -0
- package/scripts/methods/description.md +67 -0
- package/scripts/methods/message.md +24 -0
- package/scripts/methods/red-green.md +28 -0
- package/scripts/methods/refusal.md +22 -0
- package/scripts/mr/open.mjs +219 -0
- package/scripts/node-floor.mjs +19 -0
- package/scripts/onboard/prep.mjs +93 -0
- package/scripts/overview/codelife-line.mjs +33 -0
- package/scripts/overview/next.mjs +76 -0
- package/scripts/overview/overview.mjs +308 -0
- package/scripts/package-manager.mjs +20 -0
- package/scripts/port/item.mjs +94 -0
- package/scripts/port/lib.mjs +194 -0
- package/scripts/port/prep.mjs +33 -0
- package/scripts/port/version.mjs +50 -0
- package/scripts/pre-commit.mjs +43 -0
- package/scripts/pre-push.mjs +53 -0
- package/scripts/prepare-lib.mjs +81 -0
- package/scripts/read-roadmap/lib.mjs +116 -0
- package/scripts/read-roadmap/moved.mjs +70 -0
- package/scripts/read-roadmap/range.mjs +15 -0
- package/scripts/release/cut.mjs +120 -0
- package/scripts/release/entry.mjs +52 -0
- package/scripts/release/lib.mjs +136 -0
- package/scripts/release/prep.mjs +58 -0
- package/scripts/review-mr/prepare.mjs +163 -0
- package/scripts/roadmap/assemble.mjs +269 -0
- package/scripts/roadmap/cut.mjs +88 -0
- package/scripts/roadmap/prepare.mjs +249 -0
- package/scripts/roadmap/roadmap.md +30 -0
- package/scripts/roadmap/write.mjs +53 -0
- package/scripts/search.mjs +29 -0
- package/scripts/setup/contract.mjs +25 -0
- package/scripts/setup/item.mjs +166 -0
- package/scripts/setup/lib.mjs +205 -0
- package/scripts/setup/prep.mjs +106 -0
- package/scripts/spec-form.mjs +444 -0
- package/scripts/spec.mjs +56 -0
- package/scripts/tags.mjs +27 -0
- package/scripts/target/target-app.md +134 -0
- package/scripts/target/target-base.md +127 -0
- package/scripts/target/target-lib.md +143 -0
- package/scripts/target/templates/audit/README.md +21 -0
- package/scripts/target/templates/characterisation/bundle.test.ts +43 -0
- package/scripts/target/templates/characterisation/declarations.test.ts +44 -0
- package/scripts/target/templates/characterisation/entries.ts +50 -0
- package/scripts/target/templates/characterisation/examples.test.ts +18 -0
- package/scripts/target/templates/characterisation/import.test.ts +22 -0
- package/scripts/target/templates/characterisation/surface.test.ts +68 -0
- package/scripts/target/templates/cliff.toml +61 -0
- package/scripts/target/templates/githooks/commit-msg +9 -0
- package/scripts/target/templates/githooks/pre-commit +9 -0
- package/scripts/target/templates/githooks/pre-push +9 -0
- package/scripts/target/templates/playground/index.html +11 -0
- package/scripts/target/templates/playground/main.ts +9 -0
- package/scripts/target/templates/spec/README.md +35 -0
- package/scripts/target/templates/spec/capability.md +36 -0
- package/scripts/target/templates/spec/glossary.md +5 -0
- package/scripts/target/templates/spec/journey.md +29 -0
- package/scripts/target/templates/spec/principles.md +15 -0
- package/scripts/target/templates/spec/users.md +15 -0
- package/scripts/target/templates/tsconfig.json +9 -0
- package/scripts/target/templates/vite.config.ts +4 -0
- package/scripts/text.mjs +6 -0
- package/scripts/tracker/account.mjs +5 -0
- package/scripts/tracker/auth.mjs +9 -0
- package/scripts/tracker/cli.version.mjs +5 -0
- package/scripts/tracker/close.mjs +20 -0
- package/scripts/tracker/create.mjs +47 -0
- package/scripts/tracker/issue.section.mjs +25 -0
- package/scripts/tracker/issue.update.mjs +13 -0
- package/scripts/tracker/issue.view.mjs +16 -0
- package/scripts/tracker/lib.mjs +130 -0
- package/scripts/tracker/list.mjs +14 -0
- package/scripts/tracker/list.whole.mjs +20 -0
- package/scripts/tracker/lot.row.mjs +42 -0
- package/scripts/tracker/mr.checkout_command.mjs +5 -0
- package/scripts/tracker/mr.comments.mjs +50 -0
- package/scripts/tracker/mr.create.mjs +12 -0
- package/scripts/tracker/mr.description.mjs +8 -0
- package/scripts/tracker/mr.fetch_head.mjs +5 -0
- package/scripts/tracker/mr.find_for_branch.mjs +9 -0
- package/scripts/tracker/mr.post.mjs +40 -0
- package/scripts/tracker/mr.update_description.mjs +8 -0
- package/scripts/tracker/mr.verdict.mjs +34 -0
- package/scripts/tracker/mr.view.mjs +20 -0
- package/scripts/tracker/none.mjs +79 -0
- package/scripts/tracker/note.mjs +12 -0
- package/scripts/tracker/reopen.mjs +8 -0
- package/scripts/tracker/search.mjs +8 -0
- package/scripts/tracker/search_id.mjs +18 -0
- package/scripts/tracker/templates/bug.md +35 -0
- package/scripts/tracker/templates/feature.md +40 -0
- package/scripts/tracker/templates/lot.md +46 -0
- package/scripts/tracker/title.join.mjs +6 -0
- package/scripts/tracker/title.leave.mjs +7 -0
- package/scripts/tracker/title.lot_of.mjs +8 -0
- package/scripts/tracker/title.search_id_filter.mjs +17 -0
- package/scripts/tracker/title.sentence_of.mjs +5 -0
- package/scripts/tracker/view.mjs +25 -0
- package/scripts/verbs.mjs +579 -0
- package/scripts/verify/BUILD.mjs +33 -0
- package/scripts/verify/DEPS.mjs +15 -0
- package/scripts/verify/GOV.mjs +34 -0
- package/scripts/verify/GUARD.mjs +34 -0
- package/scripts/verify/LINES.mjs +22 -0
- package/scripts/verify/PKG.mjs +56 -0
- package/scripts/verify/TYPE.mjs +34 -0
- package/scripts/verify/cut.mjs +73 -0
- package/scripts/verify/history.mjs +32 -0
- package/scripts/verify/lib.mjs +129 -0
- package/scripts/verify/report.mjs +104 -0
- package/scripts/verify/timing.mjs +19 -0
- package/scripts/verify.mjs +29 -0
- package/scripts/work/branch.mjs +81 -0
- package/scripts/work/close.mjs +74 -0
- package/scripts/work/member.mjs +73 -0
- package/scripts/work/prepare.mjs +116 -0
- package/scripts/work/reopen.mjs +40 -0
- package/scripts/work-feedback/prepare.mjs +96 -0
- package/skills/audit/SKILL.md +110 -0
- package/skills/audit/templates/index.md +36 -0
- package/skills/audit/templates/lens.md +44 -0
- package/skills/brainstorm/SKILL.md +144 -0
- package/skills/brainstorm/references/exit.md +57 -0
- package/skills/brainstorm/templates/note.md +79 -0
- package/skills/commit/SKILL.md +68 -0
- package/skills/mr/SKILL.md +82 -0
- package/skills/new-issue/SKILL.md +87 -0
- package/skills/onboard/SKILL.md +103 -0
- package/skills/onboard/templates/CLAUDE.md +31 -0
- package/skills/onboard/templates/CONTRIBUTING.md +34 -0
- package/skills/onboard/templates/README.md +30 -0
- package/skills/onboard/templates/SKILL.md +24 -0
- package/skills/onboard/templates/package-CLAUDE.md +15 -0
- package/skills/overview/SKILL.md +59 -0
- package/skills/port-toolchain/SKILL.md +127 -0
- package/skills/release/SKILL.md +78 -0
- package/skills/review-mr/SKILL.md +106 -0
- package/skills/review-mr/templates/pass.md +29 -0
- package/skills/roadmap/SKILL.md +137 -0
- package/skills/setup/SKILL.md +112 -0
- package/skills/work/SKILL.md +139 -0
- package/skills/work-feedback/SKILL.md +113 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap
|
|
3
|
+
description: File the lots of what the specification changed since the roadmap's mark, turn the tracker's orphan issues into lots, and propose a closure only on evidence.
|
|
4
|
+
argument-hint: "[label-or-milestone]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /roadmap
|
|
8
|
+
|
|
9
|
+
Reads two sources and proposes **one table**: the lots that what `docs/spec/` changed since the
|
|
10
|
+
roadmap's mark needs, and what to do with the open issues — the stale ones rewritten or closed, the
|
|
11
|
+
**orphans** (open, no lot in their title) grouped, joined to a lot, closed on evidence or left
|
|
12
|
+
alone. One answer for the whole table, then the writes, the roadmap rewritten last. The first write
|
|
13
|
+
that does not complete ends the run, the rest untouched; a re-run resumes from the tracker itself.
|
|
14
|
+
|
|
15
|
+
## Preconditions
|
|
16
|
+
|
|
17
|
+
A contract, and the forge connected: `codelife roadmap prep` checks both. Under `tracker.kind:
|
|
18
|
+
none` the issues are files and the run is the same. No clean tree is required and no branch is
|
|
19
|
+
switched: the run writes to the tracker, and to the repository only the refusal lines of its
|
|
20
|
+
`wontfix` rows, each committed on the branch you stand on before its closure.
|
|
21
|
+
|
|
22
|
+
## Brief
|
|
23
|
+
|
|
24
|
+
**Who gave the go-ahead**, and from what, opens it: you, typing the command or answering this
|
|
25
|
+
brief; your confirmed table in a driver, which answers what it named — ask only the rest; the word
|
|
26
|
+
`delegate`; or a session that relayed your words, quoted here — relayed is not delegated. Typed or
|
|
27
|
+
tabled, this brief is an announcement; otherwise the run **stops here** for your go-ahead, after
|
|
28
|
+
nothing but a preparation that only reads.
|
|
29
|
+
|
|
30
|
+
`codelife roadmap prep [<label-or-milestone>]`, its summary naming the run folder. A `- stop:` line
|
|
31
|
+
ends the run, its reason said — except the two that ask a commit to read from (a mark that is not
|
|
32
|
+
an ancestor of `HEAD`, a first roadmap over a tracker that already holds `spec:` lots): put the
|
|
33
|
+
question to the user with the commit it proposes, then run it again with `--from <sha>`.
|
|
34
|
+
|
|
35
|
+
Then write in your reply — a tool's output is not one —: the roadmap and its mark, or where a first
|
|
36
|
+
run reads from; `HEAD`; how many cases the range covers, how many are proposed built because they
|
|
37
|
+
were merged with their code (the merges named), how many are left to cut, and the `no case` rules;
|
|
38
|
+
the open lots with their *Done when*; the members that wait for a case; the issues citing what
|
|
39
|
+
changed; how many orphans, and the scope when an argument narrowed it; on a first run, the test
|
|
40
|
+
files each capability will be handed; and that **nothing is written before the table is answered**.
|
|
41
|
+
|
|
42
|
+
## Parameters
|
|
43
|
+
|
|
44
|
+
`[label-or-milestone]`, optional, narrowing the orphans considered. Nothing else is asked: the table
|
|
45
|
+
is the one answer.
|
|
46
|
+
|
|
47
|
+
## Steps
|
|
48
|
+
|
|
49
|
+
1. **Prepare** — the brief, written in your reply before any agent is dispatched.
|
|
50
|
+
2. **Cite, on a first run** whose summary says `citation pass:` with capabilities handed tests: one
|
|
51
|
+
`codelife:prerequisites` agent per `citation:` line, its prompt `citations`, the capability's
|
|
52
|
+
folder in the run folder and the repository's absolute root. A block reading `not passed` stops the run.
|
|
53
|
+
None proposed → step 3. Some → the table is the **citation lot alone**: one line per capability
|
|
54
|
+
with its count of renames, every rename in a file of the run folder. Confirmed, the umbrella —
|
|
55
|
+
`codelife issue create lot - citation <file>`, the sentence *The suite's tests do not cite the
|
|
56
|
+
cases they prove*, its *Done when* every rename landed — then per capability
|
|
57
|
+
`codelife issue create feature mid citation <file>` and `codelife lot join`. No roadmap is
|
|
58
|
+
written: the plan is cut once that lot is merged.
|
|
59
|
+
3. **Cut** — one `codelife:prerequisites` agent per `capability:` line, its prompt `cases`, its
|
|
60
|
+
two paths under the run folder and the repository's absolute root; each block saved as
|
|
61
|
+
`<run folder>/blocks/<K-n>.md`. Agents go all in one message, as many as Claude Code runs at
|
|
62
|
+
once, the rest as the first return. A block reading `not passed` stops the run. Then
|
|
63
|
+
`codelife roadmap cut <run folder>`; a `- stop:` line is said and ends the run. No
|
|
64
|
+
`capability:` line, no cut.
|
|
65
|
+
4. **Judge the issues**, from their files in the run folder:
|
|
66
|
+
- each `cites:` line — **rewrite** (the rule stands, changed: a new body to the rule at `HEAD`,
|
|
67
|
+
a new title when its sentence no longer holds; for a started one, what its lot branch's commits
|
|
68
|
+
naming it already do), **close** (the rule retired or replaced, on the commit that did it),
|
|
69
|
+
**keep**, or the **member** of a cut row;
|
|
70
|
+
- each orphan — **new lot** (a shared cause, subsystem or promise, named; origin
|
|
71
|
+
`triage:<slug>`, its sentence the symptom the members share), **join** an open lot whose
|
|
72
|
+
members share its class and whose *Done when* serves it, **wontfix**, or left alone;
|
|
73
|
+
- each `waits:` line whose case an issue in a lot builds — **move** the member to an open lot
|
|
74
|
+
waiting for that one whose *Done when* serves it, or to a new lot of its own,
|
|
75
|
+
`triage:waits-for-c-<n>`;
|
|
76
|
+
- **places** — the cut's lots after the confirmed order, in its order; a lot of orphans, or an
|
|
77
|
+
open lot the roadmap lacks, by its highest severity. A lot you raise for its risk goes no
|
|
78
|
+
higher than the last lot it waits for.
|
|
79
|
+
|
|
80
|
+
A `wontfix` needs evidence anyone can check: the file, command or symbol is gone; a decision of
|
|
81
|
+
the specification refused it; issue #n supersedes it; it no longer reproduces, the check named.
|
|
82
|
+
Age, inactivity or a hard read is none.
|
|
83
|
+
5. **Propose one table**, in your reply: one line per lot — rank, title, members, total effort,
|
|
84
|
+
what it waits for —, every rewrite and every closure **in full**, the cases proposed built, the
|
|
85
|
+
`no case` rules to place, the orphans left alone; the members, in `table.md`, its path named. A
|
|
86
|
+
row is corrected or struck by naming it; one answer for the whole. Nothing is written yet.
|
|
87
|
+
6. **Write**, in this order, each write reported:
|
|
88
|
+
- each lot — its umbrella `codelife issue create lot - <origin> <file>`, the body of
|
|
89
|
+
`codelife help template lot` with *The order* empty, unless the summary's `lot:` lines already
|
|
90
|
+
hold that origin (a cut run: create only what it lacks); then each member at once, a new one
|
|
91
|
+
`codelife issue create feature mid spec:R-<n> <file>` — `bug` for a rule that repairs a
|
|
92
|
+
behaviour — from its nature's template, its *Where it comes from* citing the rule and its
|
|
93
|
+
cases, then `codelife lot join <umbrella> <n>…`;
|
|
94
|
+
- each **join** — `codelife lot join`; each **move** —
|
|
95
|
+
`codelife lot leave <lot> <n> <reason file>`, the case as the reason, then `codelife lot join`;
|
|
96
|
+
- each **rewrite** — `codelife issue update <n> <body file> [<title file>]`, then
|
|
97
|
+
`codelife issue note <n> <file>` with the `rewritten` comment of
|
|
98
|
+
`codelife help method comments`.
|
|
99
|
+
7. **Close the `wontfix` rows**, one at a time. A member leaves its lot first, `codelife lot leave`,
|
|
100
|
+
the evidence its reason. A rule a commit of the range retired: the comment quotes the refusal
|
|
101
|
+
line that commit wrote, with its file — `codelife issue close <n> <file> <commit> --wontfix`.
|
|
102
|
+
Any other: one line of `## Rejected` as `codelife help method refusal` says, committed with
|
|
103
|
+
`codelife commit` — `docs(spec): refuse …`, a `Closes: #<n>` footer — then
|
|
104
|
+
`codelife issue close <n> <file> <hash> --wontfix`, the evidence verbatim and the line quoted.
|
|
105
|
+
8. **Rewrite the roadmap, last** — `codelife roadmap write <run folder> <order> <left alone>`, the
|
|
106
|
+
order one `#<n> <sentence>[ — after #<a>, #<b>]` per open lot as confirmed, the other one
|
|
107
|
+
`#<n> <sentence>` per orphan left alone. Not when the table was refused outright, nor after the citation lot alone; a range with
|
|
108
|
+
no row is written all the same, so the mark passes it.
|
|
109
|
+
|
|
110
|
+
## Never
|
|
111
|
+
|
|
112
|
+
- Propose a closure on age, inactivity, or how hard the issue is to read.
|
|
113
|
+
- Group by severity or by milestone, or widen a lot's *Done when* to admit a member.
|
|
114
|
+
- Read code but to write a new member's body or judge a `cites:` line, or re-estimate an effort an
|
|
115
|
+
issue carries.
|
|
116
|
+
- Open an issue other than the umbrellas and members the table confirmed: a lead noticed while
|
|
117
|
+
planning is `/new-issue`'s.
|
|
118
|
+
- Assign anyone, create a label or create a milestone.
|
|
119
|
+
- Report an orphan that grouped with nothing as a failure.
|
|
120
|
+
- Check out, switch, stash or add a worktree.
|
|
121
|
+
- Answer in a language the user did not write in, or write anything but English into the
|
|
122
|
+
repository or the tracker.
|
|
123
|
+
|
|
124
|
+
## Output
|
|
125
|
+
|
|
126
|
+
The run ends on this block, under this exact heading:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
### roadmap result
|
|
130
|
+
- Produced: the lots filed, each with its members; the issues joined, moved, rewritten and closed,
|
|
131
|
+
each closure with its evidence and its refusal line; the roadmap rewritten — or the citation lot
|
|
132
|
+
alone.
|
|
133
|
+
- Decided: the table, and every row you changed.
|
|
134
|
+
- Left open: the orphans left alone; any lot whose *Done when* refused a member.
|
|
135
|
+
- Next: `/work <umbrella>` on the first open lot of the order — or, after the citation lot, on it,
|
|
136
|
+
the plan cut once it is merged.
|
|
137
|
+
```
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup
|
|
3
|
+
description: Set a repository up for codelife — write its contract, then bring the base every skill rests on, one commit per item.
|
|
4
|
+
argument-hint: "[item]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /setup
|
|
8
|
+
|
|
9
|
+
Brings a repository to the state every other skill rests on: a valid contract, then the base every
|
|
10
|
+
codelife repository shares, under every `kind` and whatever its toolchain. The first skill any
|
|
11
|
+
repository runs, re-run on a new machine or after a plugin upgrade. It keeps **no state file** — the
|
|
12
|
+
verbs read what is done from the repository — and never chains into another skill; the target
|
|
13
|
+
toolchain is `/port-toolchain`'s, and nothing here writes it. Three verbs read and do the work; this
|
|
14
|
+
brief carries what is yours to decide.
|
|
15
|
+
|
|
16
|
+
## Preconditions
|
|
17
|
+
|
|
18
|
+
None to check here: `codelife setup prep` prints a `- stop:` line for each — not a git repository,
|
|
19
|
+
an invalid contract, a machine not connected to its host, a default branch other than `main`. A stop
|
|
20
|
+
ends the run: say it in your reply with what to do, and run nothing else. Work on the branch checked
|
|
21
|
+
out; a dirty tree is fine, and named.
|
|
22
|
+
|
|
23
|
+
## Brief
|
|
24
|
+
|
|
25
|
+
**Who gave the go-ahead**, and from what, opens it: you, typing the command or answering this
|
|
26
|
+
brief; your confirmed table in a driver, which answers what it named — ask only the rest; the word
|
|
27
|
+
`delegate`; or a session that relayed your words, quoted here — relayed is not delegated. Typed or
|
|
28
|
+
tabled, this brief is an announcement; otherwise the run **stops here** for your go-ahead, after
|
|
29
|
+
nothing but a preparation that only reads.
|
|
30
|
+
|
|
31
|
+
Then `codelife setup prep`, and its block written **in your reply**, in the user's language — a
|
|
32
|
+
tool's output is not one: every line, commands, paths and quoted errors kept as printed. Its
|
|
33
|
+
`- guide:` lines are the connection: the token goes from the browser to the clipboard to the user's
|
|
34
|
+
own terminal, never into the conversation. A missing CLI is installed on the user's yes; then the run
|
|
35
|
+
waits for *done* and runs `codelife setup prep` again — nothing is written before it passes.
|
|
36
|
+
|
|
37
|
+
## Parameters
|
|
38
|
+
|
|
39
|
+
`[item]` — one base item to play or replay; without it, every item *to do*, in prep's order.
|
|
40
|
+
|
|
41
|
+
## Steps
|
|
42
|
+
|
|
43
|
+
1. **Draft** — on a first run, the whole contract in block form, each value tagged *inferred from
|
|
44
|
+
`<file>`*, *to confirm* or *missing*, from prep's lines and the `- prose:` files **read whole**:
|
|
45
|
+
`guards[]` are the conditional checks the prose states — *when X changes, run Y* — each quoted;
|
|
46
|
+
`generated[]` the committed outputs a script builds, and `CHANGELOG.md` by
|
|
47
|
+
`node node_modules/@ersbeth/codelife/scripts/changelog.mjs` with `when: []`; the `app` block under
|
|
48
|
+
`kind: app` only, both fields asked. Prose goes to `## Setup` (a one-off install, never a token),
|
|
49
|
+
`## Never` (a command warned against, with its reason), `## Raise before doing` (a defended
|
|
50
|
+
property), `## Tracker notes` (the forge's traps). On an update, the divergences only — a prose
|
|
51
|
+
section is never substituted, an addition is proposed. **Shown in your reply, not asked.**
|
|
52
|
+
2. **Ask** — every *to confirm* and *missing* value in one `AskUserQuestion` batch, each with its
|
|
53
|
+
inferred default first and the file it came from. Never a sure inference, a language, a model, a
|
|
54
|
+
label name or a branch prefix.
|
|
55
|
+
3. **Write** — the answered draft to a file, then `codelife setup contract <file>`; an `- invalid:`
|
|
56
|
+
line is fixed and the verb run again. Then `CLAUDE.md`: absent, created short and prose — the
|
|
57
|
+
purpose, the architecture if it is clear, the pointer. Present, the pointer paragraph appended —
|
|
58
|
+
*the verifiable facts live in [`.claude/codelife.md`](.claude/codelife.md), the codelife contract;
|
|
59
|
+
this document stays prose* — and on a **first run only** a trim, one passage per question: a
|
|
60
|
+
passage restating the contract or a plugin convention (pre-commit commands, labels and titles,
|
|
61
|
+
branch names, commit format, tags, committed outputs, *when X run Y*) is proposed for removal;
|
|
62
|
+
*never run* and one-off setup passages **move** to `## Never` and `## Setup` first; architecture,
|
|
63
|
+
code rules and reasons stay. A refusal goes to *Left open*, never argued again. Then
|
|
64
|
+
`codelife commit` on the verb's `- paths:` and `CLAUDE.md`, as `chore(setup): write the project contract`.
|
|
65
|
+
4. **Items** — `connect`, `labels`, `templates`, `scripts`, `hooks`, `folders`, `changelog`,
|
|
66
|
+
`develop`, each *to do* in that order: `codelife setup item <name>`, its block in your reply, an
|
|
67
|
+
existing file's difference included; then **now, or later**.
|
|
68
|
+
- **Now** — `codelife setup item <name> --write`; a `- stop:` or `- failed:` line ends the run,
|
|
69
|
+
quoted — the run does not fix the repository's tests. Then `codelife commit` on its `- paths:`,
|
|
70
|
+
`chore(setup): <what the item did>`; `labels` and `develop` write no file, and say so.
|
|
71
|
+
- **Later** — a deferral, never a refusal: `codelife issue create --once feature low setup:<item>
|
|
72
|
+
<file>`, the reason just given as its body. The item stays *to do*; a repository that will
|
|
73
|
+
never take it closes that issue `wontfix`.
|
|
74
|
+
- **scripts** — first the mapping of the five from what `package.json` runs, confirmed: a script
|
|
75
|
+
doing the job under another name is renamed (`verify:pre-commit` → `verify:commit`), its
|
|
76
|
+
callers in CI, `README.md` and `CONTRIBUTING.md` updated; a tier with nothing gets
|
|
77
|
+
`echo 'nothing to run'`, said aloud, after looking once for a real check. You edit
|
|
78
|
+
`package.json` — a private one when there is none — then `--write --test <a test file>`.
|
|
79
|
+
- **hooks** — no package: propose prep's install command as a decision. A hook of the
|
|
80
|
+
repository's own: its extra lines kept as an issue, or dropped on the user's word.
|
|
81
|
+
- **changelog** — a hand-written `[Unreleased]` stops it: fold its entries, show, confirm,
|
|
82
|
+
remove, then again. **develop** — its push is the user's, with `! `.
|
|
83
|
+
|
|
84
|
+
What an item finds outside its scope is an issue — `codelife issue create` — never a wider item.
|
|
85
|
+
Ask whether to continue after each.
|
|
86
|
+
5. **Close** — the result block below.
|
|
87
|
+
|
|
88
|
+
## Never
|
|
89
|
+
|
|
90
|
+
- Read, print, store or pass a token, widen one, or create a label outside the plugin's own.
|
|
91
|
+
- Rewrite `CLAUDE.md` silently or in one pass, or propose a trim on an update.
|
|
92
|
+
- Mix two items in one commit, or widen an item to fix what it finds.
|
|
93
|
+
- Rename the default branch, push, bypass a hook, check out, stash, create a branch other than
|
|
94
|
+
`develop`, or chain into `/onboard`, `/audit` or any other skill.
|
|
95
|
+
- Write a toolchain's command into a script: that is `/port-toolchain`'s.
|
|
96
|
+
- Answer in a language the user did not write in, or write anything but English into the
|
|
97
|
+
repository or the tracker.
|
|
98
|
+
|
|
99
|
+
## Output
|
|
100
|
+
|
|
101
|
+
The run ends on this block, under this exact heading, its fields in the user's language:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
### setup result
|
|
105
|
+
- Produced: the contract, the `CLAUDE.md` pointer, the passages trimmed, one commit per item played,
|
|
106
|
+
the labels created, `develop`.
|
|
107
|
+
- Decided: each answer of the batch, each trim, each item played or deferred.
|
|
108
|
+
- Left open: the items still *to do*, each deferred one with its issue; a tier with nothing to run;
|
|
109
|
+
a passage refused; a push not yet made.
|
|
110
|
+
- Next: `/setup` again for what is left; `/onboard`, `/overview` or `/audit` after that. Name them;
|
|
111
|
+
start none.
|
|
112
|
+
```
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: work
|
|
3
|
+
description: Walk a lot's members in the umbrella's order, or one lone issue, each planned, implemented and reviewed by fresh agents, to the merge request.
|
|
4
|
+
argument-hint: "[issue-number] [delegate]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /work
|
|
8
|
+
|
|
9
|
+
Walks a lot — its umbrella's open members, in order — or one lone issue, to one merge request. Each
|
|
10
|
+
member is planned, implemented and reviewed by fresh agents whose reports alone enter this session;
|
|
11
|
+
every write that leaves the machine is this session's.
|
|
12
|
+
|
|
13
|
+
## Preconditions
|
|
14
|
+
|
|
15
|
+
`codelife work prep` checks them and stops on the first that fails, naming it: a contract; the
|
|
16
|
+
forge connected; a clean tree; a `test:one` script, else `/setup`; a task list on an umbrella;
|
|
17
|
+
before a cut, a `develop` that `origin/develop` holds whole; no rule a member cites moved since the
|
|
18
|
+
roadmap's mark, else `/roadmap`.
|
|
19
|
+
|
|
20
|
+
## Brief
|
|
21
|
+
|
|
22
|
+
**Who gave the go-ahead**, and from what, opens it: you, typing the command or answering this
|
|
23
|
+
brief; your confirmed table in a driver, which answers what it named — ask only the rest; the word
|
|
24
|
+
`delegate`; or a session that relayed your words, quoted here — relayed is not delegated. Typed or
|
|
25
|
+
tabled, this brief is an announcement; otherwise the run **stops here** for your go-ahead, after
|
|
26
|
+
nothing but a preparation that only reads.
|
|
27
|
+
|
|
28
|
+
Made from `work prep`'s summary alone: the umbrella, its open members in order with their efforts
|
|
29
|
+
and plan state, the joins it proposes — or the lone issue; the branch the work belongs on, and the
|
|
30
|
+
one you stand on.
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
`[issue-number]`, an umbrella or a lone issue, inferred from the conversation or the current
|
|
35
|
+
branch when absent, and stated. `[delegate]`, typed after it, never asked nor inferred.
|
|
36
|
+
|
|
37
|
+
## Steps
|
|
38
|
+
|
|
39
|
+
1. **Prepare** — `codelife work prep <n>`. A `- stop:` line ends the run, its reason said. A closed
|
|
40
|
+
member is skipped, whatever its tick. A `closed:` line — a delegated run's return — goes to
|
|
41
|
+
step 3, then step 5.
|
|
42
|
+
2. **One table** — the open members in order with their efforts, a *join #n, last* row per `join:`
|
|
43
|
+
line, and the branch. Delegated, it also states: a choice inside the change is taken alone and
|
|
44
|
+
named in its commit; any other — a public API, a file format, a new dependency, a test weakened,
|
|
45
|
+
the specification contradicted, what the contract's `## Raise before doing` names — is committed
|
|
46
|
+
apart, ending on a `Held:` trailer; plans are posted and issues closed unseen; nothing is pushed;
|
|
47
|
+
and *a session that asks permission at each action stops at the first one while you are away;
|
|
48
|
+
Claude Code's `auto` mode lets it go on.* One answer; nothing is written before it.
|
|
49
|
+
3. **Reach the branch** the summary names: `git switch <branch>`; to cut one,
|
|
50
|
+
`git switch develop`, `git merge --ff-only origin/develop`, `git switch -c <branch> <from>`;
|
|
51
|
+
nothing when `in place`. Then one `codelife lot join` for the confirmed joins.
|
|
52
|
+
4. **Each member, in order**, in agents no other member shares:
|
|
53
|
+
- **Plan** — skipped when the member carries a `plan` comment. One `codelife:planner` agent,
|
|
54
|
+
given the issue, its table line, present or delegated, the lens folder
|
|
55
|
+
`<this skill's directory>/../../scripts/lenses/`, and the `refused` comments when the
|
|
56
|
+
summary says refused. Present, you approve or correct it. A plan that warns it publishes a
|
|
57
|
+
withheld reproduction is asked on its own first; delegated, it stops the member unposted.
|
|
58
|
+
Post it: a file opening on `codelife: plan — /work — <date>`, the plan, and `## Go-ahead`
|
|
59
|
+
quoting the table's line with your corrections or, delegated, its constraints, then
|
|
60
|
+
`codelife issue note <n> <file>`.
|
|
61
|
+
- **Implement** — note the start, `HEAD`, or on a resume the parent of the oldest commit
|
|
62
|
+
`codelife log since <base> <n>` prints. One `codelife:implementer` agent, on Sonnet, on Opus
|
|
63
|
+
when the plan says L, given the issue, the base, the table's line, the plan or *resume*, and
|
|
64
|
+
present or delegated. Put its question to you, and your answer to that same agent with
|
|
65
|
+
`SendMessage`.
|
|
66
|
+
- **Review** — `codelife checks <start>`, each `failed:` line a finding. Then, in one message and
|
|
67
|
+
blind to each other: one `codelife:reader` agent, its case the range `<start>..HEAD`, the
|
|
68
|
+
member and its umbrella, *Command line* `codelife`; and the Skill tool on `code-review`, args
|
|
69
|
+
`medium <start>..HEAD — post nothing and fix nothing`. Present, you keep or drop each finding;
|
|
70
|
+
delegated, each is kept.
|
|
71
|
+
- **Fix** — the kept findings to the implementer with `SendMessage`, one commit each, delegated
|
|
72
|
+
citing its finding. Then `/code-review` once on those fix commits, its findings kept or dropped
|
|
73
|
+
as above — one repeating a dropped finding stays dropped, unasked; what is kept is fixed once and
|
|
74
|
+
kept for the description.
|
|
75
|
+
- **Close** — the `closing` comment in a file, as `codelife help method comments` writes it, then
|
|
76
|
+
`codelife issue close <n> <file> <hash>…` with every hash `codelife log since <base> <n>`
|
|
77
|
+
prints; it ticks the umbrella and closes it with its last member. *This will not be done* —
|
|
78
|
+
you decided the issue is not worth its cost: a line of `## Rejected` through
|
|
79
|
+
`codelife help method refusal`, committed `docs(spec)` with `Closes: #<n>`, then the
|
|
80
|
+
close with `--wontfix`.
|
|
81
|
+
5. **Open the merge request**, once every member closed or left — a description as
|
|
82
|
+
`codelife help method description` prints it, from the reports — on a return, the `closing`
|
|
83
|
+
comments — and the dry run of `codelife mr open`; then `codelife mr open <file>`, what it prints put to you with each question
|
|
84
|
+
a line names — on a yes to merging the target in, `git merge origin/<target>` and the dry run
|
|
85
|
+
again. Its `held:` lines are one table: each row the hash, the issue, the `Held:` line and, from
|
|
86
|
+
the commit's body, why and what it costs if wrong, **validated** or **refused** with your reason.
|
|
87
|
+
All validated → `--send`, which is their validation. One refused → nothing sent; per refusal, a
|
|
88
|
+
file opening on `codelife: refused — /work — <date>`, the `Held:` line, your reason quoted and
|
|
89
|
+
the later commits its line names, then `codelife issue reopen <n> <file>`; its member goes
|
|
90
|
+
through step 4 again from a new plan, its planner given that comment, then step 5.
|
|
91
|
+
No merge request when the run is delegated — the push is yours, `/work <n>` again —, under
|
|
92
|
+
`tracker.kind: none`, when every member left, or for a lone issue worked `in place` on a branch
|
|
93
|
+
not its own, *Next* naming `/mr`.
|
|
94
|
+
|
|
95
|
+
## When a member does not complete
|
|
96
|
+
|
|
97
|
+
A red or a verification still failing at the cap of `codelife help method red-green`, or a plan you
|
|
98
|
+
refuse, stops the run: name the member, quote the reason, list what remains, start no further
|
|
99
|
+
member. Present at the cap, you are offered a revised plan or the stop. Re-running `/work <n>`
|
|
100
|
+
resumes there: the issues and the branch are the whole record.
|
|
101
|
+
|
|
102
|
+
- **Waits for a case** — a plan saying `Waits for: C-<n>` is posted and stops the run, the case
|
|
103
|
+
named: another lot builds it, and `/roadmap` moves the member after that lot.
|
|
104
|
+
- **Not located** — the planner, the implementer or a STATUS the summary shows found no cause:
|
|
105
|
+
propose that the member leave the lot, the refuted hypotheses its reason. Yes → `codelife lot leave <umbrella> <n> <reason
|
|
106
|
+
file>`, and the run goes on; no, or a lone issue → the run stops.
|
|
107
|
+
- **Delegated** — restore the step's files, keep what is committed, post the STATUS
|
|
108
|
+
(`codelife help method comments`) through `codelife issue note`, and leave the issue open; a
|
|
109
|
+
member not located stays open the same way. No commit of the member on the branch
|
|
110
|
+
(`codelife log since <base> <n>`) → the next member; one, or a verification that could not
|
|
111
|
+
run → the lot stops.
|
|
112
|
+
|
|
113
|
+
## Never
|
|
114
|
+
|
|
115
|
+
- Work a member of another lot on this branch, join an issue the table did not carry, reorder the
|
|
116
|
+
umbrella, or skip a member because it looks hard.
|
|
117
|
+
- Let an agent post, close, reopen, tick, join, leave or push; or tick a line by hand.
|
|
118
|
+
- Revert a refused held choice: the work that used it would no longer build.
|
|
119
|
+
- Review a member's fixes more than once, or give its merge request to `/review-mr` or
|
|
120
|
+
`/work-feedback`.
|
|
121
|
+
- Stash, detach, add a worktree, or switch branch after step 3.
|
|
122
|
+
- Answer in a language the user did not write in, or write anything but English into the
|
|
123
|
+
repository or the tracker.
|
|
124
|
+
|
|
125
|
+
## Output
|
|
126
|
+
|
|
127
|
+
The run ends on this block, under this exact heading:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
### work result
|
|
131
|
+
- Produced: per member, its commits, what its review found and fixed, its close; the joins; the
|
|
132
|
+
branch; the umbrella's state; the merge request. Delegated, each held choice with the commits
|
|
133
|
+
resting on it.
|
|
134
|
+
- Decided: the table, each plan, each finding kept or dropped, each question an agent put to you.
|
|
135
|
+
- Left open: the members not reached, the one that stopped the run with its reason, the members
|
|
136
|
+
that left. Delegated: closed, stopped with their STATUS, not reached.
|
|
137
|
+
- Next: the merge; or `/work <n>` again, without `delegate` — after a delegated run, to validate
|
|
138
|
+
its held choices and open the merge request.
|
|
139
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: work-feedback
|
|
3
|
+
description: Answer the review of your own merge request once — the latest pass's open numbers and the comments people wrote, one confirmed table, one commit per cause by a fresh agent, one push, and one answer citing the pushed hashes.
|
|
4
|
+
argument-hint: "[mr-number]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /work-feedback
|
|
8
|
+
|
|
9
|
+
Answers what another person's review left on **your own** merge request: the latest `/review-mr`
|
|
10
|
+
pass's open numbers, and the comments and open threads people wrote after it. One table and one
|
|
11
|
+
answer from you; one implementer agent makes one commit per cause; this session pushes once and
|
|
12
|
+
posts one answer, which the reviewer's next pass reads.
|
|
13
|
+
|
|
14
|
+
## Preconditions
|
|
15
|
+
|
|
16
|
+
`codelife feedback prep` checks them and stops on the first that fails, naming it: a contract whose
|
|
17
|
+
`tracker.kind` names a forge, connected — else `/setup`; an open merge request this account
|
|
18
|
+
authored; `HEAD` on its branch, at its head or ahead of it — a previous run's commits waiting to be
|
|
19
|
+
pushed —, and a clean tree, asserted, never arranged: the stop names the forge's checkout command.
|
|
20
|
+
|
|
21
|
+
## Brief
|
|
22
|
+
|
|
23
|
+
**Who gave the go-ahead**, and from what, opens it: you, typing the command or answering this
|
|
24
|
+
brief; your confirmed table in a driver, which answers what it named — ask only the rest; the word
|
|
25
|
+
`delegate`; or a session that relayed your words, quoted here — relayed is not delegated. Typed or
|
|
26
|
+
tabled, this brief is an announcement; otherwise the run **stops here** for your go-ahead, after
|
|
27
|
+
nothing but a preparation that only reads.
|
|
28
|
+
|
|
29
|
+
Made from `feedback prep`'s summary alone: the merge request and where its number came from; the
|
|
30
|
+
pass it answers, or none — the comments alone; the rows, and those a commit already answers; the
|
|
31
|
+
commits waiting to be pushed.
|
|
32
|
+
|
|
33
|
+
## Parameters
|
|
34
|
+
|
|
35
|
+
`[mr-number]`; absent, the open merge request of the current branch, which the preparation names.
|
|
36
|
+
Nothing else is asked: the table is the one answer. No `delegate`: a run left alone waits at its
|
|
37
|
+
first question or at the push, which is where a delegated one would have stopped.
|
|
38
|
+
|
|
39
|
+
## Steps
|
|
40
|
+
|
|
41
|
+
1. **Prepare** — `TMPDIR=<the session's scratchpad> codelife feedback prep [<n>]`. A `- stop:` line
|
|
42
|
+
ends the run, its reason said. `rows.md` in its run folder holds each row whole; a row a commit
|
|
43
|
+
already answers names that commit.
|
|
44
|
+
2. **One table** — each row, its subject in a few words, its disposition, its cause, and why in the
|
|
45
|
+
same cell:
|
|
46
|
+
|
|
47
|
+
| Disposition | What it does |
|
|
48
|
+
|---|---|
|
|
49
|
+
| `change` | the row asks for what the branch does not yet do: its cause's commit |
|
|
50
|
+
| `answer` | no file touched — the row asks a question; a commit already does it, named; or another open merge request carries the fix, named with the merge order, that one first |
|
|
51
|
+
| `refuse` | not done, the reason in the answer; a row that would undo what the specification decided also leaves one line of that capability's `## Rejected`, as `codelife help method refusal` writes it |
|
|
52
|
+
| `file` | outside this merge request: an issue |
|
|
53
|
+
|
|
54
|
+
Rows whose fix is one change — one sentence two findings fault, one fact written in two places —
|
|
55
|
+
share a cause, adjacent, and one commit answers them all. A row a commit already answers is an
|
|
56
|
+
`answer` citing it. A `refuse` is yours: proposed, never decided. One answer; nothing is written
|
|
57
|
+
before it.
|
|
58
|
+
3. **The causes** — when the table holds a `change` or a refusal line: one `codelife:implementer`
|
|
59
|
+
agent, given the merge request, its merge base, *review*, and the confirmed causes in order —
|
|
60
|
+
each with its rows' text from `rows.md`, its disposition, and the trailer its commit ends on:
|
|
61
|
+
`Answers: pass <k>: <n>, <m>`, or `Answers: <the comment's link>` for a person's row. Put its
|
|
62
|
+
question to you, and your answer to that same agent with `SendMessage`.
|
|
63
|
+
4. **File** each `file` row: written as `codelife help template bug` or `feature` prints an issue,
|
|
64
|
+
its first line `# <sentence>`, and filed by `codelife issue create <nature> <severity|->
|
|
65
|
+
mr:!<n> <file>`.
|
|
66
|
+
5. **Push once**, when the branch is ahead of its upstream: `codelife mr open`, which keeps the
|
|
67
|
+
description; what it prints put to you with each question a line names — on a yes to merging
|
|
68
|
+
the target in, `git merge origin/<target>` and the dry run again; a `held:` line, a stop naming
|
|
69
|
+
`/work <n>`, whose choice it is; on your yes, `codelife mr open --send`. Always before the answer: an unpushed
|
|
70
|
+
hash is one the reviewer cannot open.
|
|
71
|
+
6. **Answer once** — a file in the scratchpad: its first line `codelife: answer — pass <k> — <the
|
|
72
|
+
pushed head sha>`, or `codelife: answer — comments — <sha>` with no pass; then a table
|
|
73
|
+
`| Row | Answer |`, each row's number or its comment's link — a cause's rows in one cell — →
|
|
74
|
+
`fixed in <sha>`, the refusal and its reason with its line and hash when it left one,
|
|
75
|
+
`filed as #<n>`, or the answer; after a stop, a last line `Not reached: <rows> — <why>`. Then
|
|
76
|
+
`codelife mr post <n> <file>`.
|
|
77
|
+
|
|
78
|
+
## When a cause does not complete
|
|
79
|
+
|
|
80
|
+
The implementer stops at a red or a verification still failing at the cap of
|
|
81
|
+
`codelife help method red-green`, or at a behaviour whose cause is `not located`: its step is
|
|
82
|
+
restored, what is committed stays, and no further cause starts. Steps 4 to 6 still run for what
|
|
83
|
+
completed, the answer naming the rows not reached and why. A re-run resumes from the forge — the
|
|
84
|
+
answer and the trailers are the whole record; a row not located is proposed there as a `file` or a
|
|
85
|
+
`refuse`, its refuted hypotheses the reason.
|
|
86
|
+
|
|
87
|
+
## Never
|
|
88
|
+
|
|
89
|
+
- Commit, file, push or post what the table did not confirm.
|
|
90
|
+
- Widen a row: what it did not raise is a `file` row, or nothing.
|
|
91
|
+
- Edit or delete a comment, or resolve a thread: the pass is never edited, a person's thread is
|
|
92
|
+
theirs to close.
|
|
93
|
+
- Re-review, or post a finding: this skill evaluates nothing.
|
|
94
|
+
- Push outside `codelife mr open --send`, or answer with a hash not pushed.
|
|
95
|
+
- Check out, switch or stash anything.
|
|
96
|
+
- Answer in a language the user did not write in, or write anything but English into the
|
|
97
|
+
repository or the tracker.
|
|
98
|
+
|
|
99
|
+
## Output
|
|
100
|
+
|
|
101
|
+
The run ends on this block, under this exact heading:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
### work-feedback result
|
|
105
|
+
- Produced: each cause's commit; each refusal, with its line when it left one; the issues filed;
|
|
106
|
+
the push; the answer's link.
|
|
107
|
+
- Decided: the table, each disposition and cause you changed, each question the implementer put to
|
|
108
|
+
you.
|
|
109
|
+
- Left open: the refusals, for the reviewer to accept or keep; the rows a stop left unanswered,
|
|
110
|
+
with its reason.
|
|
111
|
+
- Next: `/review-mr` for the reviewer's next pass; the merge when nothing stands; `/work <n>` on an
|
|
112
|
+
issue filed.
|
|
113
|
+
```
|