Files
clawmates/templates/teams/mobile.toml
T
Omar SobhandClaude Opus 5 4f4ce34203 fix(teams): the wrong repo path was in the TEAM templates too
The `/workspace/repo` guard was written on 2026-08-19 against `skills/`
only. The same wrong path had been sitting in four team templates the
whole time, and nothing looked.

`rust_sdlc` is the default team for five of the six workflow recipes. Its
CODER was told "your working directory is /workspace/repo. All edits
happen there." Its COMMITTER was told to `cd /workspace/repo`. The
platform mounts /mission/repo — `stamp_workspace_paths` pins it there.
Same for the frontend, three.js and mobile coders.

The guards now walk ONE corpus — skills, team templates and workflow
recipes together — because the rule is a property of what an agent is
TOLD, not of which file it was written in. A guard covering one corpus
and not the other reads exactly like a guard covering the problem.
Negative-controlled: widening it failed on all four templates before they
were fixed.

Two more defects in the same committer prompt, both found by reading it:

  - `git push` unconditionally, while the `workspace-repo-commit-protocol`
    skill bound to that same role says push only when the task says to,
    because most missions deliver by diffing the checkout. The role prompt
    and its own skill contradicted each other in one prompt.
  - `git commit -m "<INT-NN> <title>\n\n<rationale>"` — inside a
    double-quoted shell string `\n` is a literal backslash-n, so the
    "paragraph" was never on its own line.

And the committer now says what advances the mission loop: the marker in
the turn output, not the id in the commit subject.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018i9Ten1LU4jUr5d7TAWda9
2026-08-21 09:28:41 -07:00

68 lines
2.2 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
key = "mobile"
name = "Mobile"
description = "Expo + React Native for iOS/Android — camera, comms, networking, native modules."
stack = ["typescript", "react-native", "expo", "ios", "android"]
default_topology = "pipeline"
risk_profile = "coding_readwrite"
mcp_bundles = ["clawmates_door", "clawmates_skills"]
version = 1
[[roles]]
slot = "designer"
order_idx = 0
skills = ["decompose-int-items", "mobile-platform-conventions"]
system_prompt = """
You are the DESIGNER of a Mobile team.
For each INT item: define the screen's state model, navigation
integration, platform-specific behavior (safe-area on iOS, back-button
on Android), and any native-module permissions required.
"""
brain_seed = """
# Mobile design seed
- Safe-area padding is mandatory on every screen.
- Deep links go through the app's central router — never hand-crafted.
- Every permission prompt has a pre-prompt explaining WHY.
"""
[[roles]]
slot = "coder"
order_idx = 1
skills = ["expo-managed-vs-bare", "workspace-repo-commit-protocol", "int-xx-marker-protocol", "component-4-state-model", "rn-flashlist-perf"]
system_prompt = """
You are the CODER of a Mobile team.
Working directory /mission/repo. Prefer Expo's managed workflow;
justify any drop to bare workflow. All new native modules ship with
both iOS + Android implementations in the same PR.
"""
brain_seed = """
# RN memory seed
- Prefer FlashList over FlatList for anything > 20 items.
- Reanimated for anything animating > 3× per frame.
- No inline require() — dynamic imports break Metro's tree-shake.
"""
[[roles]]
slot = "tester"
order_idx = 2
skills = ["mobile-e2e-and-simulators", "tdd-red-green-refactor"]
system_prompt = """
You are the TESTER of a Mobile team.
Detox e2e on both platforms. Snapshot tests for critical layouts.
Run on both iPhone 15 Pro simulator + Pixel 8 emulator before signing
off.
"""
brain_seed = ""
[[roles]]
slot = "committer"
order_idx = 3
skills = ["workspace-repo-commit-protocol", "small-focused-commits"]
system_prompt = """
You are the COMMITTER. Only run on green tests both platforms.
Emit COMPLETED: INT-<NN>.
"""
brain_seed = ""