docs: Scout facet-configurability open questions (re: #176)#178
Open
jordanrburger wants to merge 4 commits into
Open
docs: Scout facet-configurability open questions (re: #176)#178jordanrburger wants to merge 4 commits into
jordanrburger wants to merge 4 commits into
Conversation
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>
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>
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.
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
scoutctl phases backportcovers only prose edits to existing phases).requires:/mode:primitive inphase_assembly.py:select_sections— and an explicit note on what it does not solve.Notes
🤖 Generated with Claude Code