@codedrifters/configulator 0.0.394 → 0.0.395

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/lib/index.js CHANGED
@@ -4633,7 +4633,17 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
4633
4633
  " `status:ready`.",
4634
4634
  "- **Automated flag** \u2192 add `status:needs-attention` (do not remove existing",
4635
4635
  " status). Never auto-reset a `status:needs-attention` issue back to ready;",
4636
- " a human must decide.",
4636
+ " a human must decide. The flag is **additive**: apply it with `--add-label`",
4637
+ " alone \u2014 never pair it with a `--remove-label` that strips the base",
4638
+ " `status:*` label. A flag that swaps out the base status (e.g. scope-gate",
4639
+ " or worker-failure paths removing `status:ready` / `status:in-progress`)",
4640
+ " leaves the issue with no base status \u2014 invisible to every status-driven",
4641
+ " query and to the queue, and unrecoverable once the flag is cleared.",
4642
+ "- **Automated-flag clear** \u2192 when `status:needs-attention` is cleared, if the",
4643
+ " issue carries no base `status:*` label (a legacy issue flagged before the",
4644
+ " additive-flag rule, whose base status was stripped at flag time), restore",
4645
+ " `status:ready` \u2014 or `status:blocked` if the body still declares an open",
4646
+ " `Depends on:` dependency \u2014 in the same edit so it re-enters the workflow.",
4637
4647
  "- **PR CI failure** \u2192 add `status:needs-attention` to the associated PR (and",
4638
4648
  " its linked issue) when CI fails in a **permanent** state \u2014 i.e. the failure",
4639
4649
  " persists after a rerun, or the failure is clearly not a flake (compile",
@@ -14427,8 +14437,19 @@ function renderScopeGateSection(gate, excludeBundles = []) {
14427
14437
  "",
14428
14438
  "When the classifier returns `large`:",
14429
14439
  "",
14430
- "1. Apply the `status:needs-attention` label and remove",
14431
- " `status:ready` from the issue.",
14440
+ "1. **Add** the `status:needs-attention` label to the issue with",
14441
+ " `--add-label` alone. Leave the existing base `status:*` label",
14442
+ " (`status:ready`) in place \u2014 `status:needs-attention` is",
14443
+ " **additive**, so a flagged issue reads `status:ready` +",
14444
+ " `status:needs-attention`. Do **not** remove the base status:",
14445
+ " stripping it leaves the issue with no base `status:*` label,",
14446
+ " invisible to every status-driven query and to the queue itself,",
14447
+ " and a later flag-clear can never restore dispatchability. The",
14448
+ " `status:needs-attention` label already keeps the issue out of",
14449
+ " the dispatch queue, so the base label safely stays:",
14450
+ " ```bash",
14451
+ ' gh issue edit <number> --add-label "status:needs-attention"',
14452
+ " ```",
14432
14453
  "2. Post the decomposition-proposal comment (see template below),",
14433
14454
  " with `<AC_COUNT>` / `<SOURCES_COUNT>` substituted from the",
14434
14455
  " classification and `<AC_LIMIT>` / `<SOURCES_LIMIT>` set to",
@@ -14449,7 +14470,12 @@ function renderScopeGateSection(gate, excludeBundles = []) {
14449
14470
  "4. **Auto-file is OFF.** Stop after posting the comment. A human",
14450
14471
  " reviews the proposal, files the phased sub-issues manually,",
14451
14472
  " and clears `status:needs-attention` when the decomposition",
14452
- " is in place."
14473
+ " is in place. When clearing the flag, if the issue carries **no**",
14474
+ " base `status:*` label \u2014 a legacy issue flagged before the",
14475
+ " additive-flag fix, whose base status was stripped at flag time \u2014",
14476
+ " also add `status:ready` (or `status:blocked` when the body still",
14477
+ " declares an open `Depends on:` dependency) in the same edit so",
14478
+ " the issue re-enters the queue instead of going invisible."
14453
14479
  );
14454
14480
  }
14455
14481
  const overrideEntries = Object.entries(gate.bundleOverrides).filter(
@@ -17004,9 +17030,16 @@ var orchestratorSubAgent = {
17004
17030
  "",
17005
17031
  "If the scope is `large`, **do not dispatch**. Instead:",
17006
17032
  "",
17007
- "1. Apply `status:needs-attention` and remove `status:ready`:",
17033
+ "1. **Add** `status:needs-attention` with `--add-label` alone \u2014",
17034
+ " leave the base `status:*` label (`status:ready`) in place.",
17035
+ " `status:needs-attention` is **additive**; pairing it with a",
17036
+ ' `--remove-label "status:ready"` strips the base status and',
17037
+ " leaves the issue with no `status:*` label at all, invisible to",
17038
+ " the queue and unrecoverable when the flag is later cleared. The",
17039
+ " `status:needs-attention` label already keeps the issue out of",
17040
+ " dispatch, so the base label stays:",
17008
17041
  " ```bash",
17009
- ' gh issue edit <number> --remove-label "status:ready" --add-label "status:needs-attention"',
17042
+ ' gh issue edit <number> --add-label "status:needs-attention"',
17010
17043
  " ```",
17011
17044
  "2. Post the decomposition-proposal comment (see the **Scope gate**",
17012
17045
  " section in `CLAUDE.md` for the template). Substitute the",
@@ -17104,7 +17137,9 @@ var orchestratorSubAgent = {
17104
17137
  "5. **Priority order:** critical > high > medium > low > trivial, then **funnel tier asc** (lower tier wins ties), then FIFO by issue number.",
17105
17138
  "6. **Never dispatch a `large` issue.** Always run the scope check",
17106
17139
  " on the top `PICK` line before reporting `NEXT_WORK_ITEM`. A",
17107
- " `large` issue must be flagged with `status:needs-attention` and",
17140
+ " `large` issue must be flagged by **adding** `status:needs-attention`",
17141
+ " (additive \u2014 leave the base `status:*` label in place; never pair",
17142
+ " the flag with a `--remove-label` that strips the base status) and",
17108
17143
  " handed a decomposition proposal \u2014 never claimed, never branched,",
17109
17144
  " never delegated to the `issue-worker`.",
17110
17145
  "7. **Sweep dependents whenever you apply `status:done`.** Every",
@@ -17772,9 +17807,17 @@ var issueWorkerSubAgent = {
17772
17807
  " downstream agents (notably the `pr-reviewer`) can identify",
17773
17808
  " bot-authored PRs. Pass `--label 'origin:issue-worker'` on every",
17774
17809
  " `gh pr create` call.",
17775
- "7. **On failure:** If you cannot complete the issue, update labels and leave a comment:",
17810
+ "7. **On failure:** If you cannot complete the issue (including a",
17811
+ " wrong-agent / routing mismatch), flag it for human triage and",
17812
+ " leave a comment. **Add** `status:needs-attention` with",
17813
+ " `--add-label` alone \u2014 do **not** remove the base",
17814
+ " `status:in-progress` label. `status:needs-attention` is",
17815
+ " additive, so the flagged issue reads `status:in-progress` +",
17816
+ " `status:needs-attention` and keeps a base status a human can act",
17817
+ " on; stripping it leaves the issue with no base `status:*` label,",
17818
+ " invisible to every status-driven query:",
17776
17819
  " ```bash",
17777
- ' gh issue edit <number> --remove-label "status:in-progress" --add-label "status:needs-attention"',
17820
+ ' gh issue edit <number> --add-label "status:needs-attention"',
17778
17821
  ' gh issue comment <number> --body "Worker could not complete: <reason>"',
17779
17822
  " ```",
17780
17823
  "8. **Never force-push in feedback mode.** If a `git pull --rebase`",