@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. */
|
package/docs/getting-started.md
CHANGED
|
@@ -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
|
|
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
|
@@ -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([
|
|
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. */
|