@popoverai/dotrequirements 0.34.1 → 0.34.2

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.
@@ -49,6 +49,11 @@ export type PanelOutcome = {
49
49
  waitingFor?: string[];
50
50
  /** Its drafter's work was set aside and its new draft isn't taken yet: a session at it owes nothing more (CHECKPOINT-6.3.2.3). */
51
51
  setAside?: boolean;
52
+ /** The agents at it now, each drafting it or reviewing it; absent from a backend from before it said. */
53
+ atWork?: Array<{
54
+ agent: string;
55
+ part: "draft" | "review";
56
+ }>;
52
57
  };
53
58
  /** A checkpoint on the plan panel, as far as the CLI reads it. */
54
59
  export type PanelCheckpoint = {
@@ -23,6 +23,11 @@ export function agentAt(panel, agent, named) {
23
23
  if (!drafting && !reviewing) {
24
24
  throw new Error(`${agent} neither drafts nor reviews "${named}".`);
25
25
  }
26
+ // At it now: the part it is at, as for an agent that both drafts and
27
+ // reviews the outcome, whatever word the outcome stands in.
28
+ const at = outcome.atWork?.find((each) => each.agent === agent);
29
+ if (at)
30
+ return { outcome, part: at.part };
26
31
  return {
27
32
  outcome,
28
33
  part: reviewing && (!drafting || outcome.status === "reviewing")
@@ -129,10 +134,15 @@ export async function statusCommand(options) {
129
134
  // CHECKPOINT-6.3.2.3: a drafter whose work was set aside owes nothing
130
135
  // more there; the new draft is another session's.
131
136
  const setAside = part === "draft" && outcome.setAside === true;
137
+ // STEP-REVIEW-9.8: an agent still at its part owes it, whatever word the
138
+ // outcome stands in because of its other agents, as stalled when the
139
+ // other reviewer stalled. Asking, stalling and recording all take the
140
+ // agent off it.
141
+ const atIt = outcome.atWork?.some((each) => each.agent === where.agent && each.part === part) === true;
132
142
  const owes = part === "draft"
133
143
  ? !setAside &&
134
- (outcome.status === "drafting" || outcome.status === "ready")
135
- : outcome.status === "reviewing" &&
144
+ (atIt || outcome.status === "drafting" || outcome.status === "ready")
145
+ : (atIt || outcome.status === "reviewing") &&
136
146
  (await reviewerOwes(client, where.solutionId, outcome.name, where.agent));
137
147
  if (options.json) {
138
148
  process.stdout.write(`${JSON.stringify({ agent: where.agent, outcome: outcome.name, part, status: outcome.status, reason: outcome.reason ?? null, reviews: part === "review", ...(setAside ? { setAside } : {}), owes })}\n`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popoverai/dotrequirements",
3
- "version": "0.34.1",
3
+ "version": "0.34.2",
4
4
  "description": "Requirements as testable, human-readable data — CLI and test harness for spec-driven development with AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -26,9 +26,9 @@
26
26
  "test": "vitest",
27
27
  "test:run": "vitest run",
28
28
  "test:coverage": "vitest run --coverage",
29
- "publish:patch": "echo 'ERROR: publish:patch is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a production PR with a CLI version bump merges. Use the /release Claude Code skill to queue a bump and open the production PR. See docs/working/cli-publish-workflow.md for details.' && exit 1",
30
- "publish:minor": "echo 'ERROR: publish:minor is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a production PR with a CLI version bump merges. Use the /release Claude Code skill to queue a bump and open the production PR. See docs/working/cli-publish-workflow.md for details.' && exit 1",
31
- "publish:major": "echo 'ERROR: publish:major is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a production PR with a CLI version bump merges. Use the /release Claude Code skill to queue a bump and open the production PR. See docs/working/cli-publish-workflow.md for details.' && exit 1"
29
+ "publish:patch": "echo 'ERROR: publish:patch is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a PR that bumps the CLI version merges to main. See docs/working/cli-publish-workflow.md for details.' && exit 1",
30
+ "publish:minor": "echo 'ERROR: publish:minor is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a PR that bumps the CLI version merges to main. See docs/working/cli-publish-workflow.md for details.' && exit 1",
31
+ "publish:major": "echo 'ERROR: publish:major is decommissioned. CLI npm publishes now happen via the cli-publish GitHub Action when a PR that bumps the CLI version merges to main. See docs/working/cli-publish-workflow.md for details.' && exit 1"
32
32
  },
33
33
  "keywords": [
34
34
  "requirements",