@hanzlaa/rcode 4.15.1 → 4.15.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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzlaa/rcode",
|
|
3
|
-
"version": "4.15.
|
|
3
|
+
"version": "4.15.2",
|
|
4
4
|
"description": "rcode — the AI team that never forgets. Persistent memory, specialist agents, and slash commands for AI IDEs. Works in Claude Code, Cursor, Gemini, VS Code, and Antigravity.",
|
|
5
5
|
"main": "cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -66,7 +66,23 @@ Read ONLY when current task needs them. Don't preemptively load.
|
|
|
66
66
|
|
|
67
67
|
**`rcode/templates/sprint.md` is the single canonical template — read it now, don't improvise a different structure.** It is not optional/decorative; it is what `execute-sprint.md`'s `owner_agent_resolution` step and its per-task dashboard-state-sync step parse via `grep '^owner:'`/`^phase:'`/`^sprint:'`. A SPRINT.md that free-styles a different structure (bold-label metadata, `### Story N — Title` headings, or any shape without the exact `phase:`/`sprint:`/`owner:` YAML frontmatter block) silently breaks that parsing — the sprint still executes and commits real code, but the dashboard never learns it happened (confirmed live, issue class closed by #1034-#1036's fixes — do not reintroduce it by drifting from the template).
|
|
68
68
|
|
|
69
|
-
**`owner:` field.**
|
|
69
|
+
**`owner:` field.** Set it from EITHER of two signals, whichever is present:
|
|
70
|
+
|
|
71
|
+
1. **The specialist review panel** (plan.md step 9.5). The panel already seated a
|
|
72
|
+
domain persona for this phase by reading the plan's own `files_modified`,
|
|
73
|
+
migrations, and decisions — that is a stronger signal than any keyword match,
|
|
74
|
+
because it comes from what the work actually touches. If a domain persona sat
|
|
75
|
+
on the panel and it is one of the engineer personas below, it is the owner.
|
|
76
|
+
2. **A council session** (a `.planning/council-sessions/council-*.md` referenced
|
|
77
|
+
in `<context>` as the authoritative decision) — use that session's
|
|
78
|
+
lead/highest-consensus technical persona for THIS sprint's dominant work.
|
|
79
|
+
|
|
80
|
+
Without this, the chain breaks in the middle: the panel seats Waleed and Yousef,
|
|
81
|
+
they find real problems in the plan, and then execution hands every sprint to the
|
|
82
|
+
generic `rcode-executor` — so the plan-time expertise never reaches the
|
|
83
|
+
implementation. `owner:` is what carries it across.
|
|
84
|
+
|
|
85
|
+
Pick by domain match when using either signal: one of `haitham`, `hanzla`, `omar`, `waleed`, `yousef` (the engineer personas with execute permission; `sadiq`/`fatima`/others are advisory-only and never valid here). A sprint whose `files_modified` is mostly `src/routes|services|models` → `yousef` (backend); mostly `src/components|pages` → `haitham` (frontend); architecture-level, cross-cutting → `waleed`; general/full-stack with no clear split → `hanzla`. If neither signal is present, or the domain split is genuinely ambiguous, omit `owner:` entirely — `execute-sprint.md` defaults to the generic `rcode-executor` when the field is absent. Do not guess an owner just to fill the field; an absent `owner:` is the correct, safe default.
|
|
70
86
|
|
|
71
87
|
## Dependency Graph Rules
|
|
72
88
|
|
package/rcode/workflows/plan.md
CHANGED
|
@@ -718,6 +718,25 @@ Do not restate the plan. Do not summarize. {response_language pass-through}
|
|
|
718
718
|
Report to the user which agents sat on the panel and what each blocked on — a
|
|
719
719
|
silent panel is indistinguishable from a skipped one.
|
|
720
720
|
|
|
721
|
+
### 9.5d — Carry the panel's domain seat into `owner:`
|
|
722
|
+
|
|
723
|
+
The panel just picked a domain persona by reading this phase's actual files,
|
|
724
|
+
migrations, and decisions. **That selection is the execution owner** — pass it to
|
|
725
|
+
the planner so each SPRINT.md carries `owner: {persona-id}` in its frontmatter,
|
|
726
|
+
and `execute-sprint.md`'s `owner_agent_resolution` spawns that persona instead of
|
|
727
|
+
the generic `rcode-executor`.
|
|
728
|
+
|
|
729
|
+
Without this step the chain breaks in the middle: the panel seats the right
|
|
730
|
+
specialists, they find real problems, and then every sprint is handed to a
|
|
731
|
+
generic executor — plan-time expertise that never reaches the implementation.
|
|
732
|
+
|
|
733
|
+
Only the engineer personas can own a sprint (`haitham`, `hanzla`, `omar`,
|
|
734
|
+
`waleed`, `yousef`). If the panel's domain seat was advisory-only (Fatima,
|
|
735
|
+
Sadiq), or the panel was the two standing seats alone, leave `owner:` unset —
|
|
736
|
+
`rcode-executor` is the correct default. **Do not invent an owner to fill the
|
|
737
|
+
field**; an absent `owner:` is safe, a wrong one sends the work to someone whose
|
|
738
|
+
lens does not fit it.
|
|
739
|
+
|
|
721
740
|
## 10. Spawn rcode-sprint-checker Agent
|
|
722
741
|
|
|
723
742
|
Display banner:
|