@popoverai/dotrequirements 0.27.1 → 0.27.3

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 CHANGED
@@ -32,7 +32,7 @@ pnpm add @popoverai/dotrequirements
32
32
  ### 1. Initialize a project
33
33
 
34
34
  ```bash
35
- npx dotreq init
35
+ npx @popoverai/dotrequirements@latest init
36
36
  ```
37
37
 
38
38
  This creates a `.requirements/` directory with example requirements and configures your project.
@@ -111,7 +111,7 @@ dotreq init --invite abc123xyz
111
111
  If a team admin shares an invite command with you, join the team and connect in one step:
112
112
 
113
113
  ```bash
114
- npx dotrequirements init --invite abc123xyz
114
+ npx @popoverai/dotrequirements@latest init --invite abc123xyz
115
115
  ```
116
116
 
117
117
  This shows the team name, prompts you to sign in, adds you to the team, and lets you select a project.
@@ -140,7 +140,7 @@ dotreq pull --share <token>
140
140
  If a team member shares a pull command with you, you can pull requirements without creating an account:
141
141
 
142
142
  ```bash
143
- npx @popoverai/dotrequirements pull --share drt_abc123...
143
+ npx @popoverai/dotrequirements@latest pull --share drt_abc123...
144
144
  ```
145
145
 
146
146
  This gives you read-only access to view requirements. To push changes or report coverage, run `dotreq link` afterward.
@@ -262,7 +262,7 @@ async function mintShareArtifacts(client, teamId, projectId) {
262
262
  const share = (await client.mutation(api.projectSecrets.mutations.ensureShareToken,
263
263
  // biome-ignore lint/suspicious/noExplicitAny: CLI workspace doesn't import convex's branded Id type; the runtime value is a plain string the server validates.
264
264
  { target: { type: "project", id: projectId } }));
265
- artifacts.sharePullCommand = `npx -y @popoverai/dotrequirements pull --share ${share.token}`;
265
+ artifacts.sharePullCommand = `npx -y @popoverai/dotrequirements@latest pull --share ${share.token}`;
266
266
  }
267
267
  catch {
268
268
  // LINK-13.3: connection already succeeded — omit rather than fail
@@ -20,6 +20,11 @@ const REQUIREMENTS_IGNORE_PATTERNS = [
20
20
  "**/__tests__/**",
21
21
  "**/fixtures/**",
22
22
  "**/.fixtures/**",
23
+ // Claude Code worktrees hold other sessions' checkouts of the repo, whose
24
+ // stale .requirements copies must not fail this workspace's validation.
25
+ // Nothing else here excludes them: a checkout's requirements live beside
26
+ // its .git, not inside it, so "**/.git/**" above never matches them.
27
+ "**/.claude/worktrees/**",
23
28
  ];
24
29
  /**
25
30
  * Find all *.requirements.md files in the workspace.
@@ -7,7 +7,7 @@
7
7
  export { buildRequirementMarkdown, buildRequirementsFile, buildRequirementsMarkdown, } from "./builder.js";
8
8
  export type { ConvexRequirement } from "./conversions.js";
9
9
  export { buildMetadata, constructKey, convexToRequirements, extractRequirementKeys, groupByRoot, parseKey, requirementsToConvex, } from "./conversions.js";
10
- export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRequirementsFile, parseRequirementsFromFile, } from "./parser.js";
10
+ export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRequirementsFile, parseRequirementsFromFile, parseRootLine, } from "./parser.js";
11
11
  export { checkPathAmbiguity, findChildrenByLabel, getAllLabelPaths, parsePathSegment, parseRequirementPath, resolvePathSegment, resolveRequirementPath, resolveToNumericPath, } from "./resolver.js";
12
12
  export type { BuildScenarioOptions, Scenario, ScenarioAssertionSource, ScenarioStep, } from "./scenario.js";
13
13
  export { buildScenarioFromRequirements, requirementTreeToScenario, } from "./scenario.js";
@@ -8,7 +8,7 @@
8
8
  export { buildRequirementMarkdown, buildRequirementsFile, buildRequirementsMarkdown, } from "./builder.js";
9
9
  export { buildMetadata, constructKey, convexToRequirements, extractRequirementKeys, groupByRoot, parseKey, requirementsToConvex, } from "./conversions.js";
10
10
  // Parsing
11
- export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRequirementsFile, parseRequirementsFromFile, } from "./parser.js";
11
+ export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRequirementsFile, parseRequirementsFromFile, parseRootLine, } from "./parser.js";
12
12
  // Path resolution
13
13
  export { checkPathAmbiguity, findChildrenByLabel, getAllLabelPaths, parsePathSegment, parseRequirementPath, resolvePathSegment, resolveRequirementPath, resolveToNumericPath, } from "./resolver.js";
14
14
  // Scenario building (for browser-automation / runScenario)
@@ -8,7 +8,7 @@
8
8
  * requirements file means (SYNC-FORMAT-2.3).
9
9
  */
10
10
  import { type RequirementNode, type RequirementsFile } from "./schemas.js";
11
- export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, } from "./parser-core.js";
11
+ export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRootLine, } from "./parser-core.js";
12
12
  /**
13
13
  * Parse a complete requirements Markdown file.
14
14
  */
@@ -13,7 +13,7 @@ import { parseRequirementBlocksFromMarkdown, splitFrontmatter, } from "./parser-
13
13
  import { ValidationError, validateMetadata, } from "./schemas.js";
14
14
  // Block/criterion parsing and tree utilities live in parser-core; re-exported
15
15
  // here so the schema module's public surface is unchanged.
16
- export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, } from "./parser-core.js";
16
+ export { findRequirementById, flattenRequirementTree, getAllRequirements, parseCriterionLine, parseRequirementBlock, parseRootLine, } from "./parser-core.js";
17
17
  /**
18
18
  * Extract YAML frontmatter from Markdown content.
19
19
  * Returns { frontmatter, body } where frontmatter is the parsed YAML object.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popoverai/dotrequirements",
3
- "version": "0.27.1",
3
+ "version": "0.27.3",
4
4
  "description": "Requirements tracking CLI and test harness",
5
5
  "type": "module",
6
6
  "bin": {