David/csells port fix#79
Open
davidmiuraactualai wants to merge 38 commits into
Open
Conversation
* Fix rigs * Update rigs
* Add sling * Cleanup * Remove old structure
* Add sling * Cleanup * Remove old structure * Add factory_activity_agent LLM skill for activity lifecycle and gc CLI operations Wraps scripts/factory_activity_agent.py and gc CLI v0.14.1 as a Claude Code / Codex skill with install/delete/status/doctor/diagnose commands, gc quick reference, activity map, troubleshooting guide, and installation instructions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Rename factory_activity_agent skill to factory-activity-agent Skill names may only contain lowercase letters, numbers, and hyphens. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add skill and factory_activity_agent --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move prerequisites baseline factory setup into activities/ following the same pattern as labs (L2) and workshops (W2). Copies all packs to B1/gascity/step_0/packs/. Preserves prerequisites/ and packs/ dirs. Also includes factory-activity-agent skill updates. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…44) * Fold PROMPT.md facilitation into session READMEs (#16) Removes the 9 sister PROMPT.md files (W1-W4, L1-L4, C1) and folds their facilitation guidance inline into each session's README as a new "Agent Facilitation Guide" section. The guide is additive — the step-by-step walkthrough is unchanged; the guide activates only when a participant asks an AI agent to walk them through the session. Each guide includes session-specific guiding questions keyed to pivotal steps, core concepts the participant must articulate before moving on, project-type tailoring, config-discipline checkpoints, and an exit-criteria check. Also updates stale PROMPT.md references in the root README, curriculum/README, and three spots inside W1/README. * Simplify Project Overview to 5 focused questions (#17) Rewrites the Project Overview template and the Fired Up Pizza reference overview around the five questions specified in the issue: what it does, goals & success criteria, scope & constraints, key roles & users, and domain context. Removes the Size/Type/Languages/Resource-Constraints section and the SDLC Service Integrations inventory from the template — those belong in the Project Manifest (structured) rather than the Overview (brief). The Overview is the first thing a participant writes, so less scaffolding means more energy left for actual thinking. * Add Community & Support section with Slack links (#19) Points participants to the Actual AI User Community Slack workspace and the #sfi-help-desk channel for real-time curriculum support. Placed near the top of the README so participants see it when they hit a blocker, not buried at the bottom. * Consolidate prerequisites and system requirements in README (#20, #26) Resolves #20: makes prerequisites and quickstart easier to find — System Requirements (OS, CLI coding agents) are spelled out on the main README, and the README now links directly to the Gas City Installation Guide and the in-repo Quickstart. Resolves #26: removes the separate installation.md in favor of the single Gas City Installation Guide link, and eliminates the duplicate my-factory/PROJECT_MANIFEST.md (the template in curriculum/ is the source of truth). Also moves PROJECT_OVERVIEW_TEMPLATE.md to the repo root for discoverability and trims the README's Integrations / Getting Started tails into a concise "Next Steps" pointer to W1. * Interleave Agent Guide callouts with participant steps Replaces the standalone "Agent Facilitation Guide" section at the top of each session README with inline "> **Agent Guide:** ..." callouts placed at the steps they apply to. Each README now has: - A short preamble telling an agent to look for the inline callouts. - Agent Guide callouts at pivotal steps — guiding questions to ask, anti-patterns to flag, config-discipline checkpoints. - A "Concept Check" block just before the Exit Criteria with the core ideas the participant must articulate before moving on. Brittle "Before Step 2.1" cross-references are gone; each guide now lives next to the step it modifies. A solo participant can ignore the callouts; an agent walking the README gets the right prompt at the right moment. Covers W1–W4, L1–L4, C1. Also updates the 3 outward-facing pointers (root README, curriculum/README, W1's "Using Your Local Agent" section) to describe the new shape.
* Add skill install instructions * add start here
Fills in the previously-empty "Scrolling in a tmux session acts as mousekey input" section with a prose explanation of the alternate screen buffer root cause, an annotated screenshot of Terminal's Profiles -> Keyboard pane with the "Scroll alternate screen" checkbox highlighted, and the step-by-step fix. Refs: sfi-yke
* Order agents * Prep w3 * Order agents 2 * Update w3 * scope improver, fixes * Works * feat: bake actual-skill into designer & improver packs, fix --no-tailor - Vendor actual-skill (SKILL.md + references + scripts) into designer and improver pack overlays - Add actual-adr-sync formula step to mol-design-cycle (after a11y-check) and mol-feedback-harvest (after propose) - Fix architect's broken actual-adr-sync step: add --no-tailor flag to all actual adr-bot commands (claude-cli runner hangs inside agent sessions) - Update designer, improver, and architect prompt templates with actual-skill section and --no-tailor instructions - Add actual CLI warning to designer and improver doctor checks - Update AGENT_PACK.md to reflect 5 packs vendoring the skill Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: make actual-adr-sync MANDATORY in all agent work loops The architect was silently skipping the ADR sync step because the prompt work loop said "if available, skip gracefully" — too soft. Changed all three prompts (architect, designer, improver) to use "MANDATORY" language with explicit bash commands inline, matching the formula step's enforcement level. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Use mail send * Fix install remove session cleanup and bead cleanup * fix: remove redundant gc restart that causes config-drift The install script ran gc start then gc restart back-to-back. gc restart does unregister/register which changes the config hash, immediately draining sessions that gc start just spawned. Now uses gc stop → gc start only. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Rename needs-plan label to needs-pm in W3 PM pack The PM routing label now follows the agent-naming convention used by other packs (needs-design, needs-architecture, etc.) — identifying the target agent rather than the action. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add W3 Fired Up Pizza project manifest Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add W1 * add w1 --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Update instructions * Update instructions * Update instructions
* Fix W1 city.toml: add command to providers.claude so claude-personal2 is used
The workspace-level start_command escape hatch in gc is only reached when
no provider name is resolved. Since provider = "claude" was already set,
start_command = "claude-personal2" was silently ignored at runtime. The
fix is to set command = "claude-personal2" inside [providers.claude] so
the resolved provider spec points to the correct binary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add supervisor agents (deacon/witness) and fix worker pool config for W1 factory
- Port gastown deacon (city-scoped) and witness (rig-scoped) as supervisor pack
with named_session mode=always so they stay alive to route work
- Add deacon routing table: dispatches labelled beads via gc sling to correct agent
- Add witness orphan recovery: resets in_progress beads with no active session
- Add mol-deacon-patrol and mol-witness-patrol formulas
- Fix all 9 worker packs: min_active_sessions 1→0, max_active_sessions 2→1
(with min=1, gc reconciler won't inject formulas via order gate)
- Add work_query per agent so gc hook --inject finds the right beads by label
- Include supervisor pack in all/pack.toml
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix work_query overrides and deacon template vars
- Remove work_query overrides from 7 worker packs: label-based queries
break formula wisp pickup; default gc.routed_to query is correct
- Fix deacon prompt: city-scoped agent has no .RigName; discover rig
dynamically via gc config at runtime instead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add named_session on_demand to worker agents to enable auto-start
Pool agents with min_active_sessions=0 require scale_check to create new
sessions; work_query only wakes existing sessions. Named sessions with
mode=on_demand auto-create when work_query detects pending work (via
gc.routed_to metadata matching). This is the correct pattern for
on-demand singleton agents that self-start when sling routes them work.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix W1 factory agent wakeup: work_query, order gates, supervisor, deployer
- Add work_query to all 8 worker agent named_sessions so on_demand sessions
auto-start when labeled beads exist in the rig db (gc bd --rig {{.Rig}} list)
- Fix order gate conditions: replace bd ready | grep -q . (always true) with
rig-aware check using $GC_RIG env var and jq -e 'length > 0'
- Set min_active_sessions=0 on all worker agents
- Port deacon+witness supervisor pattern from gastown to W1
- Add needs-deploy route to deacon patrol; fix flood-sling with --no-assignee
filter and --assignee post-sling to prevent re-dispatch
- Add deployer pack with complete agent config, order gate, and 3-step formula
- Fix factory_activity_agent.py initial bead: use gc bd --rig create --label
instead of gc sling (sling has no --label flag)
- Fix START_HERE.md send-task command to use gc bd --rig create --label
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix planner handoff: make needs-architecture mandatory, no skipping to pm
The planner was routing directly to pm for 'simple' tasks due to 'and/or'
language in the handoff step. Every task must go through architect — the
architect decides all downstream routing, not the planner.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Enforce architect→designer→pm routing: no skipping stages
Architect handoff: always routes to needs-design, never needs-pm.
Routing rule added explicitly — architect owns architecture only.
Designer formula: add triage step as first step to assess whether
UI/UX design is actually needed.
- No design needed: fast-path directly to needs-pm child bead + close root
- Design needed: proceed through wireframe/a11y, then create needs-pm
child beads (not relabel root) for resulting implementation work
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add mol-tdd-build formula: polecat pattern + red/green TDD for W1 builder
- New mol-tdd-build.formula.toml: 7-step formula (load-context,
workspace-setup, preflight, red, green, self-review, submit-and-exit)
- Worktree isolation + feature branch per task (builder/<bead-id>)
- Hard gates: RED must fail, GREEN must pass before proceeding
- Rejection-aware resume via metadata.work_dir/branch
- gc runtime drain-ack self-terminates after submit
- Deacon route-ready-to-build now uses --on mol-tdd-build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix mol-deacon-patrol schema and installer custom type registration
- mol-deacon-patrol.formula.toml: name→formula, prompt→description,
add title to all steps, add version=1 (deacon had to self-fix at runtime)
- factory_activity_agent.py: replace manual convoy patch with gc doctor --fix
to register all 11 required custom types (molecule, session, convoy, etc.)
Missing types blocked on_demand session creation after install
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Set default claude:
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix W1 city.toml: add command to providers.claude so claude-personal2 is used
The workspace-level start_command escape hatch in gc is only reached when
no provider name is resolved. Since provider = "claude" was already set,
start_command = "claude-personal2" was silently ignored at runtime. The
fix is to set command = "claude-personal2" inside [providers.claude] so
the resolved provider spec points to the correct binary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add supervisor agents (deacon/witness) and fix worker pool config for W1 factory
- Port gastown deacon (city-scoped) and witness (rig-scoped) as supervisor pack
with named_session mode=always so they stay alive to route work
- Add deacon routing table: dispatches labelled beads via gc sling to correct agent
- Add witness orphan recovery: resets in_progress beads with no active session
- Add mol-deacon-patrol and mol-witness-patrol formulas
- Fix all 9 worker packs: min_active_sessions 1→0, max_active_sessions 2→1
(with min=1, gc reconciler won't inject formulas via order gate)
- Add work_query per agent so gc hook --inject finds the right beads by label
- Include supervisor pack in all/pack.toml
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix work_query overrides and deacon template vars
- Remove work_query overrides from 7 worker packs: label-based queries
break formula wisp pickup; default gc.routed_to query is correct
- Fix deacon prompt: city-scoped agent has no .RigName; discover rig
dynamically via gc config at runtime instead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add named_session on_demand to worker agents to enable auto-start
Pool agents with min_active_sessions=0 require scale_check to create new
sessions; work_query only wakes existing sessions. Named sessions with
mode=on_demand auto-create when work_query detects pending work (via
gc.routed_to metadata matching). This is the correct pattern for
on-demand singleton agents that self-start when sling routes them work.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix W1 factory agent wakeup: work_query, order gates, supervisor, deployer
- Add work_query to all 8 worker agent named_sessions so on_demand sessions
auto-start when labeled beads exist in the rig db (gc bd --rig {{.Rig}} list)
- Fix order gate conditions: replace bd ready | grep -q . (always true) with
rig-aware check using $GC_RIG env var and jq -e 'length > 0'
- Set min_active_sessions=0 on all worker agents
- Port deacon+witness supervisor pattern from gastown to W1
- Add needs-deploy route to deacon patrol; fix flood-sling with --no-assignee
filter and --assignee post-sling to prevent re-dispatch
- Add deployer pack with complete agent config, order gate, and 3-step formula
- Fix factory_activity_agent.py initial bead: use gc bd --rig create --label
instead of gc sling (sling has no --label flag)
- Fix START_HERE.md send-task command to use gc bd --rig create --label
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix planner handoff: make needs-architecture mandatory, no skipping to pm
The planner was routing directly to pm for 'simple' tasks due to 'and/or'
language in the handoff step. Every task must go through architect — the
architect decides all downstream routing, not the planner.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Enforce architect→designer→pm routing: no skipping stages
Architect handoff: always routes to needs-design, never needs-pm.
Routing rule added explicitly — architect owns architecture only.
Designer formula: add triage step as first step to assess whether
UI/UX design is actually needed.
- No design needed: fast-path directly to needs-pm child bead + close root
- Design needed: proceed through wireframe/a11y, then create needs-pm
child beads (not relabel root) for resulting implementation work
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add mol-tdd-build formula: polecat pattern + red/green TDD for W1 builder
- New mol-tdd-build.formula.toml: 7-step formula (load-context,
workspace-setup, preflight, red, green, self-review, submit-and-exit)
- Worktree isolation + feature branch per task (builder/<bead-id>)
- Hard gates: RED must fail, GREEN must pass before proceeding
- Rejection-aware resume via metadata.work_dir/branch
- gc runtime drain-ack self-terminates after submit
- Deacon route-ready-to-build now uses --on mol-tdd-build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix mol-deacon-patrol schema and installer custom type registration
- mol-deacon-patrol.formula.toml: name→formula, prompt→description,
add title to all steps, add version=1 (deacon had to self-fix at runtime)
- factory_activity_agent.py: replace manual convoy patch with gc doctor --fix
to register all 11 required custom types (molecule, session, convoy, etc.)
Missing types blocked on_demand session creation after install
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Set default claude:
* Upgrade W1 architect to produce formal architecture documents
- Expand design step template to 12 sections: requirements, constraints,
framework, libraries, erDiagram data model, flowchart use cases,
autonumber sequence diagrams with per-step prose, security, integrations,
risks, and trade-offs
- All Mermaid diagrams use VS Code-renderable syntax; sequence diagrams
require autonumber and a numbered prose legend after each diagram
- Update architect.md.tmpl work loop to enumerate all new sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix W1 architect handoff: route to designer, use full agent path
- Change needs-pm → needs-design so architect routes to designer
(matching the mol-architect-review formula's ROUTING RULE)
- Change gc.routed_to to /designer
- Use {{.Rig}}/designer (full path) instead of bare "pm" to avoid
ambiguous ID errors when gc mail send resolves the recipient
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Wire W1 builder to mol-tdd-build (polecat pattern)
- Change builder intake order gate from mol-build-from-spec → mol-tdd-build
- Add explicit instruction in builder prompt: always use mol-tdd-build,
pour one if no molecule is present on the bead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Complete workshop v2 with agent hook
* Add .gitkeep overlay for all agents in packs
* Reorganize troubleshooting and polish curriculum presentation
Troubleshooting is now a topic-scoped directory so a facilitator can
share a single link when a participant says "I'm having trouble with X":
- Split TROUBLESHOOTING.md into troubleshooting/{README,gas-city,
cli-coding-agents,beads,tmux}.md. Each issue is written
Symptom / Cause / Fix under a stable ## Issue: heading so anchors
like gas-city.md#issue-gc-dashboard-serve-fails-with-address-already-in-use
are easy to link.
- cli-coding-agents.md covers both slash-command/skill-install failures
and the multi-account workflow from prerequisites/coding_agent_switcher.md,
with API billing (ANTHROPIC_API_KEY / OPENAI_API_KEY / GEMINI_API_KEY)
as the recommended quota-exhaustion fix and aisw account switching as
the subscription-only alternative.
- Repo README.md and W1 guide repointed at the new directory.
Curriculum polish:
- Extracted the factory-activity-agent installation + command reference
out of W1 into docs/factory-activity-agent-commands.md so every W/L
session can link to one canonical page.
- W1 guide: rewrote the session opener as an Overview, gave each Part
a Goal line, and delegated the command reference to docs/.
- L1-L4, W2-W4, C1 READMEs: removed "Agent Guide" sidebars and renamed
"Inline Insight" to "Insight" for consistency; trimmed a few insight
boxes whose content had aged out.
- Repo README.md: promoted the Improver to a full 7th-role row in the
agent table rather than a trailing sidebar note.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Update top-level goals for curriculum and add ticket import script for W1
* Update goals on all curriculum guides, and add docs/ copying to installation script
* Update WORKSHOP_1_GUIDE.md language and steps
* Improve language around beads and its use as the task layer
* Be consistent about + and & usage
* Update W1 and perform some repo cleanup
* Update time estimates to more precise figures
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Add Excalidraw MCP integration to W1 designer agent
Replaces ASCII art wireframes with visual Excalidraw diagrams in the W1
designer pack. Adds excalidraw-mcp server via overlay .mcp.json, an
excalidraw-diagrams skill, updated prompt/formula, prerequisites doc,
doctor checks, and a TDD test suite (11 tests, all green).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix Excalidraw binary names and verification
- excalidraw-export-cli installs as `excalidraw-export` (not `excalidraw-export-cli`)
- excalidraw-mcp hangs on --version (MCP stdio server); use command -v to verify
- No Homebrew formula; npm is the only install method
- Update all references: settings.json permission, skill, formula, prompt, doctor, tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix W1 agent gates and named session demand detection
Three bugs prevented agents from auto-starting when labeled beads appeared:
1. order.toml check: `$GC_RIG` is not injected by gc into gate condition
subprocess envs, and `{{.Rig}}` is not template-interpolated in check
commands. Replaced both with the hardcoded rig name `w1-project`.
2. named_session work_query: `work_query` was in the [[named_session]] TOML
block, but NamedSession struct has no such field — silently ignored by the
TOML parser. Moved to [[agent]] block where Agent.WorkQuery is defined.
3. work_query format: the jq-pipe-to-/dev/null pattern (`| jq -e 'length > 0'
> /dev/null 2>&1`) suppresses all stdout. The reconciler's
workQueryHasReadyWork() needs the raw JSON array from bd, not an exit code.
Removed the jq pipe so bd --json output flows to stdout.
Also switches city.toml provider command from `claude` to `claude-personal2`
to match the user's multi-account setup.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Set default claude
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add codex provider support to W1 gascity packs (TDD) - Register [providers.codex] in city.toml with command="codex" and default options (permission_mode=unrestricted, effort=xhigh) - Add workspace.install_agent_hooks=["claude","codex"] so hook files are installed for both providers without per-pack changes - Remove claude-specific option_defaults.model="opus" from architect agent; model defaults now live in [providers.*] in city.toml - Add tests/test_codex_support.py (6 tests, red/green TDD) Switching the factory to codex is now one line in city.toml: provider = "claude" → provider = "codex" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add city.toml config --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Remove Agent Guide callouts from curriculum guides
Strips the `> **Agent Guide:** ...` blockquote callouts from all workshop, lab, and capstone guides so the participant-facing material reads without agent-facing coaching asides.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Rewrite W2–W4, L1–L4, C1 guides + seed W1 reference source
- Install script (scripts/factory_activity_agent.py): on W1 install, seed
the project workspace with the reference Fired Up Pizza source
scaffold (index.html, package.json, tsconfig.json, src/) so the
factory plans and builds against an existing codebase. Factory output
artifacts (work-packages/, docs/adr/, design/, review-reports/,
release-gates/, feedback-loops/, DECISIONS.md, etc.) are intentionally
not seeded.
- W1 agent prompts (planner, architect, designer, builder, reviewer):
add an "Existing source code" context block describing the seeded
Vite+React+TypeScript scaffold.
- Curriculum guides (W2, W3, W4, L1, L2, L3, L4, C1) rewritten in the
W1 style:
* Framework-agnostic goals and concepts; framework-specific commands
(`gc`, `bd`) appear only when acting through the framework.
* "Session workspace note" replaced by "Overview"; "Prerequisites"
sections removed.
* Fired Up Pizza references compressed to a single linked `>` block
per guide.
* Each session uses `/factory-activity-agent install <X>` and
carries forward the prior session's artifacts (PROJECT_MANIFEST,
factory-pipeline, iteration log, work-packages/, docs/adr/, etc.).
* New content per the session's new goal/deliverable:
- W2: factory-pipeline.md mapping individual AI workflow onto the
pipeline
- W3: four coordination channels (mail, work items, files, external
services) + install a new channel
- W4: improvement-criteria.md and one demonstrated improvement loop
- L1: PROJECT_MANIFEST authoring + Planner input-source wiring
- L2: Planner + Architect with one skill/CLI capability each
- L3: Designer + Coder with one MCP each
- L4: Reviewer + Deployer wired to PROJECT_MANIFEST.md Review
Standards and Release Criteria
- C1: end-to-end run on an unfamiliar feature with a run report
audited against W4 criteria
* Architecture diagrams refreshed per session.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix carry-forward command ordering + add mkdir -p guards
Problems surfaced by a cross-session trace:
- Individual `cp file1 file2` commands ran before any `mkdir -p docs`
on the destination, and only W1 and W3 install scripts seed `docs/`.
W4, L1, L3, L4, C1 were left without a docs/ directory at the time
the first cp ran.
- L1's Option B (`rm -rf l1-project && ln -s your-repo l1-project`)
destroyed the install scaffold and left the rig registration pointing
at a nonexistent path. Removed.
- W2's `factory-pipeline.md` was written at workspace root while every
later session read from `docs/factory-pipeline.md`. Normalised to
`docs/factory-pipeline.md`.
Fixes:
- W2: `mkdir -p docs && touch docs/factory-pipeline.md`; all in-doc
references updated to `docs/factory-pipeline.md`.
- L1: removed Option B; added `mkdir -p docs` guards before copies.
- W3: `mkdir -p w3-project/docs` guard (install seeds it today, but
the guard makes the command robust).
- L2: reordered so bulk `cp -R l1-project/. l2-project/` runs first
(creates the full tree), then `mkdir -p` + overlay copies of
`coordination-channels.md` and `PROJECT_MANIFEST.md` from W3.
- L3 & L4: reduced to a single bulk `cp -R <prev>/. <this>/`. The
bulk copy brings every artifact forward (manifest, work-packages,
ADRs, design, iteration log, factory-pipeline, coordination-channels,
source) without ordering hazards.
- W4: `mkdir -p w4-project/docs` before individual copies of
`factory-iterations.md` and `PROJECT_MANIFEST.md`.
- C1: bulk copy first, then `mkdir -p c1-project/docs` + overlay copy
of `improvement-criteria.md` from W4.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Update all architecture diagrams
* Move carry-forward into the install script
Participants no longer need to run mkdir/cp/rsync by hand between
sessions. `/factory-activity-agent install <X>` now auto-copies the
relevant artifacts from prior sessions' project workspaces into the
one being installed.
Install script:
- Added CARRY_FORWARD rules mapping each activity to a list of
(prior_activity, src_rel, dst_rel) tuples. Empty or trailing-slash
src_rel means "copy as a directory" (rsync -a src/ dst/); otherwise
it's a file copy with a `mkdir -p` guard on the destination parent.
- Added carry_forward() that runs the rules. Missing prior-session
workspaces are skipped with a note rather than failing (participants
may install out of order).
- Wired into install() between README generation and the sling setup
task, so the prior session's content (including its README) wins.
Rules per session:
L1 ← W2 docs/factory-pipeline.md
W3 ← L1 docs/PROJECT_MANIFEST.md, docs/factory-pipeline.md
L2 ← L1 bulk
← W3 docs/coordination-channels.md, docs/PROJECT_MANIFEST.md
L3 ← L2 bulk
L4 ← L3 bulk
W4 ← L4 docs/factory-iterations.md, docs/PROJECT_MANIFEST.md,
review-reports/, release-gates/
C1 ← L4 bulk
← W4 docs/improvement-criteria.md
Guide updates:
- Replaced every manual Step-2 "Carry forward" block with a short
"Confirm X was carried forward" note + an `ls` spot-check.
- C1 gains an explicit Step 3 for mirroring pack customization from
the L4 *factory* directory (pack prompts live in the factory dir,
not the project dir, so the carry-forward doesn't cover them).
- L1 keeps its manual `cp -R ~/path/to/your-repo/. l1-project/` step
— the install can't know where the participant's repo lives.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Seed W4/L1/L3/L4/C1 with W1's pack set so install works for every session
Only W1, W2, W3, L2 shipped with `activities/<X>/gascity/step_0/packs/`,
so `/factory-activity-agent install <X>` fails fast with `Error: Activity
<X> has no gascity packs at ...` for the remaining five sessions. The
new guides all assume install works, so this gap blocks the full
install-per-session flow.
Option A: seed each missing session with a copy of W1's complete pack
set (planner, architect, designer, builder, reviewer, deployer,
validator, improver, supervisor, pm, all) as a generic starting point.
Each session can customise its packs later without pulling a separate
infrastructure change.
Verified by running `python3 scripts/factory_activity_agent.py install
<X> --mode dry-run` for every session — all nine now run to completion
and fire their carry-forward rules.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Reset the title, goals and deliverables back to pre-gen state
* Update brew extract command to include --force
* Updates to WORKSHOP_3_GUIDE.md
* git checkout origin/main -- activities
* Revert changes to factory_activity_agent.py
* Final top-level README updates
* Update slack community section
* Update README cover and shift images/ items
* Update README title
* six-agent -> 6-agent, plus remove README contents for reference project
* Update README activity guide links
* Make C1 unambiguous (remove L5 refs)
* Move PROJECT_MANIFEST_TEMPLATE.md
* Update WORKSHOP_1_GUIDE.md
* WIP W2 updates
* Update skill script to install guides one level higher
* Update WORKSHOP_2_GUIDE.md
* Update LAB_1_GUIDE.md
* Update W2, W3, and L2
* Add runaway loop image
* Add UNDER CONSTRUCTION notes for unfinished sections
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Delete the self-referential symlink at skills/factory-activity-agent/factory-activity-agent which pointed to /Users/austin/... and is unused by any script or doc. Replace the leaked ~/Users/austin~/Projects/... path in WORKSHOP_3_GUIDE.md:235 with the standard ~/Projects/factory/... path used elsewhere in the guide. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…#73) * Update curriculum with new folder, updated guidance, simpler exit criteria, and back-up project load steps * Remove refs to folder
* Fix rig beads DB lost after install due to redundant factory restart gc rig add stores the rig DB in the rig's .beads/embeddeddolt/ but the city's Dolt server data_dir only covers the city's .beads/dolt/. gc rig add's internal restart registers both. The subsequent explicit gc stop/start in Step 5 regenerated the server config with only the city data_dir, wiping the rig DB (lp/wp/etc) and causing rig:beads failures on gc doctor. Fix: move close_stale_sessions before gc rig add, remove the explicit gc stop/start (gc rig add's own restart is the last one), and wait for the reconciler after rig add instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix beads prefix collisions between same-category activities gc strips digits when deriving the beads prefix from directory names: 'w1-gc-factory' → 'wgf', 'w2-gc-factory' → 'wgf'. When W1 and W2 run simultaneously, they share the same Dolt database name causing an exclusive-lock conflict — the second factory's server can't load its databases and the install fails at the sling step. Fix: after gc stop (Step 3), rename the city Dolt DB dir and patch config.yaml from the auto-generated prefix to the activity-unique prefix (e.g. 'wgf' → 'w2f', 'lgf' → 'l2f'). For the rig, pre-seed the rig's .beads/config.yaml before gc rig add so bd init creates the DB under the right name (e.g. 'w2p' instead of 'wp'). A fallback rename + restart fires only when gc rig add ignores the pre-seeded config. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Simplify rig prefix fix: use gc rig add --prefix instead of pre-seed gc rig add supports --prefix to set the beads prefix directly. Use it instead of pre-seeding .beads/config.yaml and falling back to a rename. The pre-seed approach caused gc rig add to detect the existing config and refuse to run without the --prefix flag anyway, so passing --prefix is both simpler and more correct. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Add labs --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…#74) * Add C1 reference c1-run-report.md and align curriculum guide pointers - Adds reference-project/fired-up-pizza/docs/c1-run-report.md as the worked example C1 participants will mirror — covers feature pick, run summary, intervention log, audit against all six W4 improvement criteria, one follow-up loop, and the ship/loop/retire decision. - Extends factory-iterations.md with the two C1-run interventions, defers the previously-queued Loop 2 Planner lever in favour of the C1-surfaced Criterion 2 lever, and refreshes the patterns-surfaced section with the new data. - Updates README.md, CAPSTONE_1_GUIDE.md, and WORKSHOP_4_GUIDE.md to point at the new c1-run-report.md and the existing factory-iterations.md. - Cleans up the WORKSHOP_2/3/4 reference snippets so each one describes the doc it actually references, and fixes a broken W1 → W2 link (was WORKSHOP_1_GUIDE.md, now WORKSHOP_2_GUIDE.md). - Removes the stale "Bring to next session" carry-forward checklists from L3 and L4 (the per-session install steps already pull these in). * Align W4/C1 ownership of factory-iterations.md and c1-run-report.md Makes it unambiguous across the README Session Map, each guide's Fired-Up-Pizza reference block, deliverables list, and exit criteria that: - factory-iterations.md is authored in W4 (Part 4 Step 3 is the first instruction that writes to it). - c1-run-report.md is authored in C1 (Part 4). C1 appends rows to factory-iterations.md but does not author it. Changes: - W4 title deliverable + ## Deliverable section now list factory-iterations.md as a first-class W4 deliverable (was missing). - W4 Part 1 expected-docs list no longer claims factory-iterations.md is already present — it is created later in Part 4 of the same guide. - C1 title deliverable clarifies that factory-iterations.md is extended here but authored in W4; adds "(from W4)" next to it in C1 Part 1's expected-docs list to match the existing "(from W4)" on improvement-criteria.md. - L3 and L4 expected-docs lists no longer claim factory-iterations.md is carried in — it is authored in W4, which happens after both labs. - README Backup Project Setup section now lists c1-run-report.md in the reference set (it is newly present in the reference project).
Prompt templates were querying beads with --assignee="\$GC_SESSION_NAME" (e.g. w1-project--builder), but beads are assigned using the slash- qualified alias (e.g. w1-project/builder). Tier 1 and Tier 2 lookups always missed pre-assigned and in-progress work as a result. Fixes all 63 affected templates across W1-W4, L1-L4, and C1. The proposed patch in the bug report was correct but incomplete -- it omitted L3 (5 files), L4 (8 files), and C1 (8 files). Each template now computes GC_WORK_ASSIGNEE from GC_ALIAS when set, falling back to converting the session-safe -- form back to /. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Force-tracked despite .gitignore since this overlay ships Claude Code settings and skills as part of the pack. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.