Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
870bff3
Add offline project context exports
spaceshipmike Jul 14, 2026
0c92080
Add project attention contract + assess_attention (schema v20)
spaceshipmike Jul 14, 2026
fba0f8f
Address Codex review round 1 on PR #83 (6 blockers)
spaceshipmike Jul 14, 2026
85eb39b
Address Codex review round 2 on PR #83 (3 blockers)
spaceshipmike Jul 14, 2026
3627e5b
Address Codex review round 3 on PR #83 (4 blockers)
spaceshipmike Jul 14, 2026
83d645a
Address Codex review round 4 on PR #83
spaceshipmike Jul 14, 2026
e78f79d
Address Codex review round 5 on PR #83 (4 blockers)
spaceshipmike Jul 14, 2026
a90d34f
Address Codex review round 6 on PR #83
spaceshipmike Jul 14, 2026
0225a69
Address Codex review round 7 on PR #83
spaceshipmike Jul 14, 2026
6ea0e9a
Address Codex review round 8 on PR #83
spaceshipmike Jul 14, 2026
4858655
Complete the no-op-write sweep (Codex round 9 on PR #83)
spaceshipmike Jul 14, 2026
d602259
Address Codex review round 10 on PR #83 (3 blockers)
spaceshipmike Jul 14, 2026
6d9b5b7
Address Codex review round 11 on PR #83 (3 blockers)
spaceshipmike Jul 14, 2026
14d12fd
Address Codex review round 12 on PR #83 (2 blockers)
spaceshipmike Jul 14, 2026
4ea4dac
Address Codex review round 13 on PR #83 (2 blockers)
spaceshipmike Jul 14, 2026
3976f35
Address Codex review round 14 on PR #83
spaceshipmike Jul 14, 2026
8eec7e6
Address Codex review round 15 on PR #83
spaceshipmike Jul 14, 2026
ccf5352
Address Codex review round 16 on PR #83
spaceshipmike Jul 14, 2026
b757497
Address Codex review round 17 on PR #83 (2 blockers)
spaceshipmike Jul 14, 2026
14820bd
Address Codex review round 18 on PR #83 (2 blockers)
spaceshipmike Jul 14, 2026
2b67dae
Address Codex review round 19 on PR #83
spaceshipmike Jul 14, 2026
996c71a
Fix round-19 regression test assertion (getProject does not throw on …
spaceshipmike Jul 14, 2026
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
16 changes: 9 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Setlist is the TypeScript implementation of the Project Registry — the active

Spec 0.32 is **shipped through v0.6.1-beta.7**: user-managed areas and project types, user-composable bootstrap recipes, safe MCP client install/remove planning (now with a Take over action for unmanaged-entry conflicts), local workspace inspection (with an Overview tab Signals from disk panel), portable project briefs, per-project essence digests, the optional `email_account` field that drives the `mail-create-mailbox` bootstrap primitive, menu-bar persistence with a system tray plus configurable global project shortcuts, and the quit-prompt update handoff are all live. For origin and port history, see spec §1.5.

Running system: Schema v19 (adds `projects.container` for the `projects/` taxonomy — non-code projects land at `<area.default_directory>/<container?>/projects/<name>` — and retargets the Finance/Health seed directories to `~/Areas/home/Finances` and `~/Areas/personal/Health`; v18 added `areas.default_directory` for area-aware bootstrap; v17 added the interactions log; v16 added `projects.email_account` for the `mail-create-mailbox` primitive and builds on v15's digest `named_terms`, v14's `bootstrap_primitives` + `project_type_recipe_steps`, v13's user-managed `project_types`, v12's `project_digests`, v11's structural `area_id`/`parent_project_id`, and v10's unified memory types), 62 MCP tools, desktop UI sharing Chorus's design system with multiselect status filtering and archived project visibility.
Running system: Schema v20 (adds the attention contract on projects — `priority_tier`, `attention_mode`, `attention_cadence_days`, `next_review_at`, `priority_reason` — driving the `assess_attention` surface, plus the D-014-deferred memory constraints: `'revived'` in `memory_versions.change_type` and the `memory_edges` UNIQUE natural key; v19 added `projects.container` for the `projects/` taxonomy — non-code projects land at `<area.default_directory>/<container?>/projects/<name>` — and retargeted the Finance/Health seed directories to `~/Areas/home/Finances` and `~/Areas/personal/Health`; v18 added `areas.default_directory` for area-aware bootstrap; v17 added the interactions log; v16 added `projects.email_account` for the `mail-create-mailbox` primitive and builds on v15's digest `named_terms`, v14's `bootstrap_primitives` + `project_type_recipe_steps`, v13's user-managed `project_types`, v12's `project_digests`, v11's structural `area_id`/`parent_project_id`, and v10's unified memory types), 63 MCP tools, desktop UI sharing Chorus's design system with multiselect status filtering and archived project visibility.

## Commands

Expand All @@ -31,7 +31,7 @@ npm run typecheck
```
packages/
├── core/ # @setlist/core — library (all registry logic)
├── mcp/ # @setlist/mcp — MCP server (62 tools, stdio)
├── mcp/ # @setlist/mcp — MCP server (63 tools, stdio)
├── cli/ # @setlist/cli — CLI commands + async worker
├── app/ # @setlist/app — desktop control panel (Electron + React)
└── skills/ # @setlist/skills — bundled agent skills, dual-host (.claude/.codex) manifests, installer
Expand All @@ -44,13 +44,13 @@ packages/
- **Electron** — Desktop shell for @setlist/app. Main process imports @setlist/core via IPC bridge.
- **React + Tailwind CSS 4 + Radix UI** — Renderer stack, shared design system with Chorus.
- **ESM-only** — All packages produce ESM output. No CJS.
- **Schema v19** — Current schema includes `projects.container` (the `projects/` taxonomy — non-code placement at `<area.default_directory>/<container?>/projects/<name>`), `areas.default_directory` (area-aware bootstrap), the v17 interactions log, optional `projects.email_account` for Mail.app mailbox bootstrap, `project_digests.named_terms` for digest retrieval, `bootstrap_primitives` seeded with five built-ins (`create-folder`, `copy-template`, `git-init`, `update-parent-gitignore`, `mail-create-mailbox`), `project_type_recipe_steps` for per-type recipes, user-managed `project_types` and `areas`, and structural `area_id` / `parent_project_id` columns on projects. Migration history from v8 onward is preserved in spec §5.2.
- **Schema v20** — Current schema includes the attention contract on projects (`priority_tier`, `attention_mode`, `attention_cadence_days`, `next_review_at`, `priority_reason` — all nullable; unconfigured surfaces as a gap, never a warning), `projects.container` (the `projects/` taxonomy — non-code placement at `<area.default_directory>/<container?>/projects/<name>`), `areas.default_directory` (area-aware bootstrap), the v17 interactions log, optional `projects.email_account` for Mail.app mailbox bootstrap, `project_digests.named_terms` for digest retrieval, `bootstrap_primitives` seeded with five built-ins (`create-folder`, `copy-template`, `git-init`, `update-parent-gitignore`, `mail-create-mailbox`), `project_type_recipe_steps` for per-type recipes, user-managed `project_types` and `areas`, and structural `area_id` / `parent_project_id` columns on projects. Migration history from v8 onward is preserved in spec §5.2.
- **Library-first** — @setlist/core is the primary interface. MCP, CLI, and desktop app are thin wrappers.

### Database

Location: `~/.local/share/project-registry/registry.db`
Schema v19, WAL mode, FTS5 for memory search.
Schema v20, WAL mode, FTS5 for memory search.

**Migrations & backups.** `upgradeSchema` chains one version at a time
(`MIGRATION_STEPS[N]`: N→N+1, stamping after each step) so a multi-version jump —
Expand All @@ -62,7 +62,7 @@ before each migration (aborts the migration if it can't be written), plus a 24h
auto-snapshot and the `setlist backup` / `setlist restore` CLI, both under
`<data-dir>/backups/` (retention 14). See `MODEL_DECISIONS.md` → D-012.

### 62 MCP Tools
### 63 MCP Tools

**Identity (16):** list_projects, get_project, get_project_brief, switch_project, search_projects, get_registry_stats, register_project, update_project, archive_project, unarchive_project, rename_project, batch_update, write_fields, enrich_project, set_project_area, set_parent_project

Expand All @@ -80,6 +80,8 @@ auto-snapshot and the `setlist backup` / `setlist restore` CLI, both under

**Health (2):** assess_health, doctor

**Attention (1):** assess_attention

**Digests (3):** get_project_digest, get_project_digests, refresh_project_digest

**Areas (4):** list_areas, create_area, update_area, delete_area
Expand Down Expand Up @@ -187,8 +189,8 @@ a feature-history index of what the system does.
Preserve during auto-compaction:
- Agent-model: INVARIANTS.md, SURFACES.md, MODEL_DECISIONS.md, .fctry/lessons.md (the prototype-driven oracle)
- Key constraint: prototype-driven loop — the running prototype + INVARIANTS.md are the oracle; scenario satisfaction is retired (spec-era artifacts archived under .fctry/legacy-spec-era/)
- Key constraint: Running code is on schema v19 (projects.container for the projects/ taxonomy, areas.default_directory, interactions log, email_account, digest named_terms, bootstrap_primitives + project_type_recipe_steps, user-managed project_types/areas, structural area/parent links)
- Key constraint: 62 MCP tools covering identity, capabilities, memory, ports, tasks, bootstrap, health, digests, areas, project types, primitives, recipes, and safe client onboarding
- Key constraint: Running code is on schema v20 (attention contract on projects, projects.container for the projects/ taxonomy, areas.default_directory, interactions log, email_account, digest named_terms, bootstrap_primitives + project_type_recipe_steps, user-managed project_types/areas, structural area/parent links)
- Key constraint: 63 MCP tools covering identity, capabilities, memory, ports, tasks, bootstrap, health, attention, digests, areas, project types, primitives, recipes, and safe client onboarding
- Key constraint: Library-first (@setlist/core), ESM-only, better-sqlite3; monorepo packages {core,mcp,cli,app,skills}
-->

Expand Down
Loading
Loading