Skip to content

Personas: first architect persona (BMAD-grounded) on Path A — supersedes #123 & #130 (tk-ae96t.1)#132

Closed
zook-bot wants to merge 2 commits into
mainfrom
polecat/tk-ae96t.1
Closed

Personas: first architect persona (BMAD-grounded) on Path A — supersedes #123 & #130 (tk-ae96t.1)#132
zook-bot wants to merge 2 commits into
mainfrom
polecat/tk-ae96t.1

Conversation

@zook-bot

Copy link
Copy Markdown
Contributor

Supersedes #123 and #130. Per the operator decision on epic tk-ae96t
(2026-06-14), this is the ONE complete PR — research + model doc + first
implementation together. Neither held PR is on main; this PR re-includes
both
. Close #123 and #130 as superseded when this lands.

HELD for operator review. This is a strong first draft of the first
persona; it sets the convention every later persona follows, so the operator
ratifies it before merge. (Kept as a draft for that reason.)

What this does

Builds the first gc-toolkit persona — the architect — on the
persona-as-skill model (docs/personas.md), grounded in a live prior-art survey
and on Path A (persona = identity skill + process-skills that ride with the
persona; plain workers stay minimal).

1. Prior-art survey (specs/tk-ae96t.1/research/)

BMAD-METHOD's Architect ("Winston"), Roo Code's Architect mode, wshobson/agents'
backend-architect + ship-mate/architect, and Martin Fowler's "Who Needs an
Architect?" — distilled into seven traits the persona is built from. Every claim
is sourced.

2. The architect persona (framework-neutral content; packaging is Gas-City-specific)

  • skills/architect/SKILL.mdidentity skill (city-wide): the portable
    "wear the architect" stance; advisory owns docs/architecture.md; indexes its
    methods.
  • agents/architect/skills/architect-design/SKILL.mdprocess-skill
    (agent-local): settle structure — elicit first, pin only the invariants, record
    decisions + rationale.
  • agents/architect/skills/architect-review/SKILL.mdprocess-skill
    (agent-local): assess a change against the system's shape; hunt drift.
  • agents/architect/{agent.toml,prompt.template.md,PROVENANCE.md} +
    pack.toml — the standing-agent form (on_demand, dormant by default).

3. docs/personas.md (the post-implementation revisit)

"Mechanics (deferred)" filled from #130's findings and what the build
learned; "Three layers" reframed to be about the concept, not specific paths
(addresses the operator inline comment on #123 :56); the Example connected to
the now-built architect.

The key wiring decision (Path A, realized natively)

#130's mechanics answered scoping against Claude-native primitives
(skills: preload + skillOverrides). Building it surfaced that Gas City has
a better native primitive
, so the realization diverges deliberately:

  • skills: agent field is a deprecated tombstone (ignored; hard error v0.16);
  • Gas City does not author skillOverrides;
  • agent-local skills (agents/<persona>/skills/) materialize only into that
    agent's session — methods ride with the persona and stay out of plain workers
    by construction. The portable identity skill stays city-wide on purpose
    (the transient "assume the persona" entry point).

This deviation-from-prescription is folded back into docs/personas.md
"Mechanics" and detailed in specs/tk-ae96t.1/README.md.

One trade-off for the operator: the city-wide identity skill's description
sits in plain workers' context (one line — the cost of the assume-persona
affordance). To hide even that: make the identity agent-local too, or add a
skillOverrides entry (a committed/local .claude/settings step, since Gas
City doesn't author it).

Out of scope (follow-ups)

Rig-scoped architects across rigs via Gas City import (Layer 3); the autonomous
drift-patrol loop + architect-bead routing; the Layer-2 distribution generator;
later personas; gc.persona triage/stamp. docs/architecture.md is intentionally
not created here — the architect authors it when it first designs.

Epic: tk-ae96t · Bead: tk-ae96t.1

…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/*.

@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 review findings. GitHub will not let this account submit a formal REQUEST_CHANGES review because it authored the PR, but these should be treated as request-changes findings by the gc-toolkit review gate.

Findings:

  1. skills/architect/SKILL.md:43 and skills/architect/SKILL.md:46 tell a transient user of /architect to engage architect-design and architect-review, and docs/personas.md:110 documents that transient entry point. But the only copies of those process skills live under agents/architect/skills/, and agents/architect/agent.toml:10 through agents/architect/agent.toml:14 explicitly says they materialize only into the standing architect agent and never into plain workers. That means the main advertised transient path gives a normal session instructions to invoke skills it cannot see. Please either put the process skills on a discoverable surface for transient architect use, with whatever trim mechanism is chosen, or narrow the identity/docs so /architect does not promise unavailable methods.

  2. docs/roadmap.md:123 through docs/roadmap.md:135 still says the architect was retired from core, agents/architect/ has been removed, and the vision is not a commitment to build. This PR re-adds agents/architect/ and registers it in pack.toml, so the central roadmap now directly contradicts the shipped state. Please update or replace that section in the same PR.

Checks run locally:

  • git diff --check origin/main...HEAD
  • TOML parse for pack.toml and agents/architect/agent.toml
  • local Markdown link check over changed docs
  • frontmatter shape check over changed docs/skills
  • gh pr checks 132 --watch=false reports no checks

Note: I also ran gc doctor, but it validates the live city checkout under rigs/gc-toolkit, not this unmerged PR worktree; its stale-order failure is unrelated to this branch.

… 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.

@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.

Non-blocking re-review after b1072b1. Treat this as a review-gate approval/comment: I found no blocking findings.

The two prior blockers are addressed:

  1. The transient /architect path no longer promises unavailable agent-local method skills. skills/architect/SKILL.md now states that architect-design / architect-review materialize only in the standing architect agent and that a transient wearer brings the lens directly. docs/personas.md mirrors that model in the Mechanics section.
  2. docs/roadmap.md now distinguishes the retired consult-model architect from the revived 2026-06-15 persona implementation, and says the consult-bead / concierge / consult-host machinery remains retired.

Architecture review:

  • Shape touched: persona identity skill vs. standing agent boundary; agent-local method-skill scoping; roadmap state record.
  • Drift: none found. The docs and pack wiring now agree with the Gas City agent-local skill model.
  • Cost of future change: acceptable. The PR leaves cross-rig architects, drift patrol formulas, and persona triage/stamping as explicit follow-ups rather than baking them into this first persona.
  • Disposition: coherent.

Checks run locally:

  • git diff --check origin/main...HEAD
  • TOML parse for pack.toml and agents/architect/agent.toml
  • frontmatter shape check over changed docs/skills
  • local Markdown link check over changed docs
  • gh pr checks 132 --watch=false reports no checks

@zook-bot
zook-bot marked this pull request as ready for review June 15, 2026 07:41
# This is the AGENT form of the architect persona (the persona itself is the
# city-wide `architect` identity skill; see skills/architect/SKILL.md and
# docs/personas.md "Persona vs. agent"). Most architect use is transient — any
# session can wear the `architect` skill — so this agent exists only because the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Instead of enumerating the two places it exists, define the purpose for which it exists strategically. Otherwise this comment is sure to drift as we evolve and it's not the source of truth on what instances exist.

# two jobs that earn a standing instance do: PATROL for architectural drift and
# GATE/review structural changes.
#
# Path A, realized natively for Gas City: the architect's process-skills

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this the right place for this comment? This toml file doesn't even reference the skills themselves.

#
# Path A, realized natively for Gas City: the architect's process-skills
# (architect-design, architect-review) live agent-local under
# `agents/architect/skills/`. Gas City materializes agent-local skills only into

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

More garbage comment bloat trying to describe the persona process in a specific file.

# `skillOverrides`, so agent-local placement is the load-bearing mechanism here.
# (See specs/tk-ae96t.1/README.md and docs/personas.md "Mechanics".)
#
# Scope is city for this first build (gc-toolkit's own architect, sibling to

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah, I'm skeptical that this should be in Gas City at all. This feels like we're trying to do one specifically for gc-toolkit and just have it standing. Then it should be the rig scope is rig for gc-toolkit only, and we only instantiate it in that case. Plus, at this point, we honestly don't know how this is being used, do we?


You are the **architect** persona, instantiated as a standing instance. Most
architect work is transient — any session can wear the `architect` skill — so
you exist only for the two jobs that earn a standing, addressable owner:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not sure why any of this is necessary

Comment thread skills/architect/SKILL.md

I **hold the shape of the system** — its boundaries, the contracts between its
parts, who owns shared data, and the cost of future change. I am a collaborator,
not an oracle: I surface trade-offs rather than hand down verdicts, and my value

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Concerned about this overly leading towards more questions vs taking a stance. It should be more of a sheppard, you guide and ensure consistency.

Where "more towards questions" is useful is in getting others to see how their work fits in the bigger architecture. You help people see bigger than their own focus. And you lead where the architecture is headed.

Comment thread skills/architect/SKILL.md
*before and around* the code, raising everyone's ability to keep the system
coherent — not gatekeeping it.

## What I optimize for

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is great

Comment thread skills/architect/SKILL.md

## What I do — my methods

I work in two methods. Each is packaged as its own skill — **`architect-design`**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

See earlier comment, something is off.

Comment thread skills/architect/SKILL.md

- **Transiently:** wear this identity (`/architect`) in any session to bring the
architectural lens to the work at hand — reasoning in the design / review modes
directly — then release. The packaged `architect-design` / `architect-review`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same architectural issue around personas

Comment thread pack.toml
scope = "city"
mode = "always"

# architect — the first persona (epic tk-ae96t), instantiated as a standing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'm tempted to leave out the agent instance completely and focus on having some mol that leverages the architect as the first proof point.

@zook-bot

Copy link
Copy Markdown
Contributor Author

Superseded by #166 (bead tk-ae96t.2), which reworks this deliverable per your 06-17 review — mol-first: drops the standing architect agent, decouples architect-design/architect-review into top-level skills/ (invocable as mol steps), adds the mol-architect-review proof-point, and tightens docs/personas.md + skills/architect/SKILL.md. #166's description maps each of your 28 inline comments here to its resolution. This PR can be closed in favor of #166.

@zook-bot

Copy link
Copy Markdown
Contributor Author

Superseded by #166 (bead tk-ae96t.2), the operator-confirmed mol-first rework: architect-design/architect-review become top-level skills invocable as mol steps (formulas/mol-architect-review.toml), with no standing architect agent. #166 is a clean reimplementation from main rather than a continuation of this branch; closing this in its favor. Your 28 review comments are mapped to their resolutions in #166's description.

@zook-bot zook-bot closed this Jun 23, 2026
zook-bot added a commit that referenced this pull request Jun 23, 2026
…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).
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.

2 participants