Skip to content

Personas: rework architect — mol-first, drop standing agent (tk-ae96t.2) — supersedes #132#166

Open
zook-bot wants to merge 6 commits into
mainfrom
polecat/tk-ae96t.2
Open

Personas: rework architect — mol-first, drop standing agent (tk-ae96t.2) — supersedes #132#166
zook-bot wants to merge 6 commits into
mainfrom
polecat/tk-ae96t.2

Conversation

@zook-bot

Copy link
Copy Markdown
Contributor

Reworks the architect-persona deliverable per the operator's 06-17 review of #132 (28 inline comments) and the operator-confirmed direction. Supersedes #132 (bead tk-ae96t.2).

This is a fresh PR on polecat/tk-ae96t.2 rather than an in-place update of #132: the polecat work formula's submit gate requires the per-bead branch polecat/<bead-id>, so #132's polecat/tk-ae96t.1 head can't carry tk-ae96t.2's work. The diff is the complete reworked deliverable (it includes #132's commits + the rework), so #132 can be closed in favor of this.

Architectural changes (operator-confirmed)

  1. Decouple architect-design / architect-review — moved from agent-local agents/architect/skills/ to the generic top-level skills/. They are now ordinary city-wide skills, invocable as mol steps (or when the identity is worn), no longer bound to a standing agent. Resolves the SKILL.md disconnect ("method-skills ride with the standing agent, so a transient wearer brings the lens, not those skills" vs. a mol step that includes architect-review).
  2. Drop the standing architect agent — removed agents/architect/ (agent.toml, prompt.template.md, PROVENANCE.md) and the pack.toml [[named_session]]. No formula, order, keybinding, or city.toml import referenced it, so the removal is load-safe.
  3. Add the proof-point molformulas/mol-architect-review.toml runs architect-review as a mol step: the first proof the method works with no standing agent in the picture.

Resolution of #132 review comments

agents/architect/* — resolved structurally by removing the standing agent

  • agent.toml L6, L10, L12, L21 (comment bloat; "skeptical this should be in Gas City at all / should be rig-scoped, instantiated only for gc-toolkit; we don't know how it's used") → file removed; there is no standing instance to describe.
  • prompt.template.md L7, L14, L21, L31, L37, L47, L60 (unnecessary / duplicated identity & method detail that belongs in the skill, not the prompt) → file removed.
  • PROVENANCE.md L51 ("why put something in a document that is invalidated upon review and then needs to change?") → file removed (the agent it documented is gone).

docs/personas.md

  • L9 "are now settled" → removed; no status-meta (docs/* is authoritative by definition).
  • L23 "eg: architect-review" → the Methods bullet now uses the concrete architect-review example.
  • L49 "(red-green)" → removed; the section states the goal (a method available wherever the work is, without bloating every session), not specifics.
  • L59 multi-framework caveat → removed (we use the generic skills directory).
  • L64 persona↔bead / triage detail → removed from the Orchestration layer.
  • L83 "this sketch is now built…" → removed; the concrete instantiation now lives in a factual "In Gas City: the architect" section, not a status narrative.
  • L88 "Mechanics (settled)" → section replaced by a "Persona structure" table; no "settled" framing, no implication that part of the doc carries different weight.
  • L93 → rewritten as a persona-structure definition (table: path → what it is → what it does), far less prose.
  • L117 closing retrospective ("the build added one lesson worth keeping…") → removed.

skills/architect/SKILL.md

  • L3 description → dropped the "wear this to reason in its two modes" agent-choice framing and the "method-skills ride with the standing agent" claim; methods are now independent skills.
  • L8 → replaced the verbose, process-centric intro with a direct identity opener: "You are now the architect. What follows defines your identity as the architect."
  • L17 tone → reframed to shepherd/lead: guide, ensure consistency, help others see how their work fits the bigger architecture, lead where it's headed — not "ask more questions."
  • L22 "This is great" → "What I optimize for" kept verbatim.
  • L41, L71 ("same architectural issue around personas") → methods / engagement sections reworked: methods are ordinary skills (mol step or worn identity); a standing agent is an optional future, not the carrier of the methods.

pack.toml

  • L100 ("tempted to leave out the agent instance completely and focus on a mol that leverages the architect as the first proof point") → the architect [[named_session]] is removed; the architect is proven via mol-architect-review.

Reconciliation (not directly commented, but made consistent)

  • docs/roadmap.md — the "revived as a persona" entries no longer claim a standing agent ships; they describe the skills + the mol-step proof, with a standing agent deferred until drift-patrol / structural gating is actually needed.
  • README.md — persona index line: "process-skills" → "method-skills".

Out of scope (the host handles)

tk-ae96t.2

zook-bot added 3 commits June 23, 2026 03:40
…ttle mechanics (tk-ae96t.1)

Build the FIRST gc-toolkit persona — the architect — on the persona-as-skill
model, setting the convention every later persona follows. Supersedes the held
#123 (docs/personas.md) and #130 (mechanics findings); re-includes both since
neither is on main.

- Prior-art survey (specs/tk-ae96t.1/research/): BMAD-METHOD "Winston", Roo Code
  Architect mode, wshobson/agents, Martin Fowler — distilled into the architect.
- Persona: skills/architect (city-wide identity), agents/architect/skills/
  {architect-design,architect-review} (agent-local process-skills), and the
  agents/architect standing form (on_demand, dormant). pack.toml registers it.
- Path A realized natively: agent-local skills keep the methods out of plain
  workers by construction — the deprecated `skills:` preload + the un-authored
  `skillOverrides` trim are replaced. docs/personas.md "Mechanics" filled;
  "Three layers" reframed concept-first (operator inline comment on #123).

Held for operator review — sets the convention before later personas follow it.

Re-includes #123 (tk-oe8o0): docs/personas.md, README line, specs/tk-oe8o0/*.
Re-includes #130 (tk-ohrlc): specs/tk-ohrlc/*.
… shipped persona (PR#132)

Codex review of PR#132 (tk-ae96t.1) requested changes on two points:

1. skills/architect/SKILL.md (description, methods, 'how I engage') told a
   transient /architect wearer to engage architect-design/architect-review,
   but those are agent-local skills that materialize only into the standing
   architect agent. Narrow the identity skill and docs/personas.md so the
   transient path brings the architectural lens and reasons in the design/
   review modes directly; the packaged method-skills ride with the standing
   agent. (No promise of skills a plain session cannot see.)

2. docs/roadmap.md still said the architect was retired from core and
   agents/architect/ removed ('not a commitment to build'), contradicting
   this PR which re-adds the agent and registers it in pack.toml. Reframe the
   architect section, the Settled decision, and the Near-term retro note as:
   consult-model architect retired (2026-06-10), revived as a persona
   (2026-06-15, this PR). The consult-bead/concierge/consult-host machinery
   and the ingest/patrol formulas stay retired/unbuilt.
…decouple method-skills (tk-ae96t.2)

Rework of the architect-persona deliverable per the operator's 06-17 review of
PR #132 (28 inline comments) and the operator-confirmed direction. Supersedes #132.

Architectural changes (operator-confirmed):
- Decouple architect-design / architect-review: moved from agent-local
  agents/architect/skills/ to the generic top-level skills/ — now ordinary
  city-wide skills, invocable as mol steps, not bound to a standing agent.
- Drop the standing architect agent: removed agents/architect/ (agent.toml,
  prompt.template.md, PROVENANCE.md) and the pack.toml [[named_session]]. This
  resolves all agent.toml / prompt.template.md / PROVENANCE.md comments structurally.
- Add the proof-point mol: formulas/mol-architect-review.toml runs architect-review
  as a mol step — the first proof the method works with no standing agent.

Docs (operator review):
- skills/architect/SKILL.md: direct identity opener ("You are now the architect");
  shepherd/lead tone; methods framed as independent skills (not agent-local).
- docs/personas.md: de-editorialized (dropped "settled"/"now built" status-meta);
  replaced prose mechanics with a persona-structure table; dropped the obsolete
  multi-framework and persona<->bead/triage caveats; reframed methods as ordinary
  skills (progressive disclosure, not agent-local scoping).
- docs/roadmap.md, README.md: reconciled to the mol-first reality (no standing
  agent ships; the method is proven as a mol step).
@zook-bot
zook-bot force-pushed the polecat/tk-ae96t.2 branch from 2477f80 to 7afe984 Compare June 23, 2026 03:40

@zook-bot zook-bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking finding:

  • specs/tk-ae96t.1/README.md:37 still documents the old tk-ae96t.1 implementation as if it is what this PR lands: method skills under agents/architect/skills/, an agents/architect/{agent.toml,prompt.template.md,PROVENANCE.md} standing-agent form, and a pack.toml named-session registration. In this PR's final tree those paths are absent; the actual delivered shape is top-level skills/architect* plus mol-architect-review, with no standing architect agent. Because this README is newly added by the PR and docs/personas.md points readers at specs/tk-ae96t.1/ for the architect grounding, merging as-is would leave a repository record that contradicts the current persona contract and revives exactly the old shape the PR says it dropped. Please update this record to mark tk-ae96t.1 as superseded by tk-ae96t.2 and describe the final mol-first/top-level-skill shape, or clearly isolate the stale Path A details as historical pre-rework notes.

Validation: checked out PR #166 detached, parsed formulas/mol-architect-review.toml with tomllib, ran git diff --check origin/main...HEAD, and verified the claimed agents/architect paths are absent from the final tree.

Note: GitHub would not accept this as a formal REQUEST_CHANGES review because this bot account owns the PR branch, so I am posting it as a blocking review comment and routing the fix through the bead workflow.

…te stale Path A shape (tk-9nzuh)

Addresses codex blocking finding on PR#166. specs/tk-ae96t.1/README.md
documented the dropped Path A shape (standing agents/architect/ agent,
agent-local method-skills, pack.toml named session) as if it landed, while
docs/personas.md points readers here for the architect grounding — the final
tree has none of those paths.

- Frontmatter + a new top banner mark the record SUPERSEDED by tk-ae96t.2
  (PR#166) and state the shape that actually landed: top-level city-wide
  skills/architect{,-design,-review} + formulas/mol-architect-review.toml,
  no standing agent, no pack.toml session.
- "What landed where" heading annotated "(Path A — pre-rework)" with a
  Historical note, isolating the stale path list as pre-rework history.

@zook-bot zook-bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review after fix 60f8f9f: no blocking findings.

The previous blocker in specs/tk-ae96t.1/README.md is addressed. The file now marks tk-ae96t.1 as superseded by tk-ae96t.2, lists the final mol-first/top-level skill shape, and clearly fences the old agents/architect/... and pack.toml entries as Path A historical/pre-rework notes.

Validation:

  • checked PR head 60f8f9f against origin/main
  • confirmed agents/architect/ is absent from the final tree
  • parsed formulas/mol-architect-review.toml and pack.toml with python3/tomllib
  • ran git diff --check origin/main...HEAD

@zook-bot
zook-bot marked this pull request as ready for review June 23, 2026 03:58
…ointer to mol-first shape (tk-ae96t.2)

Operator RECONCILE follow-up to the codex blocker on PR#166. Commit 60f8f9f
marked specs/tk-ae96t.1/README.md superseded by tk-ae96t.2; this extends the same
doc-consistency sweep to the two sibling spec records and the docs/personas.md
grounding pointer the blocker called out. Docs only — no skills/, formulas/, or
SKILL.md touched.

- docs/personas.md: the grounding pointer now names specs/tk-ae96t.1/ as the Path A
  build record (superseded by tk-ae96t.2, kept for provenance), so a reader is not
  sent to a record of the dropped shape as if it were current.
- specs/tk-oe8o0/README.md: note isolating the one revised mechanism — process-skills
  "ride with the persona" (agent-local) -> tk-ae96t.2 placed the architect's
  method-skills top-level / city-wide. Design-session rationale kept.
- specs/tk-ohrlc/README.md: note that the open Path A/B/C runtime-form trade-off was
  resolved by tk-ae96t.2 (top-level method-skills + mol-architect-review, no standing
  agent). Mechanics findings kept (verified 2026-06-14).
@zook-bot
zook-bot marked this pull request as draft June 23, 2026 04:12

@zook-bot zook-bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking finding:

  • specs/tk-ae96t.1/research/architect-prior-art.md:12 still describes the architect persona as including skills/architect, skills/architect-design, skills/architect-review, and the agents/architect standing form, then says that shape "is built." The latest reconciliation fixed the top-level specs/tk-ae96t.1/README.md banner and the docs/personas.md pointer, but this newly added research index is the linked prior-art/distillation record under that same directory and has no superseded/Path A historical framing of its own. A reader following the record still lands on a current-tense statement that the absent standing-agent form exists, contradicting the final PR shape (skills/architect* + formulas/mol-architect-review.toml, no agents/architect/). Please either add the same tk-ae96t.2 supersession/historical framing to this index or rewrite the sentence so it names the final mol-first/top-level-skill shape.

Validation:

  • checked PR head e904bc5 against origin/main
  • confirmed the latest reconciliation commit updated docs/personas.md, specs/tk-oe8o0/README.md, and specs/tk-ohrlc/README.md
  • parsed formulas/mol-architect-review.toml and pack.toml with python3/tomllib
  • ran git diff --check origin/main...HEAD
  • gh pr checks 166 reports no checks on the branch

Note: GitHub would not accept this as a formal REQUEST_CHANGES review because this bot account owns the PR branch, so I am posting it as a blocking review comment and routing the fix through the bead workflow.

…l (codex finding, PR#166)

The research index still described the persona in present tense as including
the agents/architect standing form and said that shape 'is built'. Mirror the
already-approved README fix: add a tk-ae96t.2 supersession note to the
front-matter, a banner after the title, and rewrite the offending sentence to
name the final mol-first/top-level-skill shape (skills/architect[-design,-review]
+ formulas/mol-architect-review.toml, no agents/architect/ standing agent).
Surveys + distillation unchanged.

@zook-bot zook-bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review after fix dba41c2: no blocking findings.

The previous blocker in specs/tk-ae96t.1/research/architect-prior-art.md is addressed. The file now marks the prior-art index as superseded by tk-ae96t.2, frames Path A's standing architect agent / agent-local method-skills as historical, and names the final shipped shape as top-level city-wide skills/architect, skills/architect-design, skills/architect-review plus formulas/mol-architect-review.toml, with no agents/architect/ standing agent.

Additional checks:

  • sibling spec records and docs/personas.md point readers at the mol-first/top-level skill shape rather than the old Path A shape;
  • agents/architect is absent and pack.toml does not add an architect named session;
  • the new formula file is valid TOML with the expected three steps;
  • the PR head is fast-forwardable from current origin/main.

@zook-bot
zook-bot marked this pull request as ready for review June 23, 2026 05:23
zook-bot added a commit that referenced this pull request Jul 21, 2026
…one (tk-vpx62)

Second arm of tk-vpx62 (mayor scope extension, 2026-07-21). The first arm
handled a PR whose anchor is stranded; this one handles a PR whose anchor is
GONE.

Every close-on-land path — merge-skill.sh, this reconciler, the refinery patrol
— enumerates from the BEAD and reads its pr_number. Sound while the bead
outlives the PR, which close-on-land guarantees. But a PR whose bead is CLOSED
is not merely unhandled, it is unseen: no scan starts anywhere that reaches it,
so it never lands, never escalates, never times out. It does not read as broken,
it reads as absent. The pre-#163 close-on-publish model created that state by
design, and the 7 PRs it stranded (#171 #170 #166 #108 #88 #80 #77) sat
untouched for weeks — found only by a human cross-checking `gh pr list` against
the ledger by hand.

So reconcile from the other side too: enumerate open PRs, subtract every PR
number any LIVE bead references, report the remainder. Verified against the live
ledger: flags exactly those 7 and correctly excludes in-flight PR#195.

Detection and surfacing ONLY, per the mayor's scope note — it never merges,
closes, or reopens an anchorless PR. Disposition stays an operator call.

Convergence, since a patrol pass runs on every idle wake:
- Escalate once, bounded by an anchorless_flagged marker written to the closed
  bead BEFORE the mail (stamp-first, mirroring the merged path's close-first).
  A failed stamp means no bound, so it does not mail — a delayed escalation is
  recoverable, a mail storm is not.
- A PR with NO bead in any state is logged but never mailed: nothing durable
  exists to record that we already said it.
- A failed ledger read is empty, not "[]", and the scan fails CLOSED on it —
  treating "could not read" as "nothing is tracked" would flag every open PR at
  once.
- Anchor resolution picks the OLDEST bead carrying merge_result, so the operator
  is pointed at the bead that OPENED the PR rather than a review bead or a later
  "address findings" child (several closed beads routinely name one PR); the
  mail lists the whole set regardless.

Zero gating anchors is no longer an early exit — that was precisely the state
where this scan matters most (no live anchors WITH open PRs is the stranded
shape).

Tests: 24 new hermetic assertions (62 total, all pass); verified 13 of them FAIL
against the pre-arm script while all 38 pre-existing ones still pass. Sibling
suites green (merge-skill 36, one-anchor-per-pr 13, pre-open-resolve 16,
signoff-anchor-resolution 14, signoff-anchor-failclosed 14,
reconcile-graduated-convoys 14, reconcile-rig-checkouts 8, husk-guard 16).
bash -n + shellcheck clean at warning severity.
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