Skip to content

docs: Scout facet-configurability open questions (re: #176)#178

Open
jordanrburger wants to merge 4 commits into
mainfrom
docs/facet-configurability-open-questions
Open

docs: Scout facet-configurability open questions (re: #176)#178
jordanrburger wants to merge 4 commits into
mainfrom
docs/facet-configurability-open-questions

Conversation

@jordanrburger

Copy link
Copy Markdown
Collaborator

What & why

A design note capturing the open questions around making Scout's per-user "facets" configurable — prompted by the discussion on #176, where a single contributor's personal-vault capability (profile + goals + relationships) is woven into the shared engine.

The individual change in #176 is fine; the pattern of accreting facets this way surfaces four structural problems we don't yet have answers for. This note names them precisely (grounded in the actual bootstrap / phase-assembly mechanics) so we can decide a strategy deliberately rather than one PR at a time.

Contents

  • A table showing a facet spreads state across four layers (phase fragments, cat-2 seeds, schema/entity data, migration markers).
  • Four problems: irreversibility, migration weight (the all-or-nothing global bootstrap path), cat-2 drift with no fix-propagation, and the missing structural back-port procedure (scoutctl phases backport covers only prose edits to existing phases).
  • A direction sketch (not a proposal): config-driven facet gating reusing the existing requires:/mode: primitive in phase_assembly.py:select_sections — and an explicit note on what it does not solve.
  • Six open questions to settle, plus non-goals.

Notes

  • Problem statement only — no mechanism is committed to.
  • Tenant-agnostic per the public-repo anonymization rule (no contributor names / handles).
  • Docs-only change; no code touched.

🤖 Generated with Claude Code

Design note motivated by PR #176 (profile/goals/relationships back-port).
Names the four structural problems with accreting per-user "facets" into the
shared engine — irreversibility, migration weight, cat-2 drift with no
fix-propagation path, and the missing structural back-port procedure — and
lists the open questions to settle before the next facet lands. Problem
statement only; no mechanism proposed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Jordan Burger and others added 2 commits June 30, 2026 13:02
The last_interaction schema edit in #176 lands in an orphaned template; the
parser reads vault-override-or-packaged (resolve_schema_path), neither of
which the PR touches. Verified against a real vault: the field reaches the
active schema nowhere, the vault schema already diverges ~275 lines from the
packaged default, and the parity guard (test_schema_parity.py) is skipped in
CI and locally. Folds this in as a sharper instance of Problem 3 (drift has
no propagation path) and extends open question 3 toward a single schema
source of truth.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Generalizes the relationship-facet cold-start gap found while modeling
#176 against a real vault: a derive-and-act facet's first run on an
existing vault is a distinct, under-tested regime (last_interaction unset
on all people → no baseline for the "cooling" logic, no cold-start guard).
Adds open question 7 (baseline-only first runs + mature-vault test fixture).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Folds two findings from the PR #175 review into the facet open-questions:
- Problem 5 gains a second flavor — namespace collision: reply-drafts claims
  a `drafts/` directory that a mature vault already uses as a free-form
  workspace; the engine has no registry of reserved vault paths.
- Problem 4 gains the hygiene angle — #175 shipped unanonymized real vault
  data into a public command file because the back-port had no scrub gate.
- Open question 5 now names the two missing back-port gates (scrub +
  mature-vault diff) and a possible reserved-paths registry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant