@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.
- package/bin/console/assets/{index-cEiW-uYK.js → index-DgNa9vEs.js} +115 -115
- package/bin/console/index.html +1 -1
- package/bin/northstar +0 -0
- package/bin/templates/blank/agents/ceo.md +6 -0
- package/bin/templates/blank/organization.jsonc +7 -3
- package/bin/templates/content-studio/agents/ceo.md +6 -0
- package/bin/templates/content-studio/organization.jsonc +9 -8
- package/bin/templates/ios-app-factory/agents/ceo.md +11 -11
- package/bin/templates/ios-app-factory/organization.jsonc +20 -21
- package/bin/templates/research-desk/agents/ceo.md +6 -0
- package/bin/templates/research-desk/organization.jsonc +10 -9
- package/package.json +1 -1
package/bin/console/index.html
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
17
|
-
//
|
|
18
|
-
"pipeline": [
|
|
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:
|
|
2
|
-
//
|
|
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
|
-
|
|
24
|
-
//
|
|
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": "
|
|
28
|
-
{ "stage": "
|
|
29
|
-
{ "stage": "
|
|
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.
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
81
|
-
|
|
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
|
|
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
|
-
//
|
|
83
|
+
// evaluator rejects it) handled via the bounded revise/escalation path, never silently "skipped".
|
|
83
84
|
"pipeline": [
|
|
84
|
-
{ "stage": "evaluation", "
|
|
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
|
|
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
|
-
//
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
|
|
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"]`
|
|
104
|
-
|
|
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", "
|
|
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:
|
|
2
|
-
//
|
|
3
|
-
//
|
|
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
|
-
|
|
25
|
-
//
|
|
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": "
|
|
29
|
-
{ "stage": "
|
|
30
|
-
{ "stage": "
|
|
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
|
}
|