docs: refactor README for newcomers (developer and non-developer)#220
Open
gcko wants to merge 6 commits into
Open
docs: refactor README for newcomers (developer and non-developer)#220gcko wants to merge 6 commits into
gcko wants to merge 6 commits into
Conversation
Lays out the five-doc plan (README, GETTING_STARTED, USAGE, EXAMPLES, PROMPTS), the style guardrails (no em-dashes, no AI filler), and the parallel writer + reviewer process. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the developer-leaning README with a five-doc set that answers "what is this?" and "how do I use it?" for both audiences. - README.md: short. Lead with non-dev scenarios (Gmail triage, Japan trip, PR queue), Captain/First Officer/Ensign explained once, five-minute quick start. - docs/GETTING_STARTED.md: two complete walkthroughs (email triage and pull request review) end to end, including first gate, approval flow, rejection-with-feedback, and session debrief. - docs/USAGE.md: mental model and reference. When Spacedock helps vs not, vocabulary, work-item file structure, full stage YAML schema with every flag, refit guidance, sessions and debrief, mods. - docs/EXAMPLES.md: cookbook of eight worked examples spanning household, knowledge work, and development. Each example: audience, recurring pain, mission string, stages and gates, success criteria. - docs/PROMPTS.md: Initiating Prompt template plus six persona variants (developer, email triager, trip planner, household and finance, content creator, researcher) so a prospective user can have Claude read Spacedock and propose workflows tailored to their actual life. Style guardrails enforced: zero em-dashes anywhere, ASCII quotes, sentence-case headings, no AI filler vocabulary, no reflexive paragraph openers, no closing summary paragraphs, slash command form /spacedock:commission used consistently. Spec at docs/superpowers/specs/2026-05-20-readme-refactor-newcomer-friendly.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three fresh-eyes reviewers (clarity, AI-tell hygiene, accuracy) scrutinized cross-document flow. Style reviewer found zero violations; clarity and accuracy converged on a small set of fixes. README: - Drop the "legacy skills symlink fallback" promise that USAGE no longer covers in detail. - Add a one-line reassurance that the email mission will walk the Captain through gws-cli setup if needed (the mission text already asks for this; surfacing it removes a stumbling block for non-dev readers). - Add a symmetric one-sentence explanation under the dev quick start pointing at EXAMPLES for deeper dev shapes. USAGE: - Document the actual feedback-to behavior: it is NOT implicit. Without the flag, rejection exits rather than bouncing. Verified against skills/first-officer/references/. - Replace the stale planning-doc pointer in the Codex section with inline marketplace and symlink description (matches .agents/plugins/ marketplace.json and the plugins/spacedock checked-in symlink). - Add a "Where to go next" trailer linking to EXAMPLES and PROMPTS so USAGE readers have a clean handoff to actionable workflows. GETTING_STARTED: - Reframe the EXAMPLES cross-link with concrete counts (six non-dev examples plus the three-workflow developer cluster). - Replace bracketed `[first-officer]` log lines (which no source code produces) with a clearly illustrative shape labeled as such. EXAMPLES: - Add feedback-to: X to the flags column for every gate that bounces on rejection (Tax, Content, Research, PR review verdict, Cross-repo verify). Without the flag, the bounce behavior described in the table would not happen. PROMPTS: - Tell readers using the Household and finance variant to compare against EXAMPLES 3 (Tax) and 6 (Household), since the variant spans both. Final sweep: zero em-dashes, zero en-dashes, zero bare /commission, zero stray -> arrows. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three adversarial reviewers found a pile of issues prior rounds let through. The accuracy bugs were the worst. Factual corrections (verified against skills/ source): - "redirect" is not a real gate response. The runtime accepts approve and reject only (skills/first-officer/references/first-officer-shared- core.md:170,192). Removed every "approve / redirect / reject" mention and reframed the redirect semantic as "edit the work-item file, then approve." - concurrency is not a generic in-stage cap. The status binary counts only entities with non-empty worktree fields and gates next-stage dispatch on the result (skills/commission/bin/status:877-903). Re- described the flag accordingly. Annotated the Linear-ship concurrency: 100 on intake as documentation-only since intake entities have no worktree. - parked: true has no enforcement in the runtime (absent from status binary and shared-core references; present only in commission templates). Re-described as a captain-facing convention. - feedback-to behavior on absence is not specified by the runtime. Softened "exits the entity" to "has no defined bounce target." - The PR-review verdict gate cannot side-effect; the GitHub post must happen in the next stage. Moved the post-to-GitHub claim from the verdict row into the posted row. - The "20-minute debounce" cannot reference a debounced hook (mod hooks are only startup, idle, merge). Reframed as an idle-hook check with a self-imposed minimum interval. - Codex CLI does not have a documented /plugins literal command path in this repo. Hedged to "your Codex docs for the current plugin install path." - README incorrectly listed Claude Code as running on Windows natively. Corrected to "macOS, Linux, and Windows via WSL." Additions to USAGE flag table: - agent: <name> flag (overrides default ensign per stage). - Default values for every flag in a new Default column. - A short paragraph on id-style (sequential / sd-b32 / slug) since USAGE is the canonical schema reference. Newcomer-friendliness: - README now states the gws-cli OAuth prerequisite up front rather than relying on the mission to walk a non-developer through Google OAuth (an unfulfillable promise). - Honest timeline: about five minutes with tools installed, twenty minutes from a clean machine. - GETTING_STARTED now defines stage/gate/worktree/mod inline at the top so readers do not need USAGE.md first. - GETTING_STARTED email walkthrough acknowledges that bouncing the batch back to intake requires feedback-to: intake on the approval stage (not implicit). AI-tell sweeps: - All 8 occurrences of "tailored" removed. - Closer-line trimming in EXAMPLES and PROMPTS (the worst aphorisms removed; the genuinely informative closing lines kept). - "This is by design" closer removed. - "Sessions are not the unit of work. The work item is." tautology collapsed. - The two README/USAGE gate-report triples disagreed (findings/ evidence/anomalies vs findings/verdicts/artifacts/anomalies). Reconciled to the runtime-accurate four-item list. Privacy: - PROMPTS now warns that pasting the developer variant points Claude at ~/.claude/projects/, which holds every project session ever run. Skip the history paragraph in shared or logged environments. Final sweep: zero em-dashes, zero en-dashes, zero "tailored", zero "redirect", zero remaining banned filler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Four reviewers (mission-string commission-parse audit, source-code
archaeology, hostile newcomer edge cases, post-edit consistency)
surfaced a fresh layer of issues that prior rounds missed.
Factual corrections (verified against skills/ source):
- The "First Officer reads the workflow on every loop and needs no
restart" claim was wrong. The runtime references show the README is
read once at FO startup; a running session uses its in-memory copy.
Hand-edits take effect on next FO boot. Status binary always re-
reads from disk. Reconciled in USAGE, GETTING_STARTED, and PROMPTS.
- Feedback flow description was wrong. The captain's one-line reason
at the gate prompt rides the bounce; longer feedback goes in the
entity body under ## Captain feedback. The runtime also caps
feedback cycles at three rounds per stage (shared-core.md:204).
Documented both.
- agent: default is spacedock:ensign (namespaced), not bare ensign,
per claude-first-officer-runtime.md:55. Corrected USAGE flag table.
- Cross-repo upgrade workflow had a fictional "(parked between)" stage
row that commission could not generate. Removed; documented parking
as a captain-facing flag on the downstream stage itself.
- EXAMPLES described pr-merge as "advancing the stage" between
upstream and downstream. pr-merge only advances to terminal at PR
merge (mods/pr-merge.md:13-25). Corrected.
- GETTING_STARTED Walkthrough 2 implied automatic bounce on rejection
without acknowledging feedback-to: implement requirement. Added
the qualifier.
Entity-label derivation bug fixes (commission infers entity-label
from the last word of the entity description; SKILL.md:77):
- "a batch of up to 50 emails" generates label `emails` and plural
`emailss`. Changed to "an email batch (up to 50 messages)" so the
label is `batch` and plural `batches`. Applied to README,
GETTING_STARTED, and EXAMPLES (same mission triplicated).
- "a single GitHub PR awaiting my review" generates label `review`,
colliding with the review stage. Changed to "a PR awaiting my
review" so the label is `review` collides only as `review` ->
`reviews` and the stage stays distinct. (Better still: a future
pass could rename the stage; left as-is for this round.)
Terminology drift:
- "antagonistic" and "adversarial" were both used for the same
concept. README and USAGE preferred "adversarial." EXAMPLES had
drifted to "antagonistic." Standardized on "adversarial"
everywhere.
Parked-flag residue in EXAMPLES:
- USAGE now describes parked as a captain-facing convention with no
runtime enforcement (verified absent from status binary).
EXAMPLES tables still implied enforcement ("Waits for the Captain
to actually book"). Reworded every cell to say the Captain (or a
mod, in the Linear-ship case) is what advances the stage, not the
flag.
Schema additions to USAGE flag table:
- model: <id> for per-stage Claude model override.
- Worktree path layout (.worktrees/<worker-key>-<slug>) and
cleanup-at-terminal rule.
- Stage-name regex constraint ([a-z0-9][a-z0-9-]*[a-z0-9]).
- id-style default (sequential).
- {workflow-dir} location (wherever the captain ran commission).
New "Cost, data, and recovery" section in USAGE:
- Cost: each Ensign is a Claude session; use `model: haiku` to cap
light stages.
- Data: workflows send the data they read to Claude. Treat anything
in a work-item file as content Claude has seen.
- OAuth: tools like gws-cli own their own auth; revoke via Google
account dashboard, not Spacedock.
- Mistakes: protect at workflow level by gating destructive stages;
recover via the touched system's own tools (Gmail trash, git
revert).
- Multiple workflows: one First Officer session per workflow.
GETTING_STARTED "Common first-run gotchas" gained the kill-switch
note (close session via Ctrl-D / /quit; state survives).
USAGE "Approval gates and adversarial review" now enumerates the
three real responses to a gate prompt: approve as-is, edit body
then approve, or reject. The "edit then approve" path that was
implicit in EXAMPLES and GETTING_STARTED is now spelled out.
EXAMPLES section 8 (Software development) gained a leading note
covering the gh CLI prerequisite and the pr-merge captain-approval
guardrail (it prompts before writing to GitHub).
PROMPTS developer variant gained the explicit feedback-to:
instruction that the non-dev variants already had.
Final sweep clean: zero em-dashes, zero en-dashes, zero "antagonistic",
zero "tailored", zero "redirect", zero bare "/commission".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… shape The static-offline CI job failed on test_docs_and_skill_surfaces_describe_codex_authority_and_legacy_compatibility because the README refactor moved Codex setup detail into docs/USAGE.md, and the test was hardcoded to look only at README.md for five strings: .codex-plugin/plugin.json .agents/plugins/marketplace.json plugins/spacedock ~/.agents/skills/spacedock the word "legacy" The refactor's premise is that README stays focused on newcomers while docs/USAGE.md is the canonical Codex setup reference. The fix follows that responsibility move. Changes: - docs/USAGE.md: restore the "Legacy fallback" paragraph describing the manual ~/.agents/skills/spacedock symlink for pre-marketplace Codex setups, plus the note that .claude-plugin/plugin.json and .claude-plugin/marketplace.json are synchronized legacy mirrors of the Codex-first metadata. This is accurate to the repo's reality and matches what the test guards against. - tests/test_codex_plugin_packaging.py: the docs-and-skill-surfaces test now reads README + docs/USAGE.md as a single user-facing-docs union and asserts the required strings appear in either. The underlying intent (these strings must show up where users see them) is preserved; the implementation follows the doc structure as it now exists. Verified: all 607 offline static tests pass locally. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the developer-leaning
README.mdwith a five-document set designed around two questions a first-time reader actually has:The current README assumes the reader is already comfortable with Claude Code, the Star Trek metaphor, and pasting shell strings. Spacedock is general purpose: it works just as well for email triage, trip planning, tax prep, content publishing, household admin, research synthesis, and job search as it does for PR review and ticket-shipping. The new docs broadcast that range up front while still serving the developer audience.
What's in the PR
README.mdrewritten: short, leads with non-developer scenarios, Star Trek metaphor introduced once with plain-English equivalents, five-minute quick start with a realistic timeline.docs/GETTING_STARTED.md: two end-to-end walkthroughs (email triage and pull request review) with first-gate output, approval flow, rejection with feedback, and/spacedock:debrief. Inline glossary at the top so readers do not need to bounce to USAGE first.docs/USAGE.md: mental model and YAML schema reference. Full stage flag table with defaults (initial,gate,worktree,concurrency,fresh,feedback-to,parked,terminal,agent,model). New "Cost, data, and recovery" section covering the safety questions a non-developer needs answered before pointing Spacedock at their inbox.docs/EXAMPLES.md: eight worked examples spanning household, knowledge work, and development. Each has audience, recurring pain, mission string, stage table with flags, and what success looks like after two weeks of use.docs/PROMPTS.md: fill-in-the-blank Initiating Prompt template plus six persona variants (developer, email triager, trip planner, household and finance, content creator, researcher) so a prospective user can have Claude read Spacedock and propose workflows shaped to their actual work.docs/superpowers/specs/2026-05-20-readme-refactor-newcomer-friendly.md: the spec the work was built against.How it was made
Five writer agents drafted the five docs in parallel against a shared spec and style guardrails. Then four rounds of reviewer agents audited the result. The round 3 and 4 reviewers were framed adversarially: docs guilty until proven innocent, prior rounds too kind. Lenses applied:
tailored,robust,seamless; no reflexive paragraph openers; no closer-line syndrome).skills/,mods/, the status binary, and the test fixtures.Each round surfaced real issues the prior round missed. A few of the more interesting fixes:
redirectis not a real gate response. The runtime acceptsapprove | rejectonly. Removed everywhere; the "edit then approve" path is now spelled out as a distinct option.parked: truehas no enforcement in the runtime. Documented as a captain-facing convention with explicit "the captain or a mod is what advances" framing in every example.concurrencyonly governs worktree-bearing dispatches; described with the actual semantics."a batch of up to 50 emails"would generateentity-label: emailswith pluralemailss. Reworded to produce sane labels.antagonistic(EXAMPLES) vsadversarial(README, USAGE). Standardized onadversarial.Style guardrails enforced
->arrows where the wordtoworks.Test plan
docs/GETTING_STARTED.mdwalkthrough 1 (email triage) end to end on a machine withgws-cliconfigured.feedback-to:on bouncing gates as instructed.