@lemoncode/lemony 0.2.0 → 0.4.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/README.md +19 -14
- package/catalog/VERSION +1 -1
- package/catalog/agents/architect.md +3 -1
- package/catalog/agents/implementer.md +43 -5
- package/catalog/agents/orchestrator.md +527 -60
- package/catalog/agents/partition.md +316 -0
- package/catalog/agents/reviewer.md +279 -67
- package/catalog/agents/spec-author.md +12 -3
- package/catalog/agents/triage.md +8 -5
- package/catalog/commands/add-capability.md +4 -4
- package/catalog/commands/define.md +7 -0
- package/catalog/commands/hotfix.md +15 -1
- package/catalog/commands/pause.md +5 -0
- package/catalog/commands/resume.md +38 -9
- package/catalog/commands/triage.md +2 -1
- package/catalog/harness.config.schema.json +40 -0
- package/catalog/hooks/init.sh +10 -3
- package/catalog/hooks/lib/merge-pr.sh +699 -0
- package/catalog/skills/mutation-testing/SKILL.md +78 -21
- package/catalog/skills/prd-to-spec/SKILL.md +48 -2
- package/catalog/skills/raise-discovery/SKILL.md +6 -0
- package/catalog/skills/resolve-discovery/SKILL.md +6 -5
- package/catalog/skills/security-review/SKILL.md +119 -6
- package/catalog/skills/spec-to-issue/SKILL.md +7 -1
- package/catalog/skills/task-closeout/SKILL.md +82 -18
- package/catalog/skills/triage-issue/SKILL.md +65 -4
- package/catalog/templates/claude-code/agents.md.tpl +42 -12
- package/catalog/templates/claude-code/harness.config.yml.tpl +37 -0
- package/dist/cli.mjs +748 -36
- package/package.json +10 -6
|
@@ -13,7 +13,8 @@ in `.claude/agents/triage.md` (the orchestrator's lazy companion). This command
|
|
|
13
13
|
question to capture it, then proceed.
|
|
14
14
|
|
|
15
15
|
In brief (authority is the orchestrator): triage the codebase to find the root cause
|
|
16
|
-
|
|
16
|
+
draft a TDD-based fix plan and declare the risk surfaces (`triage-issue`), creating
|
|
17
|
+
the issue with
|
|
17
18
|
`harness:managed` (no `harness:sdd` — its absence marks the lightweight path), then
|
|
18
19
|
branch and scaffold `progress.md`, implement (`tdd`), review (`senior-review`), and
|
|
19
20
|
run the human merge gate before closeout. L2 skips the spec and its approval gate, but
|
|
@@ -92,6 +92,46 @@
|
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
94
|
"additionalProperties": false
|
|
95
|
+
},
|
|
96
|
+
"merge": {
|
|
97
|
+
"default": {},
|
|
98
|
+
"type": "object",
|
|
99
|
+
"properties": {
|
|
100
|
+
"checks_timeout_secs": {
|
|
101
|
+
"default": 600,
|
|
102
|
+
"type": "integer",
|
|
103
|
+
"exclusiveMinimum": 0,
|
|
104
|
+
"maximum": 9007199254740991
|
|
105
|
+
},
|
|
106
|
+
"allow_no_checks": {
|
|
107
|
+
"default": false,
|
|
108
|
+
"type": "boolean"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"additionalProperties": false
|
|
112
|
+
},
|
|
113
|
+
"implementation": {
|
|
114
|
+
"default": {},
|
|
115
|
+
"type": "object",
|
|
116
|
+
"properties": {
|
|
117
|
+
"auto_commit": {
|
|
118
|
+
"default": "human",
|
|
119
|
+
"type": "string",
|
|
120
|
+
"enum": [
|
|
121
|
+
"human",
|
|
122
|
+
"on",
|
|
123
|
+
"off"
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"additionalProperties": false
|
|
128
|
+
},
|
|
129
|
+
"gates": {
|
|
130
|
+
"type": "array",
|
|
131
|
+
"items": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"minLength": 1
|
|
134
|
+
}
|
|
95
135
|
}
|
|
96
136
|
},
|
|
97
137
|
"required": [
|
package/catalog/hooks/init.sh
CHANGED
|
@@ -130,9 +130,17 @@ if [ ! -x "$PEER_HOOK" ]; then
|
|
|
130
130
|
WARNINGS+=("$PEER_HOOK is missing or not executable — \`/pause\` and SessionEnd telemetry will fail. Re-run \`lemony install\` (or chmod +x).")
|
|
131
131
|
fi
|
|
132
132
|
|
|
133
|
-
# ── Warning 3 ─
|
|
133
|
+
# ── Warning 3 ─ default branch behind origin (no fetch — uses existing refs) ─
|
|
134
|
+
# Scoped to a session sitting ON the default branch: "pull before starting" is
|
|
135
|
+
# advice for main, and a task branch is behind origin/main by construction.
|
|
136
|
+
# The nudge used to fire branch-agnostic: mid-task under auto-commit OFF
|
|
137
|
+
# the worktree is dirty by design with the staged index as the save-point
|
|
138
|
+
# ladder, and following `git pull --rebase` with `rebase.autostash` set flattens
|
|
139
|
+
# that index — the documented rollback then reverts to the last commit and the
|
|
140
|
+
# group's whole uncommitted work is gone. So on any other branch: silence.
|
|
141
|
+
CURRENT_BRANCH="$(git symbolic-ref --quiet --short HEAD 2>/dev/null || true)"
|
|
134
142
|
DEFAULT_BRANCH="$(git symbolic-ref --quiet refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')"
|
|
135
|
-
if [ -n "$DEFAULT_BRANCH" ]; then
|
|
143
|
+
if [ -n "$DEFAULT_BRANCH" ] && [ "$CURRENT_BRANCH" = "$DEFAULT_BRANCH" ]; then
|
|
136
144
|
BEHIND="$(git rev-list --count "HEAD..origin/$DEFAULT_BRANCH" 2>/dev/null || echo 0)"
|
|
137
145
|
if [ "${BEHIND:-0}" -gt 0 ]; then
|
|
138
146
|
WARNINGS+=("local branch is $BEHIND commit(s) behind origin/$DEFAULT_BRANCH. Consider \`git pull --rebase\` before starting.")
|
|
@@ -142,7 +150,6 @@ fi
|
|
|
142
150
|
# ── Warning 4 ─ residual harness branches (parked tasks) ───────────────────
|
|
143
151
|
STALE_BRANCHES="$(git for-each-ref --format='%(refname:short)' refs/heads/harness/ 2>/dev/null | wc -l | tr -d ' ')"
|
|
144
152
|
if [ "${STALE_BRANCHES:-0}" -gt 0 ]; then
|
|
145
|
-
CURRENT_BRANCH="$(git symbolic-ref --quiet --short HEAD 2>/dev/null || true)"
|
|
146
153
|
case "$CURRENT_BRANCH" in
|
|
147
154
|
harness/*) : ;;
|
|
148
155
|
*) WARNINGS+=("$STALE_BRANCHES parked harness branch(es) present. Resume with \`continue <id>\` or close them with task-closeout.") ;;
|