Fixes Scribe issues #2569 and #2570 (operator-driven corrections to the #2562 instruction-delivery work):
attach_systems() — one seam on every read and write of a task, note, or snippet (get/create/update + add_task_log): tagged records always show systems (read-side affiliation was previously invisible for tasks and notes); an untagged project record carries the unified systems_hint question instead — same question regardless of vocabulary state, empty included. Owner-only, never attached empty, fail-open.
create_system is duplicate-gated (normalized name, archived included) so liberal minting is safe by construction.
Prose inverted on every surface: audits/sweeps take several tags and are the prime System-discovery moment; the gate is the guardrail against sprawl, not restraint.
Fixes Scribe issues #2569 and #2570 (operator-driven corrections to the #2562 instruction-delivery work):
- `attach_systems()` — one seam on every read and write of a task, note, or snippet (get/create/update + add_task_log): tagged records always show `systems` (read-side affiliation was previously invisible for tasks and notes); an untagged project record carries the unified `systems_hint` question instead — same question regardless of vocabulary state, empty included. Owner-only, never attached empty, fail-open.
- `create_system` is duplicate-gated (normalized name, archived included) so liberal minting is safe by construction.
- Prose inverted on every surface: audits/sweeps take several tags and are the prime System-discovery moment; the gate is the guardrail against sprawl, not restraint.
- Plugin 0.1.28 (floor + using-scribe updates).
CI green on dev (run 3566, 75bdb9c).
First real-world test of the #2562 fixes (Scribe issue #2569): a Forge
session ran a whole-codebase audit and created zero Systems — endorsed
by the shipped guidance, whose "no particular area takes none" clause
read as an exemption for exactly the record type that enumerates the
subsystem vocabulary. And the systems_hint was silent for a zero-Systems
project, the one state nothing else nudges out of.
- systems_hint gains a zero-Systems branch: prompt the FIRST
create_system instead of going quiet.
- create_system is duplicate-gated like the other creates (normalized
name, archived included, fail-open) — liberal creation becomes safe by
construction, so the guidance can stop preaching restraint.
- Prose inverted on every surface (hint text, create_system docstring,
floor bullet, using-scribe step 7): audits/sweeps take several tags
and mint the Systems they name; the gate is the guardrail against
sprawl, not holding back; only a record genuinely about no particular
area goes untagged.
- Plugin 0.1.26 -> 0.1.27.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Scribe issue #2570, from the operator's challenge: the invariant is
"always be asking whether what you're touching is a System's territory
and whether the work is filed there" — not a nudge in one corner. The
prior shape failed it twice: the hint fired only on creates (with a
special-cased zero-Systems branch), and get_task/get_note returned
records WITHOUT their Systems, so the read-side reflex had nothing to
fire on (same per-kind asymmetry as #2481).
- attach_systems(): single helper used by get/create/update for tasks,
notes, and snippets, plus add_task_log. Tagged records always show
`systems`; an untagged project record carries the `systems_hint`
question instead. Neither field attaches empty (#2483). Hint is
owner-only; everything fail-open (#2109).
- untagged_systems_hint unified to ONE question — the vocabulary
listing varies, the question doesn't; the zero-Systems branch stops
being special text.
- Docstrings state the uniform contract; floor prose now names the
read-side reflex (systems visible -> list_system_records the pile).
- Plugin 0.1.27 -> 0.1.28.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Runs 3562/3565: _fake_system never sets .id so the dup-gate assertion
compared a MagicMock to 7; and a shared to_dict return_value dict let
the tagged create's mutation leak into the orphan create's response.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes Scribe issues #2569 and #2570 (operator-driven corrections to the #2562 instruction-delivery work):
attach_systems()— one seam on every read and write of a task, note, or snippet (get/create/update + add_task_log): tagged records always showsystems(read-side affiliation was previously invisible for tasks and notes); an untagged project record carries the unifiedsystems_hintquestion instead — same question regardless of vocabulary state, empty included. Owner-only, never attached empty, fail-open.create_systemis duplicate-gated (normalized name, archived included) so liberal minting is safe by construction.CI green on dev (run 3566,
75bdb9c).