Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions site-docs/DOC_STATUS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- last_run_commit: e0675da9f57694de2e6857eec0784bce5137b864 -->
<!-- last_run_date: 2026-04-16 -->
<!-- last_run_commit: 615a871d519a1f393af7d56c215e2d9e77d3225e -->
<!-- last_run_date: 2026-05-21 -->

# Documentation Status

Expand Down Expand Up @@ -96,16 +96,16 @@ Tracks coverage of external docs against the codebase. Used by the docs maintena

| Check | Last passed | Notes |
|-------|-------------|-------|
| CLI docs are fresh (`generate_cli_docs.py` output matches committed) | 2026-04-16 | |
| `mkdocs.yml` nav entries match files in `site-docs/cli/` | 2026-04-16 | |
| OAuth env vars in config.md use OAuth 2.0 names (`X_CLIENT_ID`, not `CONSUMER_KEY`) | 2026-04-16 | |
| `ruff check src/ tests/` passes | 2026-04-16 | |
| `mypy src/social_hook/` has no new errors (only pre-existing library stub issues) | 2026-04-16 | 28 errors, all `import-untyped` or `no-any-return` pre-existing; fixed new `assignment` error in `brief.py` |
| All CLI commands with poor/partial docstrings have been enriched | 2026-04-16 | 16 commands across 6 files enriched |
| `pipeline.md` accurately describes the two-stage evaluation flow and targets path | 2026-04-16 | |
| `narrative-arcs.md` uses `episode_tags` (not `episode_type`) and documents strategy-scoped arcs | 2026-04-16 | |
| All interactive CLI commands (e.g., `credentials add`) have documented non-interactive equivalents for agent/CI use | 2026-04-16 | `credentials add --set`, all destructive commands have `--yes`; `setup` wizard → write config.yaml directly |
| All CLI command groups have enriched group-level help text (not just terse labels) | 2026-04-16 | `project` and `journey` enriched this run; all 24 groups now have descriptive help |
| CLI docs are fresh (`generate_cli_docs.py` output matches committed) | 2026-05-21 | |
| `mkdocs.yml` nav entries match files in `site-docs/cli/` | 2026-05-21 | 24/24 match |
| OAuth env vars in config.md use OAuth 2.0 names (`X_CLIENT_ID`, not `CONSUMER_KEY`) | 2026-05-21 | |
| `ruff check src/ tests/` passes | 2026-05-21 | |
| `mypy src/social_hook/` has no new errors (only pre-existing library stub issues) | 2026-05-21 | 28 errors, all `import-untyped` or `no-any-return` pre-existing |
| All CLI commands with poor/partial docstrings have been enriched | 2026-05-21 | |
| `pipeline.md` accurately describes the two-stage evaluation flow and targets path | 2026-05-21 | |
| `narrative-arcs.md` uses `episode_tags` (not `episode_type`) and documents strategy-scoped arcs | 2026-05-21 | |
| All interactive CLI commands (e.g., `credentials add`) have documented non-interactive equivalents for agent/CI use | 2026-05-21 | `credentials add --set`, all destructive commands have `--yes`; `setup` wizard → write config.yaml directly |
| All CLI command groups have enriched group-level help text (not just terse labels) | 2026-05-21 | 12 remaining terse groups enriched this run (bot, inspect, manual, setup, test, config, memory, arc, decision, draft, media, snapshot, logs); all 24 groups now have descriptive help |

## Backlog (waiting_approval)

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/arc.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook arc

Manage narrative arcs.
Manage narrative arcs — multi-episode story threads the drafter weaves across posts within a strategy.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/bot.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook bot

Bot daemon management.
Start, stop, and check the status of the bot daemon that listens for chat commands.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/config.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook config

View and modify configuration.
View and modify configuration values. Use 'show' for the full config, 'get' for a single key, or 'set' to update a value.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/decision.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook decision

Decision management.
View, delete, retrigger, or rewind evaluation decisions from the pipeline log.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/draft.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook draft

Draft lifecycle management.
Draft lifecycle — approve, reject, schedule, edit, redraft, cancel, and post content drafts.

---

Expand Down
26 changes: 13 additions & 13 deletions site-docs/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,23 @@ These options can be placed before any command.
|-------|-------------|
| [`account`](account.md) | Manage OAuth-authenticated platform accounts (X, LinkedIn). |
| [`advisory`](advisory.md) | Manage advisory items — operator action items for manual tasks. |
| [`arc`](arc.md) | Manage narrative arcs. |
| [`bot`](bot.md) | Bot daemon management. |
| [`arc`](arc.md) | Manage narrative arcs — multi-episode story threads the drafter weaves across posts within a strategy. |
| [`bot`](bot.md) | Start, stop, and check the status of the bot daemon that listens for chat commands. |
| [`brief`](brief.md) | View and edit the project brief used by the evaluator and drafter. |
| [`config`](config.md) | View and modify configuration. |
| [`config`](config.md) | View and modify configuration values. Use 'show' for the full config, 'get' for a single key, or 'set' to update a value. |
| [`content`](content.md) | Submit content ideas, combine topics, and trigger hero launch drafts. |
| [`credentials`](credentials.md) | Manage API keys and secrets in ~/.social-hook/.env. |
| [`cycles`](cycles.md) | Inspect evaluation cycle history and per-strategy outcomes. |
| [`decision`](decision.md) | Decision management. |
| [`draft`](draft.md) | Draft lifecycle management. |
| [`inspect`](inspect.md) | Inspect system state. |
| [`decision`](decision.md) | View, delete, retrigger, or rewind evaluation decisions from the pipeline log. |
| [`draft`](draft.md) | Draft lifecycle — approve, reject, schedule, edit, redraft, cancel, and post content drafts. |
| [`inspect`](inspect.md) | View decision log, pending drafts, LLM token usage, and connected platform capabilities. |
| [`journey`](journey.md) | Control Development Journey capture. When enabled, Claude Code hooks record session narratives that feed into the evaluation pipeline as rich development context. |
| [`logs`](logs.md) | Log queries, tailing, and health. |
| [`manual`](manual.md) | Manual operations. |
| [`media`](media.md) | Media management. |
| [`memory`](memory.md) | Manage voice memories. |
| [`logs`](logs.md) | Query, tail, and clear application event logs. Includes a health check for pipeline and LogBus status. |
| [`manual`](manual.md) | Manually trigger pipeline stages — evaluate a commit, create a draft, consolidate holds, or post a scheduled draft. |
| [`media`](media.md) | Manage generated media assets. Use 'gc' to garbage-collect orphaned media files. |
| [`memory`](memory.md) | Manage voice memories — persistent style and tone notes the drafter references when composing content. |
| [`project`](project.md) | Register and manage projects. A project links a git repository (or folder) to Social Hook so commits are evaluated, content is drafted, and briefs are maintained. |
| [`snapshot`](snapshot.md) | DB snapshot management. |
| [`snapshot`](snapshot.md) | Save, restore, list, and delete database snapshots for backup and experimentation. |
| [`strategy`](strategy.md) | View and customize content strategies (voice, audience, editorial rules). |
| [`target`](target.md) | Configure where content is distributed (account + destination + strategy). |
| [`topics`](topics.md) | Manage the prioritised content topic queue per strategy. |
Expand All @@ -54,8 +54,8 @@ These options can be placed before any command.
| [`quickstart`](root-commands.md#social-hook-quickstart) | Run the quickstart flow. |
| [`rate-limits`](root-commands.md#social-hook-rate-limits) | Show current rate limit status (daily cap, gap timer, queue, cost). |
| [`scheduler-tick`](root-commands.md#social-hook-scheduler-tick) | Post scheduled drafts whose time has arrived and promote deferred drafts. |
| [`setup`](root-commands.md#social-hook-setup) | Configure social-hook. |
| [`test`](root-commands.md#social-hook-test) | Test commit evaluation. |
| [`setup`](root-commands.md#social-hook-setup) | Run the interactive setup wizard to configure social-hook — credentials, accounts, projects, and strategies. Use --only to configure a single component. |
| [`test`](root-commands.md#social-hook-test) | Dry-run commit evaluation without creating drafts. Supports --output to save results and --compare to diff against a previous run. |
| [`trigger`](root-commands.md#social-hook-trigger) | Run the full evaluation-to-draft pipeline for a single commit. |
| [`version`](root-commands.md#social-hook-version) | Show version information. |
| [`web`](root-commands.md#social-hook-web) | Start the web dashboard for managing your social-hook workflow visually. |
2 changes: 1 addition & 1 deletion site-docs/cli/inspect.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook inspect

Inspect system state.
View decision log, pending drafts, LLM token usage, and connected platform capabilities.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/logs.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook logs

Log queries, tailing, and health.
Query, tail, and clear application event logs. Includes a health check for pipeline and LogBus status.

**Group options:**

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/manual.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook manual

Manual operations.
Manually trigger pipeline stages — evaluate a commit, create a draft, consolidate holds, or post a scheduled draft.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/media.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook media

Media management.
Manage generated media assets. Use 'gc' to garbage-collect orphaned media files.

---

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/memory.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook memory

Manage voice memories.
Manage voice memories — persistent style and tone notes the drafter references when composing content.

---

Expand Down
4 changes: 2 additions & 2 deletions site-docs/cli/root-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ Example: social-hook --dry-run scheduler-tick

### `social-hook setup`

Configure social-hook.
Run the interactive setup wizard to configure social-hook — credentials, accounts, projects, and strategies. Use --only to configure a single component.

**Options:**

Expand All @@ -152,7 +152,7 @@ Configure social-hook.

### `social-hook test`

Test commit evaluation.
Dry-run commit evaluation without creating drafts. Supports --output to save results and --compare to diff against a previous run.

**Options:**

Expand Down
2 changes: 1 addition & 1 deletion site-docs/cli/snapshot.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# social-hook snapshot

DB snapshot management.
Save, restore, list, and delete database snapshots for backup and experimentation.

---

Expand Down
78 changes: 65 additions & 13 deletions src/social_hook/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,11 @@ def _kill_port(p: int) -> None:
# Bot subcommand group
# =============================================================================

bot_app = typer.Typer(name="bot", help="Bot daemon management.", no_args_is_help=True)
bot_app = typer.Typer(
name="bot",
help="Start, stop, and check the status of the bot daemon that listens for chat commands.",
no_args_is_help=True,
)
app.add_typer(bot_app, name="bot")


Expand Down Expand Up @@ -970,16 +974,32 @@ def narrative_capture():
)

# Inspection commands: log, pending, usage
app.add_typer(inspect_app, name="inspect", help="Inspect system state.")
app.add_typer(
inspect_app,
name="inspect",
help="View decision log, pending drafts, LLM token usage, and connected platform capabilities.",
)

# Manual commands: evaluate, draft, post
app.add_typer(manual_app, name="manual", help="Manual operations.")
app.add_typer(
manual_app,
name="manual",
help="Manually trigger pipeline stages — evaluate a commit, create a draft, consolidate holds, or post a scheduled draft.",
)

# Setup wizard
app.add_typer(setup_app, name="setup", help=f"Configure {PROJECT_SLUG}.")
app.add_typer(
setup_app,
name="setup",
help=f"Run the interactive setup wizard to configure {PROJECT_SLUG} — credentials, accounts, projects, and strategies. Use --only to configure a single component.",
)

# Test command
app.add_typer(test_app, name="test", help="Test commit evaluation.")
app.add_typer(
test_app,
name="test",
help="Dry-run commit evaluation without creating drafts. Supports --output to save results and --compare to diff against a previous run.",
)

# Journey capture commands: on, off, status
app.add_typer(
Expand All @@ -989,32 +1009,60 @@ def narrative_capture():
)

# Config commands: show, get, set
app.add_typer(config_app, name="config", help="View and modify configuration.")
app.add_typer(
config_app,
name="config",
help="View and modify configuration values. Use 'show' for the full config, 'get' for a single key, or 'set' to update a value.",
)

# Memory commands: list, add, delete, clear
app.add_typer(memory_app, name="memory", help="Manage voice memories.")
app.add_typer(
memory_app,
name="memory",
help="Manage voice memories — persistent style and tone notes the drafter references when composing content.",
)

# Arc commands: list, create, complete, abandon
app.add_typer(arc_app, name="arc", help="Manage narrative arcs.")
app.add_typer(
arc_app,
name="arc",
help="Manage narrative arcs — multi-episode story threads the drafter weaves across posts within a strategy.",
)

from social_hook.cli.decision import app as decision_app
from social_hook.cli.draft import app as draft_app

# Decision management: list, delete
app.add_typer(decision_app, name="decision", help="Decision management.")
app.add_typer(
decision_app,
name="decision",
help="View, delete, retrigger, or rewind evaluation decisions from the pipeline log.",
)

# Draft lifecycle: approve, reject, schedule, cancel, retry, edit, etc.
app.add_typer(draft_app, name="draft", help="Draft lifecycle management.")
app.add_typer(
draft_app,
name="draft",
help="Draft lifecycle — approve, reject, schedule, edit, redraft, cancel, and post content drafts.",
)

from social_hook.cli.media import app as media_app

# Media commands: gc
app.add_typer(media_app, name="media", help="Media management.")
app.add_typer(
media_app,
name="media",
help="Manage generated media assets. Use 'gc' to garbage-collect orphaned media files.",
)

from social_hook.cli.snapshot import app as snapshot_app

# DB snapshot management: save, restore, reset, list, delete
app.add_typer(snapshot_app, name="snapshot", help="DB snapshot management.")
app.add_typer(
snapshot_app,
name="snapshot",
help="Save, restore, list, and delete database snapshots for backup and experimentation.",
)

from social_hook.cli.account import app as account_app
from social_hook.cli.advisory import app as advisory_app
Expand Down Expand Up @@ -1091,7 +1139,11 @@ def narrative_capture():
)

# Log queries, tailing, and health
app.add_typer(logs_app, name="logs", help="Log queries, tailing, and health.")
app.add_typer(
logs_app,
name="logs",
help="Query, tail, and clear application event logs. Includes a health check for pipeline and LogBus status.",
)

from social_hook.cli.events import events as events_cmd
from social_hook.cli.quickstart import quickstart as quickstart_cmd
Expand Down
6 changes: 5 additions & 1 deletion src/social_hook/cli/media.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@

import typer

app = typer.Typer(name="media", help="Media management.", no_args_is_help=True)
app = typer.Typer(
name="media",
help="Manage generated media assets. Use 'gc' to garbage-collect orphaned media files.",
no_args_is_help=True,
)


@app.command("gc")
Expand Down
Loading