manual: bring internal/manual in line with dev 837b2b0
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Dokumentation
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- go
- Bereich
- cli, documentation
Rechercherichtung
Start with the named files under internal/manual/chat/ and internal/manual/pages/, then build dev 837b2b0 with make build and run it using an isolated HOME as described in Replication. Compare the manual sections with the cited Go entry points and observed output, including commands.go and the listed session and tui3 files. Done means all documented discrepancies are corrected or explicitly resolved, while product defects remain in the companion issue.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
While writing the public docs against dev 837b2b0, five lanes ran every manual page they covered and found 20 places where internal/manual/ says one thing and dev does another.
Each row below is a text fix unless the team decides dev should change instead. Product bugs found in the same runs are not repeated here.
Paths are under internal/manual/chat/ unless the row names another folder. Line numbers are from dev 837b2b0. In quoted manual and screen text, a long dash is written as a comma.
standing-orders.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| standing-orders.md:33-34 and :292 (the ratification card) | "1 sets it up, 2 changes when it wakes, 0 or esc says no" |
There is no 2. The keys are 1 yes, 3 once (routines and watches only), 0 no. o Change... opens the box to say a different time, place or words. esc means "later", not no. keeping-an-eye.md already says o |
Said a standing sentence in a chat; the card foot read esc later · o Change… · ? clarify. Code: internal/session/answers.go:489-531, internal/tui3/questionkeys.go:495-502, internal/tui3/question.go:1894-1904 |
| standing-orders.md:466-476 (opening a conversation under orders) | opening a conversation with orders over it prints · N standing orders here, /standing |
With two project rules standing, a new conversation started from home printed · new conversation · repo and no count line |
Started a new conversation in the same project from home and read the transcript head |
| standing-orders.md:26-37 ("you just say it") | say "always run the tests..." in plain words and a card comes | Said plainly, "Always write Go doc comments in full sentences in this repo." was stored as a memory note (Recorded for this repo..., then · remembered ·) with no card. Only /standing <words> produced the card. The page should say when a plain sentence becomes a memory instead |
Two turns in one chat: plain sentence, then the same words after /standing |
keeping-an-eye.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| keeping-an-eye.md:489-493 (grants) | a grant such as "open a pull request but never merge it" "is written down and shown on the card" | The grant is stored as grant on the standing item, but the card draws no grant line. It shows only as the rope word (earning trust 0/5) on /standing |
Made a routine with a grant, read the card and the stored item; no code in internal/tui3 renders the grant field |
pages/standing-goals.md (resident corpus, internal/manual/pages/)
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| internal/manual/pages/standing-goals.md (charter card and tenure) | the charter card is 1 yes / 2 change when / 3 once; probation, then tenure after 3 clean firings |
The chat uses 1 / 3 / 0 plus o, and the rope is asks first / earning trust n/5 / trusted alone after 5 clean firings in a row. The page describes an older program and disagrees with standing-orders.md:582-609 |
Read /standing after firings; compared with standing-orders.md |
running-from-the-terminal.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| running-from-the-terminal.md:754 and :1011 (Model Pool) | "codeaf picks its models against the public Model Pool"; when capped at read "it still picks models from the index" | The pool index seats no crew. The crew is routed from crewroute's own prior plus this install's outcomes; the index is used only for model-name aliases | cmd/codeaf/poolindex.go:10-13; internal/crewroute/prior.go:58; internal/crewroute/canonical.go:38, :119-126 |
| running-from-the-terminal.md:783-784, :792 (own sheet) | the own sheet: "the crew reads them beside the index" and it is "read when the next crew is chosen" | Nothing but codeaf pool reads own.json |
cmd/codeaf/pool.go:513 (a stale comment says otherwise at cmd/codeaf/poolrecord.go:5) |
running-from-the-terminal.md:815 (codeaf pool verify) |
signature good: version 7, generated 2026-09-10, 3 metrics |
Prints the metric names, not a count: signature good: version 1790468332, generated 2026-09-27, metrics acceptable, role_quality |
Ran codeaf pool verify; cmd/codeaf/pool.go:795-800 |
running-from-the-terminal.md:783-788 (codeaf pool status) |
status adds the outbox count, can send/read, relay/mirror and last judge | Also prints pending judge: and last sweep: lines and dropped N / identity set segments. It shows a count of waiting rows, never the rows |
Ran codeaf pool status; cmd/codeaf/pool.go:241-306 |
running-on-another-machine.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| running-on-another-machine.md:116 (codeaf missing over there) | codeaf is not installed on <dest>, install it there, or put it on the PATH that a non-login ssh command sees |
the program is called codeaf now (it was aforge before 2026-09-14) and must be installed on <dest> under that name, put it on the PATH that a non-login ssh command sees |
cmd/codeaf/chatv3_host.go:346 (found by two lanes) |
| running-on-another-machine.md:103 (rehearse a drop) | pkill -f "ssh -T localhost codeaf engine" |
The real ssh argv has options between -T and the host (ssh -T -o ServerAliveInterval=3 -o ServerAliveCountMax=3 -o IPQoS=lowdelay -o ControlMaster=auto -o ControlPath=... -o ControlPersist=300 localhost codeaf engine --workspace '<path>'), so the pattern matches nothing and the drop is never rehearsed |
Logged the argv with an ssh shim during codeaf --host localhost; cmd/codeaf/chatv3_host.go:220-242 |
tasks.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| tasks.md:557-563 (proposal card) | ? wants to start a task: ..., ▸ 1 start it / 2 no, foot enter take it · esc later · c change · start it in 9s |
Head right side codeaf asks · start it in 15s; 1 start it carries recommended and it starts on its own unless you say otherwise · fairly sure; a line any key stops the clock · you can still change the answer afterwards; foot esc later · o other · ? clarify. The default clock is 15 s (task.autoapprove_seconds) |
Asked a chat for a senior-dev task and read the card; internal/config/settings.go:1389 (DefaultTaskAutoApprove = 15) |
| tasks.md:340-355 and :4205-4235 (bounds on nesting) | "Depth is 3 levels", "Fan-out is 20 pieces per parent", for every task | On the shipped default road (/task starts a run, worker-harness.md:3-6) neither bound applies. Run workers are on the bash belt, where propose_task and quick_task are withheld, and they split with plandb split. The caps there are 256 tasks per split batch, 1024 tasks per run and 4 wakes per composite task. The 20/3 bounds hold only on the older engine's tree; the page should say which engine it describes |
internal/session/beltfacts.go:112; internal/session/task_run.go:202-203, :1427-1450 (older engine); internal/plandb/store.go:208-224; internal/run/run.go:56-62 |
delegates.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| delegates.md:26-28 (the program badge) | a program's badge [<name>] is on "the side list, the card, the task's page ..." |
The landed card head has no badge: ◆ rename LoadConfig to LoadSettings everywhere; done means go · done · 30s · 2 files · branch kept · task/.... Only the proposal block wears it |
Ran a /senior-dev task to the end and read the landed card; internal/tui3/taskdone.go:450-468 |
team-questions-and-caps.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| team-questions-and-caps.md:74 (held Traffic row) | held @web: harbor reached its $5 cap today |
The row carries the whole reason: held @web: harbor reached its $5 cap today (spent $5.02); the person has been asked whether to raise it, and nothing new starts until they answer. After Stop it ends ... and the person chose to stop it for today |
internal/session/team_wakewatch.go:630; internal/session/team_cap.go:155-160 |
team-manager.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| team-manager.md:149-152, :219-231 (verbs table "Asks you first: yes"), :266-269 | team_start always asks first on a card ◆ manager wants to start @lexer with the brief and the clause a new conversation; it spends until it stops; a sub-team start is "asked first, on the same card" |
Under the interactive default approvals (◇ YOLO, permissions.md:562, :594-598) team_start runs with no card: · ◆ started @notes · its tab is on the strip. The card appears only after the manager's conversation is switched to ◇ asks (alt+a), and then reads ◆ manager wants to start @platform / @platform: a new team "platform" under yours, managed by it. Start… · default / 1 allow once 2 always, this tool (session) 3 deny / esc later · o other · ? clarify. The page should say the card needs ◇ asks |
Asked a manager to start a team under both postures (found by two lanes); internal/session/consent.go:630-650, internal/session/tools_team.go:683-703 |
| team-manager.md:39-42 (making a manager from the team switcher) | "◆ Make this harbor's manager in the team switcher (the ● harbor ▾ chip) makes the conversation in front the manager" |
Only while a team is shown. With All shown the chip reads teams ▾ and its menu has no manager row (and no Remove row); you first choose the team, then reopen the chip. The menu stays open after the choice, its row flipped to ◇ Make an ordinary member |
Opened the chip with All shown, then with one team shown |
getting-started.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| getting-started.md:42-43 (setup header) | "The header reads codeaf on the left and setup · 2 of 2 on the right" |
The count is drawn under the wordmark and reads setting up · 1 of 2 (setting up alone with one step) |
First run on an empty profile with no provider key in the environment; internal/tui3/firstrun.go:903-908 |
| getting-started.md:13-24 (first run) | the first run on an empty profile opens on the two setup screens | With any provider key already in the environment (OPENROUTER_API_KEY or DEEPSEEK_API_KEY), an empty profile opens straight on home, with no setup screen and no Models and spending. A first message with only a stale direct key answered error: your key was not accepted for this model, and still no setup |
internal/tui3/firstrun.go:181-205 (setup shows only when the default provider is missing, or on an empty new conversation) |
commands.md
| manual file:section | manual says | dev does | evidence |
|---|---|---|---|
| commands.md (command table) | no rows for /drafts, /stop, /autonomy (bare and <kind> <rule>), /workspace <path>, /effort (also /think, /thinking); /senior-dev only as the generic /<program> row (:181) |
All are registered and listed in the / list and /help; /senior-dev shows by name there |
internal/tui3/commands.go:86-89, :93, :293-295; /senior-dev is generated at launch in internal/tui3/delegate.go |
Not in this issue
Where dev fails to do what the manual promises because of a defect (day limit in the chat, standing orders in worker briefs, standing rows in the side column, a run's check rows, sub-team approvals, handles for new managers, bare /task), the fix is in code, so those are in the companion bug issue.
Replication
Build dev 837b2b0 (make build). Run it with an isolated HOME (a fresh empty folder as HOME, so no existing .codeaf profile is read) and the default model (~deepseek/deepseek-v4-flash-latest, crew on auto). For the first-run rows, start once with no provider key in the environment and once with one. Rows that cite only code can be checked with git show 837b2b0:<path>.
🤖 Generated with Claude Code
Drafted with CodeAF · reviewed and owned by the author
- Vorherrschende Sprache
- Go
- Sterne
- 115
- Forks
- 14
- Ø Merge
- 9 Std. 37 Min.
- Gemergte PRs (30 T.)
- 755
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Agent-Field/CodeAF
-
area:chat bug sev:papercut
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Agent-Field/CodeAF#1592 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:headless bug sev:critical
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Agent-Field/CodeAF#1566 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:chat feature
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Agent-Field/CodeAF#1510 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:tests bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Agent-Field/CodeAF#1489 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:chat bug good first issue sev:papercut
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Agent-Field/CodeAF#1470 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Agent-Field/CodeAF
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
rossoctl/context-guru#346 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
prime-radiant-inc/evener#2883 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
gravitational/teleport#69805 ·
Maintainer antworten meist innerhalb von 11 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Under Poisson sampling, the `PLDAccountant` composes the inner event both before and after samplingOffen
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 78/100
google/differential-privacy#496 ·