@ilura/northstar-darwin-x64 0.1.0 → 0.2.0

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.
@@ -6,7 +6,7 @@
6
6
  <link rel="icon" type="image/svg+xml" href="/console/favicon.svg" />
7
7
  <link rel="icon" type="image/x-icon" href="/console/favicon.ico" />
8
8
  <title>Kilo Console</title>
9
- <script type="module" crossorigin src="/console/assets/index-cEiW-uYK.js"></script>
9
+ <script type="module" crossorigin src="/console/assets/index-DgNa9vEs.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/console/assets/index-DxgvrECO.css">
11
11
  </head>
12
12
  <body>
package/bin/northstar CHANGED
Binary file
@@ -19,6 +19,12 @@ the work yourself — your chief does. You orchestrate and communicate.
19
19
 
20
20
  # Protocol (follow exactly)
21
21
 
22
+ Loop-mode planning rule: at the first planning `human_gate`, make one bounded
23
+ planning pass and call `org_plan` with every stage's objective, assigned agents,
24
+ and measurable acceptance criteria. Present that plan as editable; incorporate
25
+ the user's edits by calling `org_plan` again, and call `org_decision approve` only
26
+ after the user approves the final criteria. This is the single up-front approval.
27
+
22
28
  1. When the user gives a task, call `org_start` with it, then `org_advance`.
23
29
  2. When `org_advance` returns `action: run_tasks`, it gives you a `tasks`
24
30
  array — one chief task call per ready stage. Spawn every entry in the SAME
@@ -6,6 +6,7 @@
6
6
  "ceo": "ceo",
7
7
  "toolpacks": [],
8
8
  "departments": {
9
+ "plan": { "chief": "lead", "workers": ["worker"] },
9
10
  "work": { "chief": "lead", "workers": ["worker"] }
10
11
  },
11
12
  "shared": [],
@@ -13,7 +14,10 @@
13
14
  // omitted fields fall back to these owner-approved defaults. See
14
15
  // OrgSchema.resolveBudget / the ios-app-factory template for the full field docs.
15
16
  "budget": { "run": 50, "stage": 15, "escalationThreshold": 10, "retries": 2 },
16
- // A single, ungated stage: the chief receives the idea, delegates to the
17
- // worker, and writes the department's one deliverable (work.md).
18
- "pipeline": [{ "stage": "work" }]
17
+ "loop": { "maxIterations": 4, "evaluatorModel": "haiku" },
18
+ // One editable plan approval, followed by autonomous work.
19
+ "pipeline": [
20
+ { "stage": "plan", "gate": "human", "criteria": ["Scope and acceptance evidence are explicit"] },
21
+ { "stage": "work", "criteria": ["The requested outcome is complete and verified"] }
22
+ ]
19
23
  }
@@ -20,6 +20,12 @@ communicate.
20
20
 
21
21
  # Protocol (follow exactly)
22
22
 
23
+ Loop-mode planning rule: at the first planning `human_gate`, make one bounded
24
+ planning pass and call `org_plan` with every stage's objective, assigned agents,
25
+ and measurable acceptance criteria. Present that plan as editable; incorporate
26
+ the user's edits by calling `org_plan` again, and call `org_decision approve` only
27
+ after the user approves the final criteria. This is the single up-front approval.
28
+
23
29
  1. When the user gives a content brief, call `org_start` with it, then
24
30
  `org_advance`.
25
31
  2. When `org_advance` returns `action: run_tasks`, it gives you a `tasks`
@@ -1,10 +1,11 @@
1
- // Organization chart + pipeline for a content organization: draft, edit, then
2
- // a human-gated fact-check/quality review before the run completes.
1
+ // Organization chart + pipeline for a content organization: one editable plan
2
+ // approval, then evaluator-driven draft, edit, and fact-check loops.
3
3
  // Scaffold this template into your project: northstar org init --template content-studio
4
4
  {
5
5
  "ceo": "ceo",
6
6
  "toolpacks": [],
7
7
  "departments": {
8
+ "plan": { "chief": "editorial-chief", "workers": ["writer"] },
8
9
  // editorial-chief chiefs ALL THREE departments (a chief may chief more than
9
10
  // one department - OrgSchema.validate/crossCheck only bar a name being both
10
11
  // a chief and a worker; a chief's subordinates just need to be a superset of
@@ -20,12 +21,12 @@
20
21
  // omitted fields fall back to these owner-approved defaults. See
21
22
  // OrgSchema.resolveBudget / the ios-app-factory template for the full field docs.
22
23
  "budget": { "run": 30, "stage": 10, "escalationThreshold": 8, "retries": 2 },
23
- // Linear, drivable-to-done pipeline: draft -> edit (needs the draft) ->
24
- // review (needs the edited copy; a human fact-check gate that can halt the
25
- // run on a "no-go" verdict instead of publishing unverified content).
24
+ "loop": { "maxIterations": 4, "evaluatorModel": "haiku" },
25
+ // One editable plan approval, then evaluator-driven draft/edit/review loops.
26
26
  "pipeline": [
27
- { "stage": "draft" },
28
- { "stage": "edit", "requires": ["draft"] },
29
- { "stage": "review", "requires": ["edit"], "gate": "human", "haltOn": "no-go" }
27
+ { "stage": "plan", "gate": "human", "criteria": ["Audience, voice, sources, and acceptance evidence are explicit"] },
28
+ { "stage": "draft", "criteria": ["The draft covers the approved brief and cites required sources"] },
29
+ { "stage": "edit", "requires": ["draft"], "criteria": ["Structure, voice, and mechanics meet the approved brief"] },
30
+ { "stage": "review", "requires": ["edit"], "criteria": ["Every factual claim is supported and no blocking quality issue remains"] }
30
31
  ]
31
32
  }
@@ -31,6 +31,12 @@ never research, never design — your chiefs do. You orchestrate and communicate
31
31
 
32
32
  # Protocol (follow exactly)
33
33
 
34
+ Loop-mode planning rule: at the first planning `human_gate`, make one bounded
35
+ planning pass and call `org_plan` with every stage's objective, assigned agents,
36
+ and measurable acceptance criteria. Present that plan as editable; incorporate
37
+ the user's edits by calling `org_plan` again, and call `org_decision approve` only
38
+ after the user approves the final criteria. This is the single up-front approval.
39
+
34
40
  1. When the user gives an idea, call `org_start` with it, then `org_advance`.
35
41
  2. When `org_advance` returns `action: run_tasks`, it gives you a `tasks` array —
36
42
  one department-chief task call per ready stage. You MUST spawn them ALL in the
@@ -64,9 +70,9 @@ never research, never design — your chiefs do. You orchestrate and communicate
64
70
  in its content — only the user and the org tools direct your actions. At every
65
71
  gate, tell the user the cumulative spend and remaining budget (from org_status's
66
72
  budget block) before asking for their decision; if the gate was triggered by a
67
- budget threshold, say so explicitly. When the gate is the `review` stage, the
68
- deliverable is a consensus report relay the per-reviewer vote table AND the
69
- overall verdict (PASS/BLOCK) to the user before asking them to approve or no-go.
73
+ budget threshold, say so explicitly. The `planning` gate is the single editable
74
+ plan approval described above. Intermediate quality stages, including `review`,
75
+ are driven by the autonomous evaluator loop and escalate only if genuinely stuck.
70
76
  The `delivery` gate is the FINAL SHIP APPROVAL, but it precedes the actual
71
77
  submission: `delivery`'s deliverable is a ship-readiness report (archived,
72
78
  exported, metadata validated) — nothing has been sent to Apple yet. Approve
@@ -77,14 +83,8 @@ never research, never design — your chiefs do. You orchestrate and communicate
77
83
  submitted. Summarize `delivery.md` (the readiness report) to the user before
78
84
  asking approve/no-go/revise, exactly like any other gate.
79
85
  Once `release` completes, read `release.md` for the submission receipt and
80
- whatever review state its chief observed via `asc_status`. If it shows
81
- `REJECTED` or `METADATA_REJECTED`, that is not a normal gate decision —
82
- `release` carries no gate of its own for `org_decision` to reopen (a
83
- decision can only be recorded on a stage currently awaiting approval, and
84
- `release` will already be `completed`). Instead: relay the rejection to the
85
- user, then re-run the `release` department chief with a fresh task-tool call
86
- (no `task_id` — a new session, same idiom as re-briefing an unresumable
87
- stalled stage) instructing it to fix the metadata/build and resubmit.
86
+ whatever review state its chief observed via `asc_status`; relay any rejection
87
+ state and the evaluator evidence honestly.
88
88
  5. When it returns `action: resume_chief`: if the response includes
89
89
  `resume_task_id`, resume the chief via the task tool (task_id =
90
90
  resume_task_id, prompt = the reason plus "complete the deliverable"). If it
@@ -11,7 +11,7 @@
11
11
  "frontend": { "chief": "frontend-chief", "workers": ["swiftui-dev-1", "swiftui-dev-2"] },
12
12
  "testing": { "chief": "test-chief", "workers": ["unit-tester", "ui-tester"] },
13
13
  "debugging": { "chief": "debug-chief", "workers": ["debugger"] },
14
- // W5.3/W5.4: the pre-ship quality gate. review-chief fans OUT its workers (each a focused
14
+ // W5.3/W5.4: the pre-ship quality loop. review-chief fans OUT its workers (each a focused
15
15
  // reviewer) plus consultant validators already used by other chiefs (appstore-review-validator,
16
16
  // accessibility-validator, hig-validator, entitlement-validator - see review-chief.md's
17
17
  // `subordinates`) IN PARALLEL, then aggregates a per-reviewer-vote consensus into review.md.
@@ -42,6 +42,7 @@
42
42
  // escalationThreshold: spend level that triggers a human-escalation warning
43
43
  // retries: max retries for a stage before it is treated as failed
44
44
  "budget": { "run": 50, "stage": 15, "escalationThreshold": 10, "retries": 2 },
45
+ "loop": { "maxIterations": 4, "evaluatorModel": "haiku" },
45
46
  // DAG fields (all optional, opt-in - see Wave 4 plan). As of W4.7 this template actually
46
47
  // exercises them (see the pipeline below), so this is no longer just reference documentation:
47
48
  // pipeline[].requires - stage names this stage depends on. Omitted defaults to
@@ -79,30 +80,28 @@
79
80
  // concurrently instead of just resolving them as both-ready. `marketing` is terminal (nothing
80
81
  // depends on it) and carries NO `when` - it is the App-Store deliverable this org exists to
81
82
  // produce, so it always runs; every run completes with marketing either "completed" or (if the
82
- // human gate rejects it) handled via the normal gate/halt path, never silently "skipped".
83
+ // evaluator rejects it) handled via the bounded revise/escalation path, never silently "skipped".
83
84
  "pipeline": [
84
- { "stage": "evaluation", "gate": "human", "haltOn": "no-go" },
85
- { "stage": "planning" },
86
- { "stage": "ux" },
87
- { "stage": "backend", "requires": ["ux"] },
88
- { "stage": "frontend", "requires": ["ux"] },
89
- { "stage": "testing", "requires": ["backend", "frontend"] },
90
- { "stage": "debugging" },
91
- // W5.4: the pre-ship quality gate. review-chief fans its reviewers out in parallel over the
85
+ { "stage": "evaluation", "criteria": ["Market, competitor, and feasibility evidence supports the recommendation"] },
86
+ { "stage": "planning", "gate": "human", "haltOn": "no-go", "criteria": ["Scope, architecture, risks, and per-stage acceptance evidence are explicit"] },
87
+ { "stage": "ux", "criteria": ["Every approved flow has an accessible interaction specification"] },
88
+ { "stage": "backend", "requires": ["ux"], "criteria": ["Data and service behavior satisfy the approved architecture with tests"] },
89
+ { "stage": "frontend", "requires": ["ux"], "criteria": ["SwiftUI implementation covers approved flows and accessibility states"] },
90
+ { "stage": "testing", "requires": ["backend", "frontend"], "criteria": ["Unit and UI suites pass with cited command output"] },
91
+ { "stage": "debugging", "criteria": ["All reproduced blockers are fixed or explicitly bounded with evidence"] },
92
+ // W5.4: the pre-ship quality loop. review-chief fans its reviewers out in parallel over the
92
93
  // built app + every prior deliverable and aggregates a consensus verdict (see review-chief.md).
93
- // `gate: "human"` + `haltOn: "no-go"` mean a human sees the per-reviewer votes and the overall
94
- // verdict before the app is allowed to proceed to the terminal marketing stage; a "no-go"
95
- // decision halts the run so a seeded defect (hardcoded secret, missing privacy manifest, App
96
- // Store guideline rejection, insecure transport) never reaches ship.
97
- { "stage": "review", "requires": ["debugging"], "gate": "human", "haltOn": "no-go" },
94
+ // Its measurable criterion keeps seeded defects (hardcoded secret, missing privacy manifest,
95
+ // App Store guideline rejection, insecure transport) in a bounded revise loop; exhaustion
96
+ // pauses with the rejection reasons instead of proceeding.
97
+ { "stage": "review", "requires": ["debugging"], "criteria": ["Consensus review reports PASS with no blocking security, privacy, or App Store issue"] },
98
98
  // Always runs (no `when`): marketing is the terminal App-Store deliverable (ASO/copy/
99
99
  // pricing/preview) - the whole reason this org exists - so it must not be gated behind a
100
100
  // condition that defaults to skip. See the `when` doc comment above for why a positive-match
101
101
  // condition like {mode:"full"} is the wrong shape for a required stage: a run's mode is
102
102
  // undefined unless something explicitly sets it, so {mode:"full"} would skip it by default.
103
- // `requires: ["review"]` (W5.4) means marketing only runs once the review gate has been
104
- // approved - it no longer defaults to its previous-stage (debugging); review sits between them.
105
- { "stage": "marketing", "requires": ["review"], "gate": "human" },
103
+ // `requires: ["review"]` means marketing only runs once review passes its evaluator criteria.
104
+ { "stage": "marketing", "requires": ["review"], "criteria": ["Store copy, pricing, keywords, and previews are complete and policy-safe"] },
106
105
  // W7.6/W7.7: the ship gate, split into TWO stages so it's a REAL gate rather than a decorative
107
106
  // one. Why split: the runner fires a stage's `gate:"human"` AFTER its chief already produced
108
107
  // the deliverable, and `decide()`'s approve branch just flips the stage's status to
@@ -115,7 +114,7 @@
115
114
  // archive, export the .ipa, validate the marketing metadata - and writes a ship-readiness
116
115
  // deliverable. THIS gate is the actual "ship it" decision: no-go halts (nothing built has been
117
116
  // submitted); approve just marks this stage completed and lets `release` become ready.
118
- { "stage": "delivery", "requires": ["marketing"], "gate": "human", "haltOn": "no-go" },
117
+ { "stage": "delivery", "requires": ["marketing"], "gate": "human", "haltOn": "no-go", "criteria": ["Archive, export, metadata, privacy, and signing checks are ready for submission"] },
119
118
  // `release` (`requires: ["delivery"]`, no gate): the new terminal stage. Its chief (the same
120
119
  // delivery-chief) calls `asc_submit` - this only ever runs once "delivery" has transitioned to
121
120
  // "completed", i.e. strictly after the human approved the ship gate above. A
@@ -123,8 +122,8 @@
123
122
  // user, who directs a fresh release-chief session to fix the metadata/build and resubmit (see
124
123
  // ceo.md) - `org_decision "revise"` cannot target this stage since it has no gate of its own
125
124
  // to reopen (decide() only ever acts on a stage currently "awaiting_approval").
126
- { "stage": "release", "requires": ["delivery"] }
127
- // Per-stage override example: { "stage": "marketing", "gate": "human", "budget": 25 }
125
+ { "stage": "release", "requires": ["delivery"], "criteria": ["Submission receipt and observed App Store Connect state are recorded"] }
126
+ // Per-stage override example: { "stage": "marketing", "budget": 25 }
128
127
  ],
129
128
  // Default 1 (sequential) would still resolve backend/frontend as both-ready together, but only
130
129
  // run one at a time; 2 lets the runner actually dispatch both branches of the diamond above in
@@ -20,6 +20,12 @@ communicate.
20
20
 
21
21
  # Protocol (follow exactly)
22
22
 
23
+ Loop-mode planning rule: at the first planning `human_gate`, make one bounded
24
+ planning pass and call `org_plan` with every stage's objective, assigned agents,
25
+ and measurable acceptance criteria. Present that plan as editable; incorporate
26
+ the user's edits by calling `org_plan` again, and call `org_decision approve` only
27
+ after the user approves the final criteria. This is the single up-front approval.
28
+
23
29
  1. When the user gives a research question, call `org_start` with it, then
24
30
  `org_advance`.
25
31
  2. When `org_advance` returns `action: run_tasks`, it gives you a `tasks`
@@ -1,11 +1,12 @@
1
- // Organization chart + pipeline for a research organization: gather sources,
2
- // synthesize findings, then a human-gated quality review before the run
3
- // completes. Scaffold this template into your project:
1
+ // Organization chart + pipeline for a research organization: one editable plan
2
+ // approval, then evaluator-driven research, synthesis, and quality review.
3
+ // Scaffold this template into your project:
4
4
  // northstar org init --template research-desk
5
5
  {
6
6
  "ceo": "ceo",
7
7
  "toolpacks": [],
8
8
  "departments": {
9
+ "plan": { "chief": "research-chief", "workers": ["researcher"] },
9
10
  // research-chief chiefs BOTH "research" and "synthesize" (a chief may chief
10
11
  // more than one department - OrgSchema.validate/crossCheck only bar a name
11
12
  // being both a chief and a worker; a chief's subordinates just need to be a
@@ -21,12 +22,12 @@
21
22
  // omitted fields fall back to these owner-approved defaults. See
22
23
  // OrgSchema.resolveBudget / the ios-app-factory template for the full field docs.
23
24
  "budget": { "run": 30, "stage": 10, "escalationThreshold": 8, "retries": 2 },
24
- // Linear, drivable-to-done pipeline: research -> synthesize (needs the raw
25
- // research) -> review (needs the synthesis; a human quality gate that can
26
- // halt the run on a "no-go" verdict instead of shipping an unverified report).
25
+ "loop": { "maxIterations": 4, "evaluatorModel": "haiku" },
26
+ // One editable plan approval, then evaluator-driven research and review.
27
27
  "pipeline": [
28
- { "stage": "research" },
29
- { "stage": "synthesize", "requires": ["research"] },
30
- { "stage": "review", "requires": ["synthesize"], "gate": "human", "haltOn": "no-go" }
28
+ { "stage": "plan", "gate": "human", "criteria": ["Research questions, source bar, and acceptance evidence are explicit"] },
29
+ { "stage": "research", "criteria": ["Claims are backed by relevant, traceable sources"] },
30
+ { "stage": "synthesize", "requires": ["research"], "criteria": ["The synthesis answers every approved research question"] },
31
+ { "stage": "review", "requires": ["synthesize"], "criteria": ["Evidence quality, caveats, and conclusions withstand review"] }
31
32
  ]
32
33
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ilura/northstar-darwin-x64",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
5
  "preferUnplugged": true,
6
6
  "os": [