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:
@@ -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)",
|
||||
|
||||
+117
@@ -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 1–2 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 Q1–Q5 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.
|
||||
Reference in New Issue
Block a user