Skip to content

Commit eb11c6e

Browse files
authored
Merge pull request #62 from nj-io/docs-maintenance/maintenance-2026-03-25
chore(docs-maintenance): maintenance run 2026-03-25
2 parents 6688d91 + 4c25bc2 commit eb11c6e

31 files changed

Lines changed: 1891 additions & 2767 deletions

.claude/agents/maintenance-loop.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,16 @@ approval_required: # Work that needs PR comment approval firs
3939
4040
### Step 1: Setup
4141
42+
Always start from the latest target branch:
43+
4244
```bash
43-
git checkout <branch> && git pull origin <branch>
45+
git fetch origin <branch>
46+
git checkout <branch>
47+
git pull origin <branch>
4448
```
4549

50+
All maintenance branches are created from the target branch (step 8), never from a worktree's working branch.
51+
4652
Run any `setup` commands from config. Then detect environment:
4753

4854
```bash
@@ -90,7 +96,7 @@ For each change in the diff:
9096
- If it falls under `autonomous` rules — do it
9197
- If it needs new content — check if previously approved (from step 4 or state file)
9298
- If approved — do it
93-
- If not — add to "Waiting for review" in the PR
99+
- If not — add to "Backlog" in the PR
94100

95101
### Step 6: Run checks
96102

@@ -134,7 +140,7 @@ Create manually: gh pr create --base <branch> --head <loop_name>/maintenance-<da
134140
## Summary
135141
- <bullet per change made>
136142

137-
## Waiting for review
143+
## Backlog
138144
- [ ] <item> — <what it is and why it needs approval>
139145

140146
## State

mkdocs.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,14 @@ nav:
6767
- CLI Reference:
6868
- Overview: cli/index.md
6969
- Commands: cli/root-commands.md
70+
- account: cli/account.md
7071
- arc: cli/arc.md
7172
- bot: cli/bot.md
73+
- brief: cli/brief.md
7274
- config: cli/config.md
75+
- content: cli/content.md
76+
- credentials: cli/credentials.md
77+
- cycles: cli/cycles.md
7378
- decision: cli/decision.md
7479
- draft: cli/draft.md
7580
- inspect: cli/inspect.md
@@ -79,6 +84,10 @@ nav:
7984
- memory: cli/memory.md
8085
- project: cli/project.md
8186
- snapshot: cli/snapshot.md
87+
- strategy: cli/strategy.md
88+
- logs: cli/logs.md
89+
- target: cli/target.md
90+
- topics: cli/topics.md
8291
- Concepts:
8392
- Overview: concepts/index.md
8493
- How the Pipeline Works: concepts/pipeline.md

site-docs/DOC_STATUS.md

Lines changed: 61 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<!-- last_run_commit: 21c6a1ffe50cdf762497b4b5c0b0879ddc1fdc56 -->
2-
<!-- last_run_date: 2026-03-24 -->
1+
<!-- last_run_commit: 6688d91b2ee4da630f9dec8dae1d776ae89b5a4c -->
2+
<!-- last_run_date: 2026-03-30 -->
33

44
# Documentation Status
55

@@ -9,72 +9,105 @@ Tracks coverage of external docs against the codebase. Used by the docs maintena
99

1010
| Command | Coverage | Notes |
1111
|---------|----------|-------|
12-
| `quickstart` | poor | "Run the quickstart flow" — says nothing about what it does |
13-
| `consolidation-tick` | poor | No context on when/why to run |
14-
| `scheduler-tick` | poor | No context on when/why to run |
15-
| `discover` | poor | "Two-pass project discovery" is jargon |
16-
| `setup` | partial | `--only` component values unexplained |
17-
| `test` | poor | No explanation of `--compare`/`--output` workflow |
18-
| `trigger` | poor | Doesn't explain how it differs from `test` |
12+
| `quickstart` | ok | Enriched: explains full onboarding flow |
13+
| `consolidation-tick` | ok | Enriched: explains hold processing, modes, cron usage |
14+
| `scheduler-tick` | ok | Enriched: explains posting, deferred promotion, cron |
15+
| `discover` | ok | Enriched: explains two-pass LLM analysis |
16+
| `setup` | partial | `--only` component values still unexplained |
17+
| `test` | ok | Enriched: explains dry-run, --output/--compare |
18+
| `trigger` | ok | Enriched: explains full pipeline, contrasts with test |
1919
| `init` | ok | |
2020
| `events` | ok | Has examples |
2121
| `help` | ok | Has examples |
2222
| `rate-limits` | ok | Has examples |
2323
| `version` | ok | |
24-
| `web` | poor | "Start the web dashboard" — no detail on what it offers |
25-
| `draft approve` | poor | Just restates the command name |
26-
| `draft cancel` | poor | Just restates the command name |
27-
| `draft retry` | poor | Just restates the command name |
28-
| `draft quick-approve` | poor | No explanation of what "optimal time" means |
29-
| `draft schedule` | partial | Doesn't explain auto-scheduling behavior |
30-
| `draft edit` | ok | Has example |
24+
| `web` | ok | Enriched: explains dashboard capabilities |
25+
| `account *` | ok | Group help enriched; subcommand docstrings already good |
26+
| `brief *` | ok | Group help enriched; subcommand docstrings already good |
27+
| `content *` | ok | Group help enriched; subcommand docstrings already good |
28+
| `credentials *` | ok | Group help enriched; subcommand docstrings already good |
29+
| `cycles *` | ok | Group help enriched; subcommand docstrings already good |
30+
| `strategy *` | ok | `show` enriched with displayed fields |
31+
| `logs *` | ok | Replaced `system *`; query, tail, clear, health subcommands |
32+
| `target *` | ok | `enable` enriched with re-enable behavior |
33+
| `topics *` | ok | Group help enriched; subcommand docstrings already good |
34+
| `decision *` | ok | `list` and `delete` enriched with decision context |
35+
| `inspect *` | ok | `log`, `pending`, `usage`, `platforms` all enriched with detail and examples |
36+
| `manual *` | ok | `draft`, `consolidate`, `post` enriched with LLM context and examples |
37+
| `draft approve` | ok | Enriched: explains scheduler interaction |
38+
| `draft cancel` | ok | Enriched: explains queue removal |
39+
| `draft retry` | ok | Enriched: explains re-queuing |
40+
| `draft quick-approve` | ok | Enriched: explains combined approve + optimal scheduling |
41+
| `draft schedule` | ok | Enriched: explains auto-scheduling vs explicit --time |
42+
| `draft edit` | ok | Enriched: change history, thread re-split |
3143
| `draft list` | ok | Has examples |
32-
| `draft media-edit` | ok | Has example |
33-
| `draft media-regen` | ok | |
44+
| `draft media-edit` | ok | Enriched: media spec structure explanation |
45+
| `draft media-regen` | ok | Enriched: media spec workflow |
3446
| `draft media-remove` | ok | |
3547
| `draft post-now` | ok | |
3648
| `draft promote` | ok | Has example |
37-
| `draft redraft` | ok | Has example |
38-
| `draft reject` | ok | Has example |
39-
| `draft reopen` | ok | |
49+
| `draft redraft` | ok | Enriched: Expert agent, LLM op, change history |
50+
| `draft reject` | ok | Enriched: cascading re-draft, voice memory |
51+
| `draft reopen` | ok | Enriched: intro restriction, resulting status |
4052
| `draft show` | ok | |
41-
| `draft unapprove` | ok | |
42-
| `draft unschedule` | ok | |
53+
| `draft unapprove` | ok | Enriched: resulting status, when to use |
54+
| `draft connect` | ok | New: links preview draft to an account |
55+
| `draft unschedule` | ok | Enriched: resulting status, when to use |
4356

4457
## Conceptual Docs (site-docs/concepts/)
4558

4659
| Page | Status | Notes |
4760
|------|--------|-------|
48-
| pipeline.md | complete | 298 lines, thorough stage-by-stage walkthrough |
49-
| narrative-arcs.md | complete | |
61+
| pipeline.md | complete | Rewritten: two-stage eval (analyzer+evaluator), batch evaluation, interval gating, per-strategy decisions, target routing, evaluation cycles, preview mode |
62+
| narrative-arcs.md | complete | Updated: strategy-scoped arcs, `episode_tags` (was `episode_type`) |
5063
| voice-memory.md | complete | |
5164
| media-generation.md | complete | |
65+
| targets.md | missing | New core concept — waiting_approval |
66+
| topics.md | missing | New content source system — waiting_approval |
67+
| routing.md | missing | New target routing system — waiting_approval |
5268
| web-dashboard.md | missing | No page exists — waiting_approval |
5369
| scheduling.md | missing | Covered briefly in config.md — waiting_approval |
5470

5571
## Configuration Docs (site-docs/configuration/)
5672

5773
| Page | Status | Notes |
5874
|------|--------|-------|
59-
| config.md | complete | Full field-by-field reference |
75+
| config.md | stale | OAuth 2.0 env vars correct; missing sections: rate_limits, identities, content_strategies, platform_credentials, accounts, targets, platform_settings, max_targets, logging/LogBus |
6076
| content-config.md | complete | |
6177
| social-context.md | complete | |
6278

6379
## Getting Started (site-docs/getting-started/)
6480

6581
| Page | Status | Notes |
6682
|------|--------|-------|
67-
| installation.md | complete | Leads with quickstart |
68-
| quickstart.md | complete | Step-by-step guide |
83+
| installation.md | complete | Accurate for current quickstart flow; targets workflow addendum in backlog |
84+
| quickstart.md | complete | Preview draft → promote flow still valid; targets onboarding in backlog |
6985

7086
## Recurring Checks
7187

7288
| Check | Last passed | Notes |
7389
|-------|-------------|-------|
90+
| CLI docs are fresh (`generate_cli_docs.py` output matches committed) | 2026-03-30 | |
91+
| `mkdocs.yml` nav entries match files in `site-docs/cli/` | 2026-03-30 | Fixed: `system``logs` |
92+
| OAuth env vars in config.md use OAuth 2.0 names (`X_CLIENT_ID`, not `CONSUMER_KEY`) | 2026-03-30 | |
93+
| `ruff check src/ tests/` passes | 2026-03-30 | |
94+
| `mypy src/social_hook/` has no new errors (only pre-existing library stub issues) | 2026-03-30 | 28 errors, all `import-untyped` or pre-existing |
95+
| All CLI commands with poor/partial docstrings have been enriched | 2026-03-30 | 16 commands across 6 files enriched |
96+
| `pipeline.md` accurately describes the two-stage evaluation flow and targets path | 2026-03-30 | |
97+
| `narrative-arcs.md` uses `episode_tags` (not `episode_type`) and documents strategy-scoped arcs | 2026-03-30 | |
7498

7599
## Backlog (waiting_approval)
76100

101+
- [ ] Targets concept page — how accounts, targets, and strategies work
102+
- [ ] Topics concept page — content sources, topic queue, suggestions
103+
- [ ] Routing concept page — how drafts get routed to targets
77104
- [ ] Web dashboard usage guide (#19)
78105
- [ ] Workflow tutorials (#20)
79106
- [ ] examples/ directory (#22)
80107
- [ ] Scheduling deep-dive (how optimal times are calculated, posting windows, rate limits)
108+
- [ ] Agent-first CLI equivalents — interactive commands like `setup` need non-interactive agent equivalents, then documented
109+
- [x] ~~Enrich docstrings for partial/poor CLI commands~~ (done — 16 commands enriched across inspect, decision, manual, draft, strategy, target)
110+
- [ ] config.md expansion — add sections for rate_limits, identities, content_strategies, platform_credentials, accounts, targets, platform_settings, max_targets, logging/LogBus
111+
- [x] ~~pipeline.md rewrite~~ (done — two-stage evaluation, commit analyzer, batch evaluation, interval gating, per-strategy decisions, target routing)
112+
- [ ] Testing guide — unit tests, E2E test suite, snapshots, VCR cassettes, verification scripts (source: docs/E2E_TESTING.md, docs/CLAUDE.md E2E section)
113+
- [ ] E2E test reference — sections, scenarios, three-dimension protocol, --pause mode, harness helpers (source: docs/E2E_TESTING.md, scripts/e2e/)

site-docs/cli/account.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# social-hook account
22

3-
Platform account management.
3+
Manage OAuth-authenticated platform accounts (X, LinkedIn).
44

55
---
66

site-docs/cli/brief.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# social-hook brief
22

3-
Project brief management.
3+
View and edit the project brief used by the evaluator and drafter.
44

55
---
66

site-docs/cli/content.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# social-hook content
22

3-
Content suggestions and operations.
3+
Submit content ideas, combine topics, and trigger hero launch drafts.
44

55
---
66

site-docs/cli/credentials.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# social-hook credentials
22

3-
Platform credential management.
3+
Manage API keys and secrets in ~/.social-hook/.env.
44

55
---
66

site-docs/cli/cycles.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# social-hook cycles
22

3-
Evaluation cycle history.
3+
Inspect evaluation cycle history and per-strategy outcomes.
44

55
---
66

site-docs/cli/decision.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Decision management.
88

99
Delete a decision and its associated drafts.
1010

11+
A decision is the evaluator's verdict on a commit (draft, skip, or defer).
12+
This permanently removes the decision and all linked drafts from the
13+
database. This action cannot be undone.
14+
1115
Example: social-hook decision delete decision-abc123
1216

1317
**Arguments:**
@@ -29,7 +33,13 @@ Example: social-hook decision delete decision-abc123
2933

3034
List decisions for a project.
3135

32-
Example: social-hook decision list --project .
36+
Decisions are evaluator outcomes for commits (draft, skip, or defer).
37+
Each row shows the decision ID, commit hash, type, media tool, content
38+
angle, and date.
39+
40+
Examples:
41+
social-hook decision list --project .
42+
social-hook decision list --limit 50 --json
3343

3444
**Options:**
3545

site-docs/cli/draft.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ Example: social-hook draft connect draft-abc123 --account my-x-account
6464

6565
Edit draft content.
6666

67+
Records the change in the draft's change history (visible in draft show).
68+
If the draft is a thread, tweet boundaries are automatically re-split.
69+
6770
Example: social-hook draft edit draft-abc123 --content "Updated post text here"
6871

6972
**Arguments:**
@@ -107,6 +110,10 @@ Example: social-hook draft list --tag auth
107110

108111
Edit the media spec for a draft.
109112

113+
The media spec is a JSON object that controls media generation (e.g.,
114+
code snippet, language, theme). After editing, run media-regen to
115+
produce a new media file from the updated spec.
116+
110117
Example: social-hook draft media-edit draft-abc123 --spec '{"code": "print(42)", "language": "python"}'
111118

112119
**Arguments:**
@@ -127,6 +134,10 @@ Example: social-hook draft media-edit draft-abc123 --spec '{"code": "print(42)",
127134

128135
Regenerate media for a draft using its stored media spec.
129136

137+
The media spec is a JSON object describing what to generate (e.g., code
138+
snippet image, diagram). Edit the spec first with media-edit, then run
139+
this command to produce a new file from the updated spec.
140+
130141
Example: social-hook draft media-regen draft-abc123
131142

132143
**Arguments:**
@@ -219,6 +230,10 @@ Example: social-hook draft quick-approve draft_abc123
219230

220231
Redraft content using the Expert agent with a new angle.
221232

233+
Calls the Expert LLM agent to rewrite the draft with a different
234+
direction. May also update the media spec. Changes are recorded
235+
in the draft's change history.
236+
222237
Example: social-hook draft redraft draft-abc123 --angle "focus on the performance gains"
223238

224239
**Arguments:**
@@ -237,7 +252,11 @@ Example: social-hook draft redraft draft-abc123 --angle "focus on the performanc
237252

238253
### `social-hook draft reject`
239254

240-
Reject a draft (saves reason as voice memory when --reason provided).
255+
Reject a draft and optionally record feedback as voice memory.
256+
257+
When --reason is provided, the feedback is saved to voice memory so the
258+
drafter learns from it in future runs. If the draft is an intro draft,
259+
rejection cascades to re-draft the introduction for that platform.
241260

242261
Example: social-hook draft reject draft-abc123 --reason "too technical for the audience"
243262

@@ -257,7 +276,10 @@ Example: social-hook draft reject draft-abc123 --reason "too technical for the a
257276

258277
### `social-hook draft reopen`
259278

260-
Reopen a cancelled or rejected draft.
279+
Reopen a cancelled or rejected draft, returning it to 'draft' status.
280+
281+
Intro drafts cannot be reopened -- create a new draft instead.
282+
Clears any previous error message on the draft.
261283

262284
Example: social-hook draft reopen draft-abc123
263285

@@ -334,7 +356,10 @@ Example: social-hook draft show draft-abc123
334356

335357
### `social-hook draft unapprove`
336358

337-
Revert approval on a draft.
359+
Revert approval on a draft, returning it to 'draft' status.
360+
361+
Use when you approved a draft prematurely and want to make further
362+
edits before scheduling or posting.
338363

339364
Example: social-hook draft unapprove draft-abc123
340365

@@ -348,7 +373,10 @@ Example: social-hook draft unapprove draft-abc123
348373

349374
### `social-hook draft unschedule`
350375

351-
Revert scheduling on a draft.
376+
Revert scheduling on a draft, returning it to 'draft' status.
377+
378+
Clears the scheduled time. Use when you need to edit or reschedule
379+
a draft that was already queued for posting.
352380

353381
Example: social-hook draft unschedule draft-abc123
354382

0 commit comments

Comments
 (0)