chore(config): allow read-only file access for teammates + system-economic-specialization workshop brief

- settings.json: add Read(repo/**), Read(/tmp/**), Grep, Glob to the
  allowlist. Teammates inherit settings.json (not settings.local.json),
  which had no Read rule — so every teammate file read escalated to the
  lead as a per-file prompt. This closes that gap.
- Add the system-economic-specialization workshop brief (lore-authored
  per-system dominant-commodity field + within-system weighted variation;
  Q5 covers adding a small identity field set in the same 300-system pass).

Note: agent memory-strip (6c93b698f) + this read-allow reach teammates
only after a Claude Code restart (settings/agent-def snapshot is taken at
lead startup).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-31 15:52:48 +02:00
co-authored by Claude Opus 4.8
parent 06d9708dbb
commit edc28d5cdb
2 changed files with 123 additions and 0 deletions
+6
View File
@@ -63,6 +63,12 @@
"Bash(list *)",
"Bash(tree *)",
"Bash(sed -n *)",
"Read(//var/mnt/data/projects/settled-reach/**)",
"Read(//tmp/**)",
"Grep",
"Glob",
"Skill(git-commit)",
"Skill(whats-next)",
"Skill(pr-process)",
@@ -0,0 +1,117 @@
# Workshop — System economic-specialization field (lore-authored dominant commodity)
*Short, focused workshop. Goal: design ONE authored per-system field (maybe two,
or a small identity set) that drives each settlement's dominant commodity — so the
built world stays in step with GTTR/wiki lore instead of being guessed by a
heuristic.*
**Participants:** Miri, Burnelli-Sheldon, Paula
## Why we're here (the problem)
Layer 2 (#982) needs each settlement's **dominant commodity**, which drives its
built form (D-233: `BulkClass` × `ProductionUbiquity` → coverage, vocabulary,
spread). We tried deriving it from `economic_role` + corp-HQ + `planet_class`.
That heuristic **can contradict authored lore**: it could turn the core's
breadbasket into a foundry, or make the MVG homeworld about cereal products.
**Decision already taken (the frame — don't relitigate):** authored lore WINS.
The dominant commodity for a system is **authored**, lore/GTTR-consistent. The
role+corp+planet_class heuristic survives only as a *fallback / weighting basis*
for unnamed, generic worlds. This workshop designs the authored layer.
## The shape the human wants (design within this)
- **ONE authored field per system** = the system's economic specialization /
dominant-commodity character. Lore-driven, GTTR-consistent.
- **Maybe a SECOND field — `economy_size`** — a modifier. Decide if it earns its
place and what it modifies.
- **Within a system, bodies vary *weightedly*** around the system field — an
industrial system can still have a farming moon, but the system reads as its
authored character. The variation is weighted, not free.
- A **300-system content pass** fills this field (Miri + Paula + Burnelli),
staying in step with the wiki/GTTR. Keep the authoring burden to ~1 field
(2 max, or a tight identity set per Q5) per system.
## Frozen-amber caveat (pin this)
The field is **static, authored, t=0** — read at build time into `systems.db`,
never the rolling economy. Derivation must stay deterministic (D-010). No
`PressureState`, no tâtonnement, no save-state.
## Questions for participants
Each participant answers all five from their lens (Miri = lore/GTTR truth;
Burnelli-Sheldon = economic credibility + mapping + weighting + integration;
Paula = faction/political economy). Be concrete — name the field, propose its
vocabulary, name worlds that must be pinned.
**Miri / Burnelli-Sheldon / Paula:**
1. **Q1 — The field.** What *exactly* is the single per-system field? Its
vocabulary (a commodity id? a specialization category? primary ± secondary?),
and how it maps to `dominant_bulk_class` + `dominant_production_ubiquity`
(D-233). Does it reuse/replace the existing `system_economy.economic_base_primary
/secondary` (already authored, free-text) or supersede it? One value or a small
set?
2. **Q2 — Within-system weighted variation.** How do bodies vary around the
system field? What weights apply (body `economic_role`, `planet_class`, corp
HQ, faction)? How is a minority body (the farming moon in a foundry system)
expressed without breaking the system's authored read? Must be deterministic
(seed + static data only).
3. **Q3 — `economy_size`?** Is a second field warranted? If so, what does it
modify — coverage density (D-220), count of specialized blocks, labor draw
(D-233 residential follow-on) — or is it already covered by `population` /
`prosperity_baseline`? Decide in or out; don't add a field that duplicates one.
4. **Q4 — The content pass.** The authoring workflow for ~300 systems: who
authors what (Miri = lore/GTTR truth; Paula = faction/political economy, esp.
faction homeworlds & capitals; Burnelli = economic credibility + the
field→commodity mapping + the weighting model); how to stay GTTR-consistent;
where the source lives (wiki TOML → `import_economics.py``systems.db`
column); CI guardrails (every system has the field; values in-vocabulary;
flag systems where the field contradicts existing authored prose).
5. **Q5 — Do we want a couple MORE identity fields while the pass is open?**
We're touching all ~300 systems by hand once. What other 12 authored
per-system fields would meaningfully flesh out **identity** and are cheap to
fill in the same pass — most obviously the **architecture / cultural
character** (the D-232 trait-template / `atlas_body_trait_bias` "hero" pin,
so a system reads architecturally as canon, not heuristic), and possibly a
dominant cultural/political register. Propose the *minimal* high-value set,
with the same system-level + within-system-weighted-variation shape. **Guard
against scope creep:** every field is authoring burden ×300 and a maintenance
surface — only fields that genuinely change how a system reads earn a slot,
and each must degrade to a heuristic/default for unauthored systems. Decide
the field set; don't gold-plate.
## Build on what exists (don't restart)
- **#982 baseline (provisional, uncommitted):** the role+corp+planet_class
heuristic in `import_economics.py` + `city_context_reader.rs` — becomes the
fallback/weighting basis, not the primary driver.
- **D-233** (economic signal → block-fill; the 2026-05-31 amendment defines the
current heuristic — this workshop will re-amend it).
- **D-184** (commodity catalogue), **D-199** (economic read-set), **D-200**
(build-time tier-1 denormalization), **D-176/D-178** (rolling economy — OUT of
scope here, runtime only), **D-220** (density), **D-197** (prosperity),
**D-232** (architecture-flavor / trait templates — relevant to Q5).
- `system_economy.economic_base_primary/secondary`, `bodies.economic_role`,
`bodies.planet_class`, `corp_presence.primary_operation` — the static signals
that already exist (Burnelli's earlier data memo has the full inventory).
## Workshop Format
Quick, two rounds max, with a mandatory user checkpoint between.
- **Round 1 — Opening positions.** Each participant reads this brief + the
decisions/data for their angle and writes their answer to Q1Q5 to
`docs/workshops/system-economic-specialization/{agent}-round1.md`. Concrete:
name the field, its vocabulary, the weighting model, the Q5 field set, and the
worlds that must be pinned. Qatux documents; the lead presents findings to the
human before any Round 2.
- **Round 2 — Synthesis / convergence (only if the human approves).** Resolve
forks surfaced in Round 1 into a single proposed field schema + content-pass
plan. Output → a D-record (re-amending D-233 + any new record) and the ticket
set (SI).
Qatux (documenter) and SI (ticket prep) join and are never dismissed early.
Sonnet-pinned participants.