@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.
@@ -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
- and draft a TDD-based fix plan (`triage-issue`), creating the issue with
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": [
@@ -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 ─ local branch behind origin (no fetch — uses existing refs) ─
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.") ;;