role-os 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE +21 -0
- package/README.es.md +160 -0
- package/README.fr.md +160 -0
- package/README.hi.md +160 -0
- package/README.it.md +160 -0
- package/README.ja.md +160 -0
- package/README.md +160 -0
- package/README.pt-BR.md +160 -0
- package/README.zh.md +160 -0
- package/bin/roleos.mjs +90 -0
- package/package.json +41 -0
- package/src/fs-utils.mjs +60 -0
- package/src/init.mjs +36 -0
- package/src/packet.mjs +144 -0
- package/src/prompts.mjs +76 -0
- package/src/review.mjs +94 -0
- package/src/route.mjs +169 -0
- package/src/status.mjs +352 -0
- package/starter-pack/.claude/workflows/full-treatment.md +74 -0
- package/starter-pack/README.md +74 -0
- package/starter-pack/agents/core/critic-reviewer.md +39 -0
- package/starter-pack/agents/core/orchestrator.md +40 -0
- package/starter-pack/agents/core/product-strategist.md +40 -0
- package/starter-pack/agents/design/brand-guardian.md +41 -0
- package/starter-pack/agents/design/ui-designer.md +42 -0
- package/starter-pack/agents/engineering/backend-engineer.md +39 -0
- package/starter-pack/agents/engineering/dependency-auditor.md +40 -0
- package/starter-pack/agents/engineering/frontend-developer.md +40 -0
- package/starter-pack/agents/engineering/performance-engineer.md +42 -0
- package/starter-pack/agents/engineering/refactor-engineer.md +41 -0
- package/starter-pack/agents/engineering/security-reviewer.md +42 -0
- package/starter-pack/agents/engineering/test-engineer.md +38 -0
- package/starter-pack/agents/growth/community-manager.md +41 -0
- package/starter-pack/agents/growth/content-strategist.md +41 -0
- package/starter-pack/agents/growth/launch-strategist.md +42 -0
- package/starter-pack/agents/growth/support-triage-lead.md +41 -0
- package/starter-pack/agents/marketing/launch-copywriter.md +39 -0
- package/starter-pack/agents/product/feedback-synthesizer.md +39 -0
- package/starter-pack/agents/product/information-architect.md +40 -0
- package/starter-pack/agents/product/roadmap-prioritizer.md +41 -0
- package/starter-pack/agents/product/spec-writer.md +42 -0
- package/starter-pack/agents/research/competitive-analyst.md +40 -0
- package/starter-pack/agents/research/trend-researcher.md +40 -0
- package/starter-pack/agents/research/user-interview-synthesizer.md +41 -0
- package/starter-pack/agents/research/ux-researcher.md +40 -0
- package/starter-pack/agents/treatment/coverage-auditor.md +40 -0
- package/starter-pack/agents/treatment/deployment-verifier.md +41 -0
- package/starter-pack/agents/treatment/docs-architect.md +40 -0
- package/starter-pack/agents/treatment/metadata-curator.md +40 -0
- package/starter-pack/agents/treatment/release-engineer.md +43 -0
- package/starter-pack/agents/treatment/repo-researcher.md +40 -0
- package/starter-pack/agents/treatment/repo-translator.md +38 -0
- package/starter-pack/context/brand-rules.md +52 -0
- package/starter-pack/context/current-priorities.md +33 -0
- package/starter-pack/context/product-brief.md +47 -0
- package/starter-pack/context/repo-map.md +45 -0
- package/starter-pack/examples/feature-packet.md +39 -0
- package/starter-pack/examples/identity-packet.md +39 -0
- package/starter-pack/examples/integration-packet.md +39 -0
- package/starter-pack/handbook.md +67 -0
- package/starter-pack/policy/done-definition.md +15 -0
- package/starter-pack/policy/escalation-rules.md +20 -0
- package/starter-pack/policy/routing-rules.md +199 -0
- package/starter-pack/policy/tool-permissions.md +134 -0
- package/starter-pack/schemas/handoff.md +52 -0
- package/starter-pack/schemas/review-verdict.md +26 -0
- package/starter-pack/schemas/task-packet.md +44 -0
- package/starter-pack/workflows/fix-bug.md +18 -0
- package/starter-pack/workflows/launch-update.md +15 -0
- package/starter-pack/workflows/ship-feature.md +22 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Repo Researcher
|
|
2
|
+
|
|
3
|
+
## Mission
|
|
4
|
+
Map the live truth of a repository — structure, entrypoints, seams, build paths, and runtime shape — so downstream roles work from verified fact, not stale assumptions.
|
|
5
|
+
|
|
6
|
+
## Use When
|
|
7
|
+
- A full treatment needs current repo state
|
|
8
|
+
- A packet references files, modules, or paths that need verification
|
|
9
|
+
- Dependency checks require live repo inspection
|
|
10
|
+
- Architecture understanding is missing or outdated
|
|
11
|
+
|
|
12
|
+
## Do Not Use When
|
|
13
|
+
- Repo structure is already verified and recent
|
|
14
|
+
- The task is purely product/design with no repo dependency
|
|
15
|
+
- Someone already mapped the repo in this session
|
|
16
|
+
|
|
17
|
+
## Expected Inputs
|
|
18
|
+
- Repo URL or local path
|
|
19
|
+
- Prior repo-map if one exists
|
|
20
|
+
- Specific questions about structure or seams
|
|
21
|
+
|
|
22
|
+
## Required Output
|
|
23
|
+
- Verified directory structure (key paths only)
|
|
24
|
+
- Entrypoints and runtime shape
|
|
25
|
+
- Build/test/run commands (verified working)
|
|
26
|
+
- Key seams and architectural boundaries
|
|
27
|
+
- Missing or unexpected findings
|
|
28
|
+
- Confidence level per finding
|
|
29
|
+
|
|
30
|
+
## Quality Bar
|
|
31
|
+
- Every path and command verified live, not assumed
|
|
32
|
+
- Distinguish proven from assumed
|
|
33
|
+
- Flag stale prior knowledge explicitly
|
|
34
|
+
- Do not map exhaustively — map what matters
|
|
35
|
+
|
|
36
|
+
## Escalation Triggers
|
|
37
|
+
- Repo is inaccessible or in broken state
|
|
38
|
+
- Build/test commands fail
|
|
39
|
+
- Architecture contradicts documented assumptions
|
|
40
|
+
- Critical files referenced by other roles do not exist
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Repo Translator
|
|
2
|
+
|
|
3
|
+
## Mission
|
|
4
|
+
Translate documentation across languages and audiences faithfully, preserving technical accuracy and product voice without invention.
|
|
5
|
+
|
|
6
|
+
## Use When
|
|
7
|
+
- README or docs need translation to other languages
|
|
8
|
+
- Documentation needs adaptation for a different audience (developer vs user vs operator)
|
|
9
|
+
- Treatment Phase 1 hands off translation work
|
|
10
|
+
- Cross-audience documentation gaps exist
|
|
11
|
+
|
|
12
|
+
## Do Not Use When
|
|
13
|
+
- Source content is not yet finalized
|
|
14
|
+
- Translation would require inventing missing product claims
|
|
15
|
+
- The task is copywriting (use Launch Copywriter instead)
|
|
16
|
+
|
|
17
|
+
## Expected Inputs
|
|
18
|
+
- Finalized source document(s)
|
|
19
|
+
- Target languages or audiences
|
|
20
|
+
- Brand rules and terminology constraints
|
|
21
|
+
- Translation tooling instructions (e.g., polyglot-mcp)
|
|
22
|
+
|
|
23
|
+
## Required Output
|
|
24
|
+
- Translated files in the correct format and location
|
|
25
|
+
- Notes on terms that required judgment calls
|
|
26
|
+
- Flagged passages where meaning was ambiguous
|
|
27
|
+
- Verification that translations completed without degenerate output
|
|
28
|
+
|
|
29
|
+
## Quality Bar
|
|
30
|
+
- Technical terms preserved correctly
|
|
31
|
+
- Product voice maintained across languages
|
|
32
|
+
- No invented claims or expanded scope
|
|
33
|
+
- Degenerate output (garbled, truncated, wrong language) caught and flagged
|
|
34
|
+
|
|
35
|
+
## Escalation Triggers
|
|
36
|
+
- Source content is ambiguous enough to produce different meanings
|
|
37
|
+
- Translation tooling produces degenerate output
|
|
38
|
+
- Brand terminology has no clear equivalent in target language
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Brand Rules
|
|
2
|
+
|
|
3
|
+
<!-- What this file is for:
|
|
4
|
+
The identity law for this product. Roles read this to ensure
|
|
5
|
+
every surface matches what this product actually is — not what
|
|
6
|
+
a fork ancestor, sibling, or genre default would suggest.
|
|
7
|
+
|
|
8
|
+
What good input looks like:
|
|
9
|
+
Concrete guidance a developer or designer can apply without
|
|
10
|
+
asking follow-up questions. "Industrial, worn, functional"
|
|
11
|
+
is better than "cool and modern."
|
|
12
|
+
|
|
13
|
+
What not to put here:
|
|
14
|
+
Marketing copy, aspirational brand positioning, or visual
|
|
15
|
+
design specs. This is identity law, not a mood board.
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
## Tone
|
|
19
|
+
<!-- How should this product sound? Not personality adjectives —
|
|
20
|
+
operational guidance.
|
|
21
|
+
Example: "Direct, mechanical, no filler. Error messages state
|
|
22
|
+
what failed and what to do. Never apologize." -->
|
|
23
|
+
|
|
24
|
+
## Domain Language
|
|
25
|
+
<!-- What vocabulary does this product use? List the canonical terms.
|
|
26
|
+
Example: "credits (not coins/gold), sectors (not zones/worlds),
|
|
27
|
+
crew (not party/team), haul (not quest/mission)." -->
|
|
28
|
+
|
|
29
|
+
## Forbidden Metaphors
|
|
30
|
+
<!-- What imagery, terminology, or framing must never appear?
|
|
31
|
+
Be specific — vague bans are unenforceable.
|
|
32
|
+
Example: "No maritime language: waves, sails, anchors, harbors,
|
|
33
|
+
wake, berth, compass rose. No ocean-themed motion verbs." -->
|
|
34
|
+
|
|
35
|
+
## Truth Constraints
|
|
36
|
+
<!-- What claims must this product never make about itself?
|
|
37
|
+
Example: "Never claim AI-generated content is human-written.
|
|
38
|
+
Never imply capabilities that don't exist yet." -->
|
|
39
|
+
|
|
40
|
+
## Contamination Risks
|
|
41
|
+
<!-- If this product was forked from, inspired by, or shares code
|
|
42
|
+
with another product, name the specific drift risks.
|
|
43
|
+
Example: "Forked from Portlight. Maritime ASCII art, wave
|
|
44
|
+
animations, anchor icons, and silver currency language are
|
|
45
|
+
contamination — not heritage." -->
|
|
46
|
+
|
|
47
|
+
## Approved Visual Register
|
|
48
|
+
<!-- Optional. If the product has visual surfaces, what is the
|
|
49
|
+
correct visual register?
|
|
50
|
+
Example: "Industrial, worn, functional. Hull schematics not
|
|
51
|
+
sailboats. Cargo manifests not treasure maps. Scanner sweep
|
|
52
|
+
not wave animation." -->
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Current Priorities
|
|
2
|
+
|
|
3
|
+
<!-- What this file is for:
|
|
4
|
+
What's happening now in this project. Roles read this to avoid
|
|
5
|
+
conflicting with active work and to understand recent context.
|
|
6
|
+
|
|
7
|
+
What good input looks like:
|
|
8
|
+
Short, current, honest. Update this when priorities shift.
|
|
9
|
+
|
|
10
|
+
What not to put here:
|
|
11
|
+
Long-term roadmap, completed work history, or feature wishlists.
|
|
12
|
+
This is the current state, not the backlog.
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Active Work
|
|
16
|
+
<!-- What is being worked on right now? 1-3 items max.
|
|
17
|
+
If nothing is active, say so. -->
|
|
18
|
+
|
|
19
|
+
## Next Up
|
|
20
|
+
<!-- What comes immediately after the current work? -->
|
|
21
|
+
|
|
22
|
+
## Blocked
|
|
23
|
+
<!-- What is waiting on something? State what it's waiting on.
|
|
24
|
+
If nothing is blocked, say so. -->
|
|
25
|
+
|
|
26
|
+
## Recently Completed
|
|
27
|
+
<!-- What just shipped or merged? Useful for launch copy,
|
|
28
|
+
integration context, and avoiding duplicate work. -->
|
|
29
|
+
|
|
30
|
+
## Banned Detours
|
|
31
|
+
<!-- What should NOT be started right now, even if it seems useful?
|
|
32
|
+
This prevents well-intentioned scope drift.
|
|
33
|
+
Example: "Do not refactor the auth system until v2 ships." -->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Product Brief
|
|
2
|
+
|
|
3
|
+
<!-- What this file is for:
|
|
4
|
+
The single source of truth for what this product is, who it's for,
|
|
5
|
+
and what it must not become. Every role reads this before starting work.
|
|
6
|
+
|
|
7
|
+
What good input looks like:
|
|
8
|
+
Specific, testable statements. "A CLI tool that validates JSON schemas"
|
|
9
|
+
not "a developer productivity platform."
|
|
10
|
+
|
|
11
|
+
What not to put here:
|
|
12
|
+
Roadmap items, implementation details, or marketing copy.
|
|
13
|
+
This is product truth, not product aspiration.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Product
|
|
17
|
+
<!-- One sentence. What is this thing? -->
|
|
18
|
+
|
|
19
|
+
## Thesis
|
|
20
|
+
<!-- Why does this exist? What bet are you making? What is true about this
|
|
21
|
+
product that would be false about a generic alternative? -->
|
|
22
|
+
|
|
23
|
+
## Target User
|
|
24
|
+
<!-- Who is this for? Be specific enough that you could find them.
|
|
25
|
+
"Developers using MCP clients" not "technical users." -->
|
|
26
|
+
|
|
27
|
+
## Core Value
|
|
28
|
+
<!-- What does it do that nothing else does well enough?
|
|
29
|
+
State the mechanical value, not the emotional value. -->
|
|
30
|
+
|
|
31
|
+
## Non-Goals
|
|
32
|
+
<!-- What are you explicitly not building? These prevent scope drift.
|
|
33
|
+
List at least 3 things someone might reasonably expect but you reject. -->
|
|
34
|
+
|
|
35
|
+
## Current Stage
|
|
36
|
+
<!-- concept | prototype | alpha | beta | shipped | mature -->
|
|
37
|
+
|
|
38
|
+
## Key Constraints
|
|
39
|
+
<!-- Tech stack, budget, compatibility requirements, platform limits.
|
|
40
|
+
These are facts, not preferences. -->
|
|
41
|
+
|
|
42
|
+
## Fiction/Identity Rules
|
|
43
|
+
<!-- Optional but valuable for forked or inherited projects.
|
|
44
|
+
If this product has a parent, ancestor, or sibling whose identity
|
|
45
|
+
could contaminate this product's surfaces, state the boundary here.
|
|
46
|
+
Example: "This is a space-industrial game, not a maritime game.
|
|
47
|
+
No waves, sails, harbors, or nautical framing." -->
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Repo Map
|
|
2
|
+
|
|
3
|
+
<!-- What this file is for:
|
|
4
|
+
Technical truth about the repository. Roles read this to understand
|
|
5
|
+
where code lives, how to build/test, and where the risky seams are.
|
|
6
|
+
|
|
7
|
+
What good input looks like:
|
|
8
|
+
Concrete paths, commands, and architecture notes. Not aspirational
|
|
9
|
+
architecture diagrams — describe what exists now.
|
|
10
|
+
|
|
11
|
+
What not to put here:
|
|
12
|
+
Product decisions, feature plans, or design philosophy.
|
|
13
|
+
This is repo truth, not product truth.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Repository
|
|
17
|
+
<!-- URL, local path, default branch, current version -->
|
|
18
|
+
|
|
19
|
+
## Language / Stack
|
|
20
|
+
<!-- Primary language, framework, runtime, build system -->
|
|
21
|
+
|
|
22
|
+
## Directory Structure
|
|
23
|
+
<!-- Key directories and what they contain. Focus on where a new
|
|
24
|
+
contributor would need to look, not exhaustive tree listing. -->
|
|
25
|
+
|
|
26
|
+
## Conventions
|
|
27
|
+
<!-- Naming patterns, formatting, testing approach, state management
|
|
28
|
+
philosophy. How does this codebase prefer to do things? -->
|
|
29
|
+
|
|
30
|
+
## Build / Run
|
|
31
|
+
<!-- Exact commands to build, test, and run. A new contributor should
|
|
32
|
+
be able to copy-paste these. -->
|
|
33
|
+
|
|
34
|
+
## Key Files
|
|
35
|
+
<!-- The 5-10 most important files. Entry points, core logic, config,
|
|
36
|
+
state models. Where does behavior actually live? -->
|
|
37
|
+
|
|
38
|
+
## Dependencies
|
|
39
|
+
<!-- Notable dependencies and why they exist. Not a full package list —
|
|
40
|
+
just the ones that shape how the code works. -->
|
|
41
|
+
|
|
42
|
+
## Risky Seams
|
|
43
|
+
<!-- Where are the architectural boundaries that are easy to get wrong?
|
|
44
|
+
Legacy/new system boundaries, serialization gaps, state that lives
|
|
45
|
+
in two places, import paths that cross concerns. -->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Example: Feature Packet
|
|
2
|
+
|
|
3
|
+
**Problem shape:** Building a new user-facing capability that needs product shaping, design, implementation, testing, and review.
|
|
4
|
+
|
|
5
|
+
**When to use this shape:** The feature touches product intent (what to show, what to defer), has a UI or output surface, needs implementation across 1+ files, and benefits from a quality gate before merge.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What a feature packet teaches
|
|
10
|
+
|
|
11
|
+
### 1. Product shaping under pressure
|
|
12
|
+
The Product Strategist decides what information is primary vs noise, rules on open questions, and sets the information hierarchy. This prevents downstream roles from re-arguing product decisions.
|
|
13
|
+
|
|
14
|
+
**Key pattern:** Product defines a clear "this is a status surface, not a command surface" ruling. That single frame prevents every other role from inventing a different purpose.
|
|
15
|
+
|
|
16
|
+
### 2. Contamination/fidelity guard
|
|
17
|
+
If the project has a fork ancestor, legacy codebase, or inherited design language, the packet must include a contamination constraint. Every role checks for residue. The critic rejects work that is functional but fiction-wrong.
|
|
18
|
+
|
|
19
|
+
**Key pattern:** Name the exact files, imports, and terms that are contaminated. "No legacy language" is vague. "Never import from legacy_models.py; never use old_display()" is testable.
|
|
20
|
+
|
|
21
|
+
### 3. Real escalation
|
|
22
|
+
Backend surfaced a missing engine field instead of faking it. Frontend surfaced a session wiring gap instead of hiding it behind a fallback. Both were legitimate escalations that improved the final output.
|
|
23
|
+
|
|
24
|
+
**Key pattern:** Escalation happens at the role that discovers the gap, not at review. The escalation includes what's missing, why it matters, and a proposed shim or scope reduction.
|
|
25
|
+
|
|
26
|
+
### 4. Review against contract
|
|
27
|
+
The critic judged against the done definition, not against "does it look good." Items were marked MET, UNMET, or CONDITIONAL with evidence. The verdict was accept-with-notes — honest about what worked and what remained external.
|
|
28
|
+
|
|
29
|
+
**Key pattern:** The critic checks each done-definition item individually. A clean accept requires all items met. Accept-with-notes requires binding follow-up items. Reject requires corrections before re-review.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Typical chain
|
|
34
|
+
Orchestrator → Product Strategist → UI Designer → Backend Engineer → Frontend Developer → Test Engineer → Critic Reviewer
|
|
35
|
+
|
|
36
|
+
## When to shorten
|
|
37
|
+
- Skip UI Designer if there's no user-facing surface to design
|
|
38
|
+
- Skip Backend if all data already exists
|
|
39
|
+
- Skip Product Strategist if scope is already locked by a prior packet
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Example: Identity Packet
|
|
2
|
+
|
|
3
|
+
**Problem shape:** Repairing inherited or drifted fiction, branding, terminology, or visual language across existing code — without turning into a broad redesign.
|
|
4
|
+
|
|
5
|
+
**When to use this shape:** The product's visible surfaces don't match its actual identity. A fork ancestor's language is still present. Terminology from a different domain leaked in. Visual motifs belong to a different product.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What an identity packet teaches
|
|
10
|
+
|
|
11
|
+
### 1. Replacement doctrine, not just removal
|
|
12
|
+
Removing contaminated terms without defining replacements creates bland output. Product Strategist must define what the correct register is — not just what's banned, but what replaces it and why.
|
|
13
|
+
|
|
14
|
+
**Key pattern:** Build a replacement table with contaminated term, replacement, and rationale. "No legacy language" becomes "specific replacement per term, not blanket removal." Every banned term has a specific replacement.
|
|
15
|
+
|
|
16
|
+
### 2. No redesign drift
|
|
17
|
+
The strongest discipline in an identity packet is doing only the purge. Roles will be tempted to "improve" layout, hierarchy, or features while they're in the file. Reject that.
|
|
18
|
+
|
|
19
|
+
**Key pattern:** The done definition includes "no unrelated redesign was performed." The critic checks this explicitly. A screen that was purged AND redesigned gets sent back.
|
|
20
|
+
|
|
21
|
+
### 3. Severity ranking
|
|
22
|
+
Not all contamination is equally damaging. Product Strategist ranks contamination by visibility and impact. Hero visuals (splash screens, headers) are more damaging than internal code comments.
|
|
23
|
+
|
|
24
|
+
**Key pattern:** Priority order guides Frontend's implementation sequence. If time is constrained, the most visible contamination is fixed first.
|
|
25
|
+
|
|
26
|
+
### 4. Durable contamination defense
|
|
27
|
+
Cleaning files is necessary but insufficient. Without regression tests, the contamination returns. The test engineer's job is to produce tests that outlive the packet — permanent CI checks, not one-time audits.
|
|
28
|
+
|
|
29
|
+
**Key pattern:** Banned-term scans, banned-symbol scans, required-replacement assertions, and import-source checks. These tests run on every CI pass and fail if contamination is reintroduced by any contributor.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Typical chain
|
|
34
|
+
Orchestrator → Product Strategist → UI Designer → Frontend Developer → Test Engineer → Critic Reviewer
|
|
35
|
+
|
|
36
|
+
## When to shorten
|
|
37
|
+
- Skip UI Designer if the contamination is purely textual (labels, terms) with obvious replacements
|
|
38
|
+
- Skip Backend if no contamination is in data-generating code
|
|
39
|
+
- Add Backend if contaminated strings are generated from data models rather than hardcoded in views
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Example: Integration Packet
|
|
2
|
+
|
|
3
|
+
**Problem shape:** Wiring two systems together across an architectural seam — making state, data, or control flow reach a place it currently can't.
|
|
4
|
+
|
|
5
|
+
**When to use this shape:** A feature is blocked because System A can't access System B's state. Or a save/load path doesn't include new state. Or a session layer doesn't expose data that a screen or tool needs.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What an integration packet teaches
|
|
10
|
+
|
|
11
|
+
### 1. Dependency verification first
|
|
12
|
+
Before any design work, verify every upstream assumption against actual repo truth. "The session exposes this data" might be false — check the actual code, not the docs.
|
|
13
|
+
|
|
14
|
+
**Key pattern:** Build a dependency table with file paths, line numbers, and verified/unverified status. Catch false assumptions at Step 1, not Step 5.
|
|
15
|
+
|
|
16
|
+
### 2. Bridge/seam resolution
|
|
17
|
+
The bridge should be clean and typed — a new attribute, a serialization pair, a wiring function. Not a hybrid where the system "sometimes reads from A and sometimes from B."
|
|
18
|
+
|
|
19
|
+
**Key pattern:** Backend proposes the exact attribute name, import alias (if naming collisions exist), initialization point, and serialization format. Frontend receives a concrete contract, not a vague "data will be available."
|
|
20
|
+
|
|
21
|
+
### 3. Anti-fallback testing
|
|
22
|
+
The most dangerous failure mode is silent fallback — the app appears to work but quietly uses legacy/placeholder data instead of the real source. Tests must assert the live path is real, not just present.
|
|
23
|
+
|
|
24
|
+
**Key pattern:** Write tests that assert `state is not None` after initialization, assert the state type is correct (not legacy), and assert the data content matches what was stored. A test that passes when the feature is broken is worse than no test.
|
|
25
|
+
|
|
26
|
+
### 4. Breaking change management
|
|
27
|
+
Integration work often changes return types, tuple sizes, or function signatures. Every caller must be updated. The blast radius must be documented before implementation.
|
|
28
|
+
|
|
29
|
+
**Key pattern:** Grep for all callers of the changed function. Categorize them by update pattern. Document which are mechanical (add `_ignored` to unpacking) vs which need inspection.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Typical chain
|
|
34
|
+
Orchestrator → Backend Engineer → Frontend Developer → Test Engineer → Critic Reviewer
|
|
35
|
+
|
|
36
|
+
## When to shorten
|
|
37
|
+
- Skip Frontend if the wiring is purely backend (no screen or tool changes)
|
|
38
|
+
- Skip Product Strategist if there are no user-visible behavior choices
|
|
39
|
+
- Add Product Strategist if the integration reveals ambiguity about what state should be canonical
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Role OS — Adoption Handbook
|
|
2
|
+
|
|
3
|
+
## What Role OS does
|
|
4
|
+
|
|
5
|
+
Role OS routes scoped work through role contracts, structured packets, review, and escalation — so features, integrations, identity repairs, and full repo treatments ship without drift, false completion, or vibes-based progress claims.
|
|
6
|
+
|
|
7
|
+
Each role has a contract: what it owns, what it must produce, when to escalate. Work moves through a chain of roles. A critic reviews against the contract, not against wishes. The system protects truth, not speed.
|
|
8
|
+
|
|
9
|
+
## What Role OS provides
|
|
10
|
+
|
|
11
|
+
1. **Role Spine** — eight specialist role contracts with hard boundaries
|
|
12
|
+
2. **Workflows** — canonical problem shapes: feature, integration, identity, full treatment
|
|
13
|
+
3. **Schemas** — structured packet, handoff, and verdict formats
|
|
14
|
+
4. **Policy** — routing, permissions, escalation, and done definition
|
|
15
|
+
5. **Context templates** — product brief, repo map, priorities, brand rules
|
|
16
|
+
|
|
17
|
+
## What Role OS does not own
|
|
18
|
+
|
|
19
|
+
- **Claude project memory** — where it exists, Claude project memory is the canonical continuity layer. Role OS integrates with it, does not duplicate it.
|
|
20
|
+
- **Full treatment protocol** — the canonical 7-phase protocol lives in Claude project memory (`memory/full-treatment.md`). Role OS routes and reviews treatments, it does not redefine them.
|
|
21
|
+
- **Shipcheck** — the 31-item quality gate that runs before full treatment. Canonical reference: `memory/shipcheck.md`.
|
|
22
|
+
|
|
23
|
+
## Use it for
|
|
24
|
+
|
|
25
|
+
- **Features** that need product shaping, implementation, testing, and review
|
|
26
|
+
- **Integrations** that wire systems together across architectural seams
|
|
27
|
+
- **Identity/polish work** that repairs branding, fiction, or terminology drift
|
|
28
|
+
- **Full treatment** — routed through Role OS using the canonical protocol
|
|
29
|
+
- Any scoped work where you want honest decomposition, clear handoffs, and truthful review
|
|
30
|
+
|
|
31
|
+
## Don't use it for
|
|
32
|
+
|
|
33
|
+
- Single-line fixes, typos, or obvious bugs
|
|
34
|
+
- Exploratory research or spikes with no defined output
|
|
35
|
+
- Work where the entire scope fits in one person's head in 5 minutes
|
|
36
|
+
- Emergency hotfixes that need to ship before a review chain completes
|
|
37
|
+
|
|
38
|
+
## Packet flow
|
|
39
|
+
|
|
40
|
+
1. **Create a packet** — define the outcome, scope, non-goals, constraints, and done definition
|
|
41
|
+
2. **Verify dependencies** — confirm every upstream assumption against repo truth
|
|
42
|
+
3. **Route to a chain** — pick the smallest set of roles needed (2-7 roles, not always all)
|
|
43
|
+
4. **Each role produces a handoff** — structured output that reduces ambiguity for the next role
|
|
44
|
+
5. **Critic reviews** — accepts, rejects, or sends back with notes, judged against contract and done definition
|
|
45
|
+
6. **Record the verdict** — evidence of what was accepted, what was flagged, what follows
|
|
46
|
+
|
|
47
|
+
## Full treatment
|
|
48
|
+
|
|
49
|
+
Shipcheck runs first (`npx @mcptoolshop/shipcheck audit` must exit 0). Then the canonical 7-phase treatment protocol executes. Role OS adds role contracts, handoffs, and review gates to each phase — it does not replace the protocol.
|
|
50
|
+
|
|
51
|
+
See `workflows/full-treatment.md` for the integration reference.
|
|
52
|
+
|
|
53
|
+
## Review and escalation
|
|
54
|
+
|
|
55
|
+
The critic reviewer is not ceremonial. They reject work that is vague, contaminated, or incomplete — even if it's otherwise functional. "Good but wrong" is a valid rejection.
|
|
56
|
+
|
|
57
|
+
Any role can escalate when missing information would change the work materially. Escalation is expected, not failure. Hiding gaps is the actual failure.
|
|
58
|
+
|
|
59
|
+
## First run
|
|
60
|
+
|
|
61
|
+
1. Fill `context/` files — product brief, repo map, priorities, brand rules
|
|
62
|
+
2. Create your first packet
|
|
63
|
+
3. Route it through the smallest chain that covers the work
|
|
64
|
+
4. Produce handoffs (light format for routine, full format for complex)
|
|
65
|
+
5. Review and record the verdict
|
|
66
|
+
|
|
67
|
+
You will learn the system by using it once, not by studying it.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Done Definition
|
|
2
|
+
|
|
3
|
+
A role is done when:
|
|
4
|
+
1. It completed the assigned scope.
|
|
5
|
+
2. It produced the required output shape.
|
|
6
|
+
3. It surfaced risks and assumptions honestly.
|
|
7
|
+
4. It identified the correct next owner.
|
|
8
|
+
5. Its output is reviewable without extra interpretation.
|
|
9
|
+
|
|
10
|
+
Work is not done when:
|
|
11
|
+
- It is still vague
|
|
12
|
+
- It depends on hidden assumptions
|
|
13
|
+
- It skipped verification
|
|
14
|
+
- It solved a different problem than the packet requested
|
|
15
|
+
- It carries cross-project residue (imagery, terminology, UI motifs, or mental models from a fork ancestor or sibling product that do not belong to this product's fiction)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Escalation Rules
|
|
2
|
+
|
|
3
|
+
Escalate instead of guessing when the missing information would change the work materially.
|
|
4
|
+
|
|
5
|
+
## Mandatory Escalation Cases
|
|
6
|
+
- Missing API contract
|
|
7
|
+
- Missing design direction
|
|
8
|
+
- Conflicting product goals
|
|
9
|
+
- Unknown repo conventions
|
|
10
|
+
- Dependency on unavailable files or tools
|
|
11
|
+
- Quality bar cannot be met within scope
|
|
12
|
+
- Requested outcome contradicts context or policy
|
|
13
|
+
|
|
14
|
+
## Allowed Assumptions
|
|
15
|
+
Small implementation details that do not change user-visible behavior or system contract.
|
|
16
|
+
|
|
17
|
+
## Forbidden Behavior
|
|
18
|
+
- Pretending ambiguity does not exist
|
|
19
|
+
- Filling missing product direction with generic defaults
|
|
20
|
+
- Marking work complete when key dependencies are unresolved
|