atris 3.34.0 → 3.36.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/AGENTS.md +35 -0
- package/FOR_AGENTS.md +5 -3
- package/README.md +5 -3
- package/atris/GETTING_STARTED.md +1 -1
- package/atris/atris.md +3 -0
- package/atris/policies/day-loop-voice.md +102 -0
- package/atris/policies/outbound-artifact-gate.md +2 -0
- package/atris/skills/design/SKILL.md +56 -32
- package/atris/skills/endgame/SKILL.md +12 -6
- package/atris/skills/engines/SKILL.md +35 -8
- package/atris/skills/fable-method/SKILL.md +66 -0
- package/atris/skills/improve/SKILL.md +65 -45
- package/atris/skills/render-cli/SKILL.md +88 -0
- package/atris/skills/youtube/SKILL.md +10 -1
- package/atris.md +6 -2
- package/ax +617 -31
- package/bin/atris.js +719 -266
- package/commands/activate.js +194 -88
- package/commands/aeo.js +52 -0
- package/commands/agents.js +166 -0
- package/commands/autoland.js +718 -72
- package/commands/autopilot-front.js +20 -2
- package/commands/autopilot.js +118 -2
- package/commands/avail.js +407 -0
- package/commands/bench.js +188 -0
- package/commands/brain.js +3 -0
- package/commands/brief.js +651 -0
- package/commands/business-sync.js +192 -6
- package/commands/business.js +91 -8
- package/commands/clean.js +50 -24
- package/commands/close.js +1083 -0
- package/commands/cloud.js +245 -0
- package/commands/codex-goal.js +26 -2
- package/commands/compile.js +292 -1
- package/commands/computer.js +150 -3
- package/commands/dream.js +365 -0
- package/commands/drill.js +371 -0
- package/commands/drive.js +187 -0
- package/commands/engine.js +1061 -29
- package/commands/experiments.js +28 -0
- package/commands/feed.js +202 -0
- package/commands/feedback.js +34 -12
- package/commands/fleet-report.js +206 -0
- package/commands/github.js +38 -0
- package/commands/gm.js +285 -3
- package/commands/goal.js +247 -0
- package/commands/improve.js +642 -26
- package/commands/init.js +83 -43
- package/commands/integrations.js +39 -11
- package/commands/interview.js +209 -0
- package/commands/land.js +253 -52
- package/commands/lesson.js +112 -1
- package/commands/lifecycle.js +39 -3
- package/commands/linear.js +38 -0
- package/commands/log.js +84 -1
- package/commands/loops.js +220 -16
- package/commands/meet.js +220 -0
- package/commands/member.js +899 -66
- package/commands/mission.js +3512 -332
- package/commands/next.js +137 -0
- package/commands/now.js +240 -21
- package/commands/one-lap.js +776 -0
- package/commands/orb.js +314 -0
- package/commands/pack-craft.js +179 -0
- package/commands/pack.js +823 -0
- package/commands/play.js +3 -2
- package/commands/probe.js +30 -3
- package/commands/pulse.js +241 -46
- package/commands/push.js +260 -82
- package/commands/radar.js +259 -14
- package/commands/rainmaker.js +49 -0
- package/commands/report.js +415 -0
- package/commands/scout.js +147 -0
- package/commands/search.js +363 -0
- package/commands/serve.js +54 -0
- package/commands/skill.js +47 -3
- package/commands/slop.js +50 -2
- package/commands/soul.js +1 -1
- package/commands/status.js +50 -5
- package/commands/stream.js +861 -0
- package/commands/stripe.js +38 -0
- package/commands/study.js +693 -0
- package/commands/supabase.js +39 -0
- package/commands/sync.js +67 -54
- package/commands/task.js +2275 -182
- package/commands/team.js +73 -0
- package/commands/truth.js +29 -3
- package/commands/unknowns.js +627 -0
- package/commands/update.js +44 -0
- package/commands/vercel.js +38 -0
- package/commands/verify.js +96 -0
- package/commands/watch.js +303 -0
- package/commands/wish.js +500 -0
- package/commands/workflow.js +11 -5
- package/commands/worktree.js +299 -20
- package/commands/write.js +399 -0
- package/commands/xp.js +29 -11
- package/lib/auto-accept-certified.js +391 -43
- package/lib/autoland.js +353 -52
- package/lib/ax-auto-lane.js +79 -0
- package/lib/bench/context.js +147 -0
- package/lib/bench/engines.js +141 -0
- package/lib/bench/report.js +140 -0
- package/lib/bench/runner.js +512 -0
- package/lib/brief-ledger.js +350 -0
- package/lib/cloud-mission.js +259 -0
- package/lib/codex-flight.js +154 -0
- package/lib/default-runner.js +45 -0
- package/lib/default-verifier.js +70 -0
- package/lib/engine-registry.js +232 -0
- package/lib/experiments/daily.js +640 -0
- package/lib/fleet.js +2431 -38
- package/lib/improve-vitals-html.js +171 -0
- package/lib/known-commands.js +58 -0
- package/lib/loop-doctor.js +416 -0
- package/lib/member-switches.js +144 -0
- package/lib/memory-view.js +14 -5
- package/lib/mission-room.js +1 -0
- package/lib/mission-root.js +52 -0
- package/lib/mission-runtime-loop.js +7 -0
- package/lib/next-moves.js +327 -10
- package/lib/official-cli-integration.js +174 -0
- package/lib/one-lap-validator.js +60 -0
- package/lib/orb-context.js +477 -0
- package/lib/orb-scorecard.js +224 -0
- package/lib/outbound-send-gate.js +165 -0
- package/lib/permission-grants.js +293 -0
- package/lib/policy-lessons.js +52 -1
- package/lib/pulse.js +277 -3
- package/lib/receipt-block.js +168 -0
- package/lib/receipt-evidence.js +65 -4
- package/lib/review-integrity.js +147 -0
- package/lib/router-brain.js +352 -0
- package/lib/runner-command.js +33 -0
- package/lib/self-drive.js +258 -0
- package/lib/short-name.js +103 -0
- package/lib/spawn-env.js +18 -0
- package/lib/state-detection.js +56 -1
- package/lib/sync-status.js +59 -0
- package/lib/task-db.js +319 -27
- package/lib/task-proof.js +43 -1
- package/lib/task-receipt.js +93 -0
- package/lib/team-presence.js +260 -0
- package/lib/tool-result-encode.js +7 -0
- package/lib/trust-tiers.js +90 -0
- package/lib/usage.js +107 -0
- package/lib/voice-gate.js +163 -0
- package/lib/wish-audit.js +1368 -0
- package/lib/wish-delegate.js +1840 -0
- package/lib/wish-design.js +110 -0
- package/lib/wish-stats.js +183 -0
- package/lib/wish-store.js +354 -0
- package/lib/zip.js +221 -0
- package/package.json +3 -1
- package/templates/loops/atris/loops/LOOPS.md +55 -0
- package/templates/loops/atris/loops/TICK.md +24 -0
- package/templates/loops/atris/loops/feedback.md +22 -0
- package/templates/loops/atris/loops/quality.md +22 -0
- package/templates/loops/atris/wiki/systems/loops.md +41 -0
- package/utils/api.js +5 -1
- package/utils/auth.js +57 -21
- package/utils/update-check.js +27 -6
- package/atris/learnings.jsonl +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: improve
|
|
3
|
-
description: "Run one
|
|
4
|
-
version: 1.
|
|
3
|
+
description: "Run one verified, scored improvement tick and write its receipt. Use when the user asks to improve, make this better, ship one thing, run a tick, or get smarter. `atris improve` alone shows metabolism vitals; use `atris improve tick` to ship work."
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
tags:
|
|
6
6
|
- rl
|
|
7
7
|
- improve
|
|
@@ -12,74 +12,94 @@ tags:
|
|
|
12
12
|
|
|
13
13
|
# /improve
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Run one improvement tick on the workspace. A successful tick ships one result, passes a real verifier, receives a score, and writes a machine-readable scorecard.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
One call means one verifiable result. Never turn one invocation into a hidden batch.
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Command contract
|
|
20
20
|
|
|
21
|
+
`atris improve` alone shows the self-improvement metabolism vitals. It does not ship a change.
|
|
22
|
+
|
|
23
|
+
Use the explicit `tick` subcommand when the user asks for improvement work:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
atris improve tick # one full tick: plan, build, verify, score
|
|
27
|
+
atris improve tick --json # the same tick as machine-readable output
|
|
28
|
+
atris improve tick plan # plan only; no change or receipt
|
|
29
|
+
atris improve tick --dry-run # execute without committing; no shipping receipt
|
|
30
|
+
atris improve tick --no-fallback # report API failure instead of running locally
|
|
31
|
+
atris improve history # reward trend, credits, and pass rate
|
|
32
|
+
atris improve # vitals only
|
|
33
|
+
atris improve --json # vitals only as JSON
|
|
21
34
|
```
|
|
22
|
-
/improve
|
|
23
|
-
→ POST /api/improve { workspace: ".", mode: "full" }
|
|
24
|
-
→ backend picks a task, plans, builds, reviews, verifies
|
|
25
|
-
→ returns { task, reward, files_changed, verify_pass, summary }
|
|
26
|
-
→ CLI writes scorecard to .atris/presidio/scorecards.md
|
|
27
|
-
→ CLI reports result to user
|
|
28
|
-
```
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
## Run one tick
|
|
37
|
+
|
|
38
|
+
1. Run `atris improve tick`, adding `--json` only when structured output is useful.
|
|
39
|
+
2. Inspect the returned source, task summary, verifier result, reward, files, and receipt path.
|
|
40
|
+
3. Count the tick only when `ok` is true, verification passed, and the scorecard was written.
|
|
41
|
+
4. Report what shipped and the exact verifier result. If the tick fails, report the failure and stop.
|
|
42
|
+
|
|
43
|
+
For a paid API tick, the CLI:
|
|
31
44
|
|
|
32
|
-
|
|
45
|
+
1. Loads credentials with `utils/auth.loadCredentials`.
|
|
46
|
+
2. Calls `POST /api/improve` with the workspace, mode, model, and dry-run setting.
|
|
47
|
+
3. Lets the backend plan, build, verify, score, and bill the successful tick.
|
|
48
|
+
4. Writes the normalized receipt to `.atris/state/scorecards.jsonl` and the human trail to the daily Atris journal.
|
|
33
49
|
|
|
34
|
-
|
|
50
|
+
The full response may omit the billed credit count. In that case the CLI reports that billing happened server-side instead of inventing a number.
|
|
51
|
+
|
|
52
|
+
## Local fallback
|
|
53
|
+
|
|
54
|
+
Local fallback is allowed when there is no login, the backend is unreachable, or the hosted backend cannot access the local workspace path. The CLI runs this exact bounded command internally:
|
|
35
55
|
|
|
36
56
|
```bash
|
|
37
|
-
atris
|
|
38
|
-
atris improve plan # show the plan only, change nothing
|
|
39
|
-
atris improve --json # machine-readable result (this is what the member loop consumes)
|
|
40
|
-
atris improve --no-fallback # fail loudly instead of running a local tick when the backend is down
|
|
57
|
+
atris mission run --due --headless --max-ticks 1 --complete-on-pass --json
|
|
41
58
|
```
|
|
42
59
|
|
|
43
|
-
|
|
60
|
+
The local result succeeds only when all of these are true:
|
|
44
61
|
|
|
45
|
-
1.
|
|
46
|
-
2.
|
|
47
|
-
3. The
|
|
48
|
-
4.
|
|
49
|
-
5. Falls back to a local autopilot tick **only** when you are not logged in or the backend is unreachable — a real error (insufficient credits, server error) is reported, never silently retried
|
|
62
|
+
1. Exactly one mission tick ran.
|
|
63
|
+
2. A headless worker actually ran; caller-session and no-worker placeholders are rejected.
|
|
64
|
+
3. The mission verifier passed.
|
|
65
|
+
4. The scorecard and journal receipt were written.
|
|
50
66
|
|
|
51
|
-
|
|
67
|
+
A verified local tick earns the conservative local reward of `+1` and deducts no credits. No due headless mission, a skipped worker, a failed or missing verifier, or a receipt write failure makes the improve command fail without a reward.
|
|
52
68
|
|
|
53
|
-
|
|
69
|
+
Do not silently fall back for answerable API failures such as insufficient credits, unrelated authorization failures, or server errors.
|
|
54
70
|
|
|
55
|
-
|
|
56
|
-
- `plan` — just pick the task and show what it would do
|
|
57
|
-
- `dry_run` — run everything but don't commit
|
|
71
|
+
## Expected output
|
|
58
72
|
|
|
59
|
-
|
|
73
|
+
User says: "Improve this once."
|
|
60
74
|
|
|
61
|
-
|
|
75
|
+
Action: run `atris improve tick`.
|
|
62
76
|
|
|
63
|
-
|
|
77
|
+
Expected shape:
|
|
64
78
|
|
|
65
|
-
```
|
|
79
|
+
```text
|
|
66
80
|
improved.
|
|
81
|
+
task: fixed the stale wiki reference
|
|
82
|
+
verify: pass
|
|
83
|
+
reward: 4
|
|
84
|
+
files: atris/wiki/auth-flow.md
|
|
85
|
+
scorecard: .atris/state/scorecards.jsonl
|
|
86
|
+
```
|
|
67
87
|
|
|
68
|
-
|
|
69
|
-
verify: pass (npm test, 143/143)
|
|
70
|
-
reward: +4
|
|
71
|
-
files: atris/wiki/briefs/auth-flow.md
|
|
72
|
-
time: 47s
|
|
88
|
+
For local fallback, the first line is `improved (local fallback).` and the report still names the task, passing verifier, reward, and scorecard.
|
|
73
89
|
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
## Failure handling
|
|
91
|
+
|
|
92
|
+
- If verification fails or is missing, halt honestly and write a durable lesson. Do not claim improvement.
|
|
93
|
+
- If the command reports no due headless mission, stop; do not manufacture busywork or a scorecard.
|
|
94
|
+
- If the API returns insufficient credits or another answerable error, report it without a local retry.
|
|
95
|
+
- If the workspace is dirty, preserve existing changes. Use an isolated worktree for manual follow-up fixes.
|
|
96
|
+
- If a worker lands work but the outer receipt fails, report the landed commit separately and do not count the improve tick.
|
|
76
97
|
|
|
77
98
|
## Rules
|
|
78
99
|
|
|
79
100
|
- One tick only. Never batch.
|
|
80
|
-
-
|
|
101
|
+
- No reward without a passing verifier.
|
|
81
102
|
- Show what shipped, not what was attempted.
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
- Fallback to local if backend is unreachable. Never error silently.
|
|
103
|
+
- A scorecard is required for success.
|
|
104
|
+
- Preserve user work and unrelated changes.
|
|
85
105
|
- The user pays because something real happened. Never fake it.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: render-cli
|
|
3
|
+
description: Use the Render.com CLI v2.x (`render`) to inspect Render services, check CLI auth, list services and deploys, trigger deploys when explicitly requested, and view logs. Use when an agent needs Render CLI commands, non-interactive flags, deploy status polling, or service auto-deploy checks.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags:
|
|
6
|
+
- render
|
|
7
|
+
- deploy
|
|
8
|
+
- cli
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Render CLI
|
|
12
|
+
|
|
13
|
+
Use the `render` binary to manage Render services, deploys, logs, and sessions from the terminal. Treat it like a production-control CLI: read first, parse JSON, and only create or mutate resources when the operator explicitly asked for that action.
|
|
14
|
+
|
|
15
|
+
## Agent defaults
|
|
16
|
+
|
|
17
|
+
Always add these flags for agent-safe commands:
|
|
18
|
+
|
|
19
|
+
- `--output json` for parseable output.
|
|
20
|
+
- `--confirm` to skip confirmation prompts.
|
|
21
|
+
|
|
22
|
+
The CLI defaults to interactive mode and can hang an agent if a command prompts. If a command is intended to run unattended, include both flags unless the CLI help says the mode is interactive-only.
|
|
23
|
+
|
|
24
|
+
## Auth
|
|
25
|
+
|
|
26
|
+
Check the active login before assuming access:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
render whoami --output json --confirm
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If the user is not logged in, ask them to complete:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
render login
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`render login` uses the dashboard/browser login flow, so do not run it in an unattended automation loop.
|
|
39
|
+
|
|
40
|
+
## Services
|
|
41
|
+
|
|
42
|
+
List services in the active workspace:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
render services --output json --confirm
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Use the returned service `id` as `<service-id>` in deploy and log commands. When a push to Git did not deploy, inspect the service JSON for `autoDeploy`; it may be disabled for that service.
|
|
49
|
+
|
|
50
|
+
## Deploys
|
|
51
|
+
|
|
52
|
+
Trigger a deploy only when the operator explicitly asks for a real deploy:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
render deploys create <service-id> --output json --confirm
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Watch deploy state by polling:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
render deploys list <service-id> --output json --confirm
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Common deploy statuses include `queued`, `build_in_progress`, `update_in_progress`, `live`, and `failed`. Treat `live` and `failed` as terminal states for ordinary deploy monitoring.
|
|
65
|
+
|
|
66
|
+
## Logs
|
|
67
|
+
|
|
68
|
+
Query recent logs for a service:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
render logs --resources <service-id> --limit 100 --output json --confirm
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
For a live tail, use:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
render logs --resources <service-id> --tail --confirm
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The CLI help says `--tail` streams only in interactive mode, so prefer bounded JSON log queries for automated agents and use live tail only when a long-running interactive stream is acceptable.
|
|
81
|
+
|
|
82
|
+
## Gotchas
|
|
83
|
+
|
|
84
|
+
- The CLI is interactive by default; `--confirm` prevents confirmation prompts from blocking the agent.
|
|
85
|
+
- `--output json` makes service, deploy, and log output machine-readable.
|
|
86
|
+
- In non-interactive log mode, `--resources <service-id>` is required.
|
|
87
|
+
- Git pushes do not guarantee deploys. Check `autoDeploy` in the service JSON before assuming push-to-git should deploy.
|
|
88
|
+
- Do not use placeholder IDs in real commands. Resolve a service ID from `render services --output json --confirm` first.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: youtube
|
|
3
3
|
description: "Process YouTube videos — extract insights, answer questions, store as knowledge. 5 credits per video. Triggers on: youtube, video, process video, watch this, learn from video."
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
tags:
|
|
6
6
|
- youtube
|
|
7
7
|
- research
|
|
@@ -13,6 +13,15 @@ tags:
|
|
|
13
13
|
|
|
14
14
|
Process any YouTube video through Atris transcript-first analysis. The CLI extracts local captions with timestamps when available, sends that transcript to Atris, and falls back to cloud video processing when captions are unavailable or unusable. 5 credits per video, refunded if processing fails.
|
|
15
15
|
|
|
16
|
+
## Route first: learning vs product
|
|
17
|
+
|
|
18
|
+
Two rails process YouTube videos — pick before running anything:
|
|
19
|
+
|
|
20
|
+
- **Learning / work rail** → use the `alpha-learn` skill (ytnotes). Local yt-dlp + grok, zero credits, podcastnotes-style notes, tweet-feed output, `[claimable]` entries in today's journal for other agents. Use this when the goal is to LEARN from a video or mine it for Atris work.
|
|
21
|
+
- **Product rail** → this skill (`atris youtube process`). Credits-billed, stores knowledge in the Atris backend, customer-facing path. Use this when a customer/agent needs the video stored as Atris knowledge or answered via the API.
|
|
22
|
+
|
|
23
|
+
If the user says "learn from", "notes on", "alpha", or "rabbit hole" → alpha-learn. If they say "process", "store", "add to knowledge" → this skill.
|
|
24
|
+
|
|
16
25
|
## Bootstrap (ALWAYS Run First)
|
|
17
26
|
|
|
18
27
|
```bash
|
package/atris.md
CHANGED
|
@@ -47,12 +47,14 @@ Before changing anything, state:
|
|
|
47
47
|
- what happens if it fails
|
|
48
48
|
|
|
49
49
|
Then:
|
|
50
|
+
- when you begin work in a repo that has no `atris/` folder, run `npx -y atris init` before anything else, then read `atris/atris.md`
|
|
50
51
|
- do not execute if another agent owns the same task or files
|
|
51
52
|
- do not call something complete without verification
|
|
52
53
|
- land or reap: work is not done until it is merged to the base branch or reaped; if you make a branch or worktree, you merge it or delete it before you stop. Run `atris land` to see limbo; anything past 7 days gets salvaged to `.atris/salvage/` and deleted by `atris land --reap`.
|
|
53
54
|
- do not take irreversible actions without approval from the human
|
|
54
55
|
- do not hide state outside markdown, logs, diffs, or the journal
|
|
55
56
|
- do not edit the rules that judge you: the reward config, the authority policy, or this file
|
|
57
|
+
- do not judge your own work: certification and acceptance require a review pass from an actor other than the builder; the tick's independent re-run counts, you do not (guarded)
|
|
56
58
|
|
|
57
59
|
If you cannot honor these rules, stop, write why in the journal, and ask the human before continuing.
|
|
58
60
|
|
|
@@ -88,12 +90,14 @@ The same discipline for words. Output stays sharp no matter how bloated the cont
|
|
|
88
90
|
- "Missions survive everything: one engine starts the work, another picks it up cold, a third lands it. Work is no longer tied to a chat window, a session, or a vendor."
|
|
89
91
|
- "The system reports in plain English: one daily message with what landed, what waits on you, and who should own what's next. One person can supervise many projects."
|
|
90
92
|
- **Fit the screen.** An operator-facing report shows three results, air between them, and holds the rest on ask. No scrolling: reading it is one glance, and the reader asks for more if they want more.
|
|
93
|
+
- **Human surfaces are gated.** Anything rendered for the operator (brief, digest, boot) goes through the operator-voice translator and a deterministic jargon gate; raw ids, commands, paths, and test tallies never reach a page. A gate violation is a build error, not a style note.
|
|
94
|
+
- **Interview the fuzz.** When the operator hands off a fuzzy build ("make me the best X", "yeah ok this is my thought, go make it"), do not ask open questions and do not dispatch as-is. Offer 2-3 named interpretations with a recommendation ("best could mean capture, resurfacing, or closure: I'd bet resurfacing, right?") so the operator confirms or corrects in five words. Repeat until the brief fits one screen (goal, why now, done-looks-like, open risks), show the brief, then dispatch. The interview lends the operator a structure to think in; the sharpened brief is what makes every downstream lap cheap.
|
|
91
95
|
|
|
92
96
|
`expected`: this is how an Atris agent writes and builds. Shipping slop or rambling is a failure smell, same as drift or a stale task.
|
|
93
97
|
|
|
94
98
|
## the ladder
|
|
95
99
|
|
|
96
|
-
Six primitives, one sentence each
|
|
100
|
+
Six primitives, one sentence each:
|
|
97
101
|
|
|
98
102
|
- **The Mission** (MISSION.md): the enduring purpose. Never ends. Sits at the top and helps members pick goals.
|
|
99
103
|
- **Goals** (endgame, member goals): direction derived from the Mission. A goal points; it does not commit.
|
|
@@ -106,7 +110,7 @@ In one line: the Mission anchors, goals point, a mission run commits, tasks prov
|
|
|
106
110
|
|
|
107
111
|
Never conflate the two things called "mission": the Mission is permanent purpose; a mission run is a bounded commitment. An agent that mistakes a run for the Mission never stops working on it; one that mistakes the Mission for a run tries to complete it.
|
|
108
112
|
|
|
109
|
-
Drift smells: a member goal tracing to no Mission is freelancing; a goal that never becomes a mission run is a wish; a run with no goal above it is busywork; a loop deciding what "done" means owns the wrong axis.
|
|
113
|
+
Drift smells: a member goal tracing to no Mission is freelancing; a goal that never becomes a mission run is a wish; a run with no goal above it is busywork; a loop deciding what "done" means owns the wrong axis. A loop may run without a member, never without a witness: every loop names an owner, and its failure escalates to something with judgment.
|
|
110
114
|
|
|
111
115
|
## task source of truth
|
|
112
116
|
|