@nanocollective/roster 0.1.0-alpha.22 → 0.1.0-alpha.23

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/dist/cli.js CHANGED
@@ -1029,6 +1029,7 @@ roster brief <kind> [handle]
1029
1029
  discover write org/business.md, which every prompt is composed on top of
1030
1030
  charter <who> write a staff member's CHARTER.md
1031
1031
  voice revise org/voice.md, the house style every surface inherits
1032
+ priorities write org/priorities.md, this month's priorities
1032
1033
  amend <who> change what a staff member is told, with the whole prompt attached
1033
1034
 
1034
1035
  \`charter\` carries one of the worked examples in docs/charters as a model for the shape,
@@ -4890,7 +4891,7 @@ async function initFiles(o) {
4890
4891
  }
4891
4892
  files.set("org/business.md", businessStub(o.name, o.org));
4892
4893
  files.set("org/priorities.md", prioritiesStub());
4893
- for (const [rel, text] of briefCommands(["discover", "voice"], {
4894
+ for (const [rel, text] of briefCommands(["discover", "priorities", "voice"], {
4894
4895
  ORG: o.org,
4895
4896
  ORG_NAME: o.name,
4896
4897
  OPS_REPO: `${o.org}/${o.opsName}`,
@@ -5861,6 +5862,7 @@ import { join as join24 } from "path";
5861
5862
  var WRITES = {
5862
5863
  discover: (c) => [`${c.opsName}/org/business.md`],
5863
5864
  voice: (c) => [`${c.opsName}/org/voice.md`],
5865
+ priorities: (c) => [`${c.opsName}/org/priorities.md`],
5864
5866
  charter: (c) => [`${c.dir}/CHARTER.md`]
5865
5867
  };
5866
5868
  var READS = {
@@ -5870,6 +5872,7 @@ var READS = {
5870
5872
  `${c.opsName}/org/guardrails.md`
5871
5873
  ],
5872
5874
  voice: (c) => [`${c.opsName}/org/business.md`, `${c.opsName}/org/guardrails.md`],
5875
+ priorities: (c) => [`${c.opsName}/org/business.md`],
5873
5876
  /* A charter is the difference between this staff member and everyone else, so the peers'
5874
5877
  charters are the most useful thing in the room: without them the model writes a second
5875
5878
  copy of whoever it was shown. */
@@ -149,7 +149,8 @@ The same road, command by command. Each prints its plan and changes nothing with
149
149
 
150
150
  ```bash
151
151
  roster init --org acme --apply # the ops repo, and its Actions access
152
- roster brief discover # a brief for org/business.md; write priorities.md too
152
+ roster brief discover # a brief for org/business.md
153
+ roster brief priorities # a brief for org/priorities.md
153
154
  roster hire cto --apply # the brain, the wiring, the commits as you
154
155
  roster app cto --apply # the App, its secrets, and a pre-ticked install link
155
156
  roster credential --apply # the agent credential, once for the org
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanocollective/roster",
3
- "version": "0.1.0-alpha.22",
3
+ "version": "0.1.0-alpha.23",
4
4
  "description": "An agent-run org, powered by GitHub. Scaffold AI staff members whose brain is a repo.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,46 @@
1
+ Write `org/priorities.md` for %%ORG_NAME%%.
2
+
3
+ You are helping %%HUMAN%% decide what their AI staff should work on this month. Every staff
4
+ member reads this file at the start of every run and picks work that serves it, so a vague
5
+ priority produces scattered work.
6
+
7
+ ## Where you are
8
+
9
+ - `%%OPS_REPO_DIR%%/org/business.md`: what the business is. **Read it first**, and don't ask
10
+ anything it already answers.
11
+ - `%%OPS_REPO_DIR%%/org/priorities.md`: the current file, which you are replacing.
12
+
13
+ If you cannot read files where you are running, ask %%HUMAN%% to paste `org/business.md`.
14
+
15
+ ## Interview
16
+
17
+ Ask one question at a time. You are after:
18
+
19
+ - **The one outcome that matters most this month**, and how they will know it happened.
20
+ - **At most two more**, in order. Push back on a fourth: past three it is a wish list.
21
+ - **What is out of scope this month**: work that is tempting but not now. Naming it is what
22
+ stops the staff doing it.
23
+
24
+ Prefer outcomes ("a stranger pays for it") to activities ("improve the landing page"). If an
25
+ answer is an activity, ask what it is for.
26
+
27
+ ## Write it
28
+
29
+ Use exactly this shape:
30
+
31
+ ```
32
+ ## What matters this month
33
+
34
+ ### Priorities, in order
35
+
36
+ 1. The first outcome, and how you will know it happened.
37
+ 2. The second.
38
+ 3. The third.
39
+
40
+ ### Out of scope this month
41
+
42
+ - One thing per line.
43
+ ```
44
+
45
+ Keep each priority to a sentence or two. Don't add anything %%HUMAN%% didn't say without
46
+ listing it after the file so they can check it.
@@ -99,7 +99,12 @@ export function prioritiesForm(o) {
99
99
  (scoped.length ? "\n### Out of scope this month\n\n" + scoped.map((t) => `- ${t}`).join("\n") + "\n" : "");
100
100
  await saveAndSay(save, out, o.path, text, "portal: write org/priorities.md", o.onSaved);
101
101
  };
102
- return modes([...(o.before ?? []), { label: "Fill in", node: form }, rawMode(o.path, o.onSaved)]);
102
+ return modes([
103
+ ...(o.before ?? []),
104
+ { label: "Fill in", node: form },
105
+ { label: "Let an AI interview you", node: paste({ kind: "priorities", title: "", onSaved: o.onSaved }) },
106
+ rawMode(o.path, o.onSaved),
107
+ ]);
103
108
  }
104
109
 
105
110
  /** Any org file as highlighted text, with Read ahead of it on the Org screen. */