@hechura/noreaster-cli 0.2.1 → 0.2.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.
@@ -12,6 +12,10 @@ exports.TEMPLATE_DOC_TYPES = [
12
12
  "design_system",
13
13
  "implementation_plan",
14
14
  "prd",
15
+ "technical_design",
16
+ "feature_summary",
17
+ "sprint_plan",
18
+ "executive_summary",
15
19
  ];
16
20
  const AI_WRITING_HINT = `<!-- Writing for AI tools:
17
21
  - Be explicit with exact values ("max file size: 10MB", not "reasonable").
@@ -299,6 +303,139 @@ ${AI_WRITING_HINT}
299
303
 
300
304
  ## Feature List
301
305
 
306
+ -
307
+ `;
308
+ const TECHNICAL_DESIGN_TEMPLATE = `# Technical Design
309
+
310
+ ${AI_WRITING_HINT}
311
+
312
+ ## Technical Context
313
+
314
+ <!-- Co-authored with engineering. -->
315
+
316
+ ## Affected Areas
317
+
318
+ <!-- One subsection per project area. -->
319
+
320
+ ### Frontend
321
+
322
+ - Services & APIs Affected:
323
+ - Changes needed:
324
+
325
+ ### Backend
326
+
327
+ - Services & APIs Affected:
328
+ - Changes needed:
329
+
330
+ ## API Contract
331
+
332
+ \`\`\`
333
+ POST /api/v1/[resource]
334
+ Request:
335
+ {
336
+ "field": "type — description"
337
+ }
338
+
339
+ Response (200):
340
+ {
341
+ "field": "type — description"
342
+ }
343
+
344
+ Response (400):
345
+ {
346
+ "error": "VALIDATION_ERROR",
347
+ "message": "Human-readable description"
348
+ }
349
+ \`\`\`
350
+
351
+ ## Data Model Changes
352
+
353
+ \`\`\`
354
+ Table: [table_name]
355
+ + new_column (type, constraints)
356
+ ~ modified_column (old_type → new_type)
357
+ \`\`\`
358
+
359
+ ## Edge Cases & Error Handling
360
+
361
+ | # | Scenario | Expected Behavior | Error Message (if applicable) |
362
+ |---|----------|-------------------|-------------------------------|
363
+ | 1 | | | |
364
+
365
+ ## Dependencies & Risks
366
+
367
+ -
368
+
369
+ ## Open Questions
370
+
371
+ - [ ]
372
+
373
+ ## Decision Log
374
+
375
+ | Date | Decision | Rationale | Decided By |
376
+ |------|----------|-----------|------------|
377
+ | | | | |
378
+ `;
379
+ const FEATURE_SUMMARY_TEMPLATE = `# Feature Summary
380
+
381
+ ${AI_WRITING_HINT}
382
+
383
+ ## Problem
384
+
385
+ ## Outcome
386
+
387
+ ## In Scope
388
+
389
+ -
390
+
391
+ ## Out of Scope
392
+
393
+ -
394
+
395
+ ## Key Decisions
396
+
397
+ -
398
+ `;
399
+ const SPRINT_PLAN_TEMPLATE = `# Sprint Plan
400
+
401
+ ${AI_WRITING_HINT}
402
+
403
+ ## Sprint Goal
404
+
405
+ ## Scope
406
+
407
+ -
408
+
409
+ ## Deliverables
410
+
411
+ | Item | Owner | Done when |
412
+ |------|-------|-----------|
413
+ | | | |
414
+
415
+ ## Risks & Dependencies
416
+
417
+ -
418
+
419
+ ## Notes
420
+
421
+ -
422
+ `;
423
+ const EXECUTIVE_SUMMARY_TEMPLATE = `# Executive Summary
424
+
425
+ ${AI_WRITING_HINT}
426
+
427
+ ## Situation
428
+
429
+ ## Recommendation
430
+
431
+ ## Status
432
+
433
+ ## Decisions Needed
434
+
435
+ -
436
+
437
+ ## Next Steps
438
+
302
439
  -
303
440
  `;
304
441
  const TEMPLATES = {
@@ -309,6 +446,10 @@ const TEMPLATES = {
309
446
  design_system: DESIGN_SYSTEM_TEMPLATE,
310
447
  implementation_plan: IMPLEMENTATION_PLAN_TEMPLATE,
311
448
  prd: PRD_TEMPLATE,
449
+ technical_design: TECHNICAL_DESIGN_TEMPLATE,
450
+ feature_summary: FEATURE_SUMMARY_TEMPLATE,
451
+ sprint_plan: SPRINT_PLAN_TEMPLATE,
452
+ executive_summary: EXECUTIVE_SUMMARY_TEMPLATE,
312
453
  };
313
454
  function isTemplateDocType(value) {
314
455
  return value != null && exports.TEMPLATE_DOC_TYPES.includes(value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hechura/noreaster-cli",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "CLI for Hechura Noreaster agent API access",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,7 +10,7 @@ Use this skill for operational work in Noreaster through the official agent CLI
10
10
  ## Execution Defaults
11
11
 
12
12
  1. Prefer the published CLI:
13
- - `npx @hechura/noreaster-cli@0.2.1 <command>` or `noreaster <command>` after global install (`npm install -g @hechura/noreaster-cli@0.2.1`)
13
+ - `npx @hechura/noreaster-cli@0.2.2 <command>` or `noreaster <command>` after global install (`npm install -g @hechura/noreaster-cli@0.2.2`)
14
14
  - In this repo: `npm run agent -- <command>`
15
15
  2. Default API base URL:
16
16
  - `https://noreaster.vercel.app`
@@ -30,17 +30,22 @@ PRD → Feature → Feature PRD (feature_description) → Feature Spec (design_s
30
30
  → Work Items → Implementation Plan docs → GitHub PRs
31
31
  ```
32
32
 
33
- ### Doc types vs labels
33
+ ### The source-of-truth document set
34
34
 
35
- UI labels are for humans; CLI/API payloads use `doc_type` values:
35
+ Project documents are the versioned source of truth for how a project is built. Read the relevant docs before doing work; treat their contents as binding unless a human approves a change. UI labels are for humans; CLI/API payloads use `doc_type` values:
36
36
 
37
- | UI label | `doc_type` |
38
- | --- | --- |
39
- | Feature PRD | `feature_description` |
40
- | Feature Spec | `design_spec` |
41
- | Technical Architecture | `architecture` |
42
- | Design System | `design_system` |
43
- | PRD | `prd` |
37
+ | UI label | `doc_type` | Purpose — how agents use it |
38
+ | --- | --- | --- |
39
+ | PRD | `prd` | Product requirements: problem, goals, personas, feature list. Governs *what* to build and why. |
40
+ | Architecture | `architecture` | System overview: services, data flows, infrastructure. Governs *where* code lives and how systems connect. |
41
+ | Technical Design | `technical_design` | Project-level technical design: affected areas, API contracts, data model, edge cases. Governs implementation shape. |
42
+ | Design System | `design_system` | UI system: tokens, typography, components, a11y rules. All UI work must conform to it. |
43
+ | Feature Summary | `feature_summary` | Concise feature overview: problem, outcome, in/out of scope. Orients agents before deeper docs. |
44
+ | Sprint Plan | `sprint_plan` | Sprint goal, scope, deliverables, risks. Governs what belongs in the current sprint. |
45
+ | Executive Summary | `executive_summary` | Stakeholder-facing status and decisions. Read for context; humans own the framing. |
46
+ | General Context | `general_context` | Background context for the project or engagement. Read early; useful constraints often live here. |
47
+ | Feature PRD | `feature_description` | Feature-scoped requirements (feature-linked, not a Core Document). |
48
+ | Feature Spec | `design_spec` | Feature-scoped technical design (feature-linked, not a Core Document). |
44
49
 
45
50
  Do not invent types like `feature_prd`. Use the `doc_type` column in create/update payloads and `docs template <docType>`.
46
51
 
@@ -50,7 +55,7 @@ Ownership defaults:
50
55
  - Feature Spec: engineering-owned
51
56
  - Work-item breakdowns: submitted by external agents as draft runs; humans review/apply
52
57
  - Implementation plans: authored by a developer's agent, linked to a work item
53
- - PRs: linked manually or via inbound webhook matching `NOR-<n>`
58
+ - PRs: linked manually or via inbound webhook matching `{ticket_prefix}-<n>` (e.g. `AIM-12`)
54
59
 
55
60
  ## Lifecycle Gates
56
61
 
@@ -74,6 +79,8 @@ Before implementing a work item, load the governing docs — do not invent contr
74
79
  3. Load project foundation docs:
75
80
  - `docs list --project-id <id> --type architecture`
76
81
  - `docs list --project-id <id> --type design_system`
82
+ - `docs list --project-id <id> --type technical_design`
83
+ - `docs list --project-id <id> --type general_context` (constraints and background often live here)
77
84
  4. If an ADR governs the change, read it (`--type adr`) before contradicting prior decisions.
78
85
 
79
86
  Compliance rules while coding:
@@ -87,7 +94,24 @@ Compliance rules while coding:
87
94
  On completion:
88
95
 
89
96
  - Record deviations under the design/implementation notes **Deviations from Spec** section
90
- - Link the PR with `NOR-<n>` in the branch name or title (`tasks pr-link` if needed)
97
+ - Link the PR with `{ticket_prefix}-<n>` in the branch name or title (`tasks pr-link` if needed)
98
+
99
+ ## Recording decisions in the source of truth
100
+
101
+ The document set only works as a source of truth if decisions land in it explicitly. Agents may update project documents, but every decision made during work must be recorded — never applied silently in code alone.
102
+
103
+ Rules:
104
+
105
+ - Every content update writes a new revision. Always pass `change_summary` stating what changed and why:
106
+
107
+ ```bash
108
+ noreaster docs update <id> --data '{"content":"...","change_summary":"Recorded decision: switched session storage to Redis (perf, NOR-42)"}'
109
+ ```
110
+
111
+ - Architectural decisions (technology choices, service boundaries, data model direction) go in a new ADR (`doc_type: "adr"`), not buried in an edit. Then update the affected `architecture` / `technical_design` doc to reflect it, with a `change_summary` referencing the ADR.
112
+ - Implementation decisions that deviate from or refine an approved doc: update the governing doc's **Decision Log** / **Deviations from Spec** section with date, decision, rationale, and who decided — plus a `change_summary`.
113
+ - Never rewrite history: use `docs revisions <id>` to inspect prior versions; corrections are new revisions, not silent replacements.
114
+ - Approved docs are gated: content edits to an `approved` doc still record revisions, but status changes go through review (`reviews request` → human approval). If your change invalidates an approval, say so and request re-review rather than working around it.
91
115
 
92
116
  ## Work Discovery
93
117
 
@@ -114,9 +138,9 @@ Do not invent silent auto-apply behavior.
114
138
 
115
139
  ## NOR Short IDs and PR Linking
116
140
 
117
- - Work items have global short IDs rendered as `NOR-<n>`
118
- - Branch convention: `nor-<n>-<kebab-title>`
119
- - Put `NOR-<n>` in the branch name or PR title so the webhook can auto-link
141
+ - Work items have per-project short IDs rendered as `{ticket_prefix}-<n>` (starting at 1 per project)
142
+ - Branch convention: `{prefix}-<n>-<kebab-title>` (e.g. `aim-12-fix-login`)
143
+ - Put `{ticket_prefix}-<n>` in the branch name or PR title so the webhook can auto-link
120
144
  - Manual link: `tasks pr-link <id> --url <github-pr-url>`
121
145
  - Unlink: `tasks pr-unlink <id> --url <github-pr-url>`
122
146
  - PR merge never silently moves work-item status; humans accept "PR merged — move to done?"
@@ -201,7 +225,7 @@ Empty `content` on create is seeded from the template for that `doc_type`.
201
225
  ## Quick Command Examples
202
226
 
203
227
  ```bash
204
- npm install -g @hechura/noreaster-cli@0.2.1
228
+ npm install -g @hechura/noreaster-cli@0.2.2
205
229
  noreaster skill install
206
230
  noreaster my-work
207
231
  noreaster features list --project-id <project-id>