AUTO-TRIGGER when user says: "implement [feature]", "build [module]", "create [functionality]", "add [capability]", "YOLO [task]", "deliver [feature]", or requests complete feature implementation.
This skill executes complete code operations for TogetherOS, from branch creation through PR submission with full verification.
yolo ⚠️ NEVER USE main AS BASE - ALWAYS USE yolofeature/{module}-{slice}feat({module}): {slice} - {scope}yolo, NEVER to maindocs/design/system.md for all UI work (colors, typography, components)/admin/www.coopeverything.org/admin/{module} (e.g., /admin/observability)/test/ pattern — all dev tools belong in admin dashboard-testing for clarity: /admin/auth-testing, /admin/feed-testingVerified: All changes tested during implementation, build passes
See: pr-formatter skill for:
npm ci)npm run build)Create Notion session page to track this work:
Use Notion API: mcp__notion__API-post-page
Parent page ID: 296d133a-246e-80a6-a870-c0d163e9c826
Title format: "Nov 10, 25 14:30 - Session"
Initial content:
- Repository: TogetherOS
- Branch: yolo (or feature branch)
- Module: {module}
- Slice: {slice}
Note: This is optional but recommended for continuity between sessions. If Notion API fails (UUID bug #5504), retry once then proceed without blocking.
# Check for uncommitted changes
git status --porcelain
# If output is NOT empty, stop and report:
# "Working directory has uncommitted changes. Please commit or stash before starting:"
# [list the uncommitted files]
yolo branch and up to date:git checkout yolo
git fetch origin yolo
git merge origin/yolo
feature/{module}-{slice}git checkout -b feature/{module}-{slice}
scope parameterMANDATORY if you created any page under /admin/*:
When you create a new admin page at apps/web/app/admin/{page-name}/page.tsx:
Register in admin navigation - Edit apps/web/app/admin/page.tsx:
// Find the appropriate section in the `sections` array and add:
{
title: 'Page Title',
description: 'Brief description of what this admin page does',
path: '/admin/page-name',
status: 'active', // or 'coming-soon' for placeholders
}
Section selection guide:
Verify the page appears in admin dashboard navigation at /admin before proceeding
Why this matters: Admin pages created without navigation registration become orphaned and inaccessible. Users expect all admin functionality to be discoverable from /admin.
npm ci)npm run build)commands.test is provided, run testsscripts/validate.sh exists, run it to get proof linesLINT=OK and VALIDATORS=GREENIMPORTANT: If this PR includes .tsx or .css files with UI components, run CSS validation BEFORE creating PR:
# Run CSS validation
./scripts/validate-css.sh
# Expected output: CSS=OK
# If CSS=FAILED: Fix issues and re-run
What it checks:
--var-name definitions)When to skip:
Integration with UX Designer Skill:
For UI/theme/CSS work, ALWAYS follow the ux-designer verification workflow:
See: .claude/skills/ux-designer/SKILL.md for verification workflow and CSS var reference
gh api repos/coopeverything/TogetherOS/code-scanning/alerts --jq '.[] | select(.state == "open" and .rule.severity == "error") | .most_recent_instance.location.path' | sort -ugit diff --name-only yolo)JSON.stringify(userInput) for log injection, parameterized queries for SQL injectionSECURITY=OK (0 P1 alerts in modified files) or SECURITY=WARN (X P1 alerts exist, but not in modified files)feat({module}): {slice} - {scope}error-learner skill:.claude/data/session-errors.json for cross-session patternsgit push -u origin feature/{module}-{slice}Use status-tracker skill to:
scripts/update-module-next-steps.shprogress:bridge=+10)Use pr-formatter skill to:
gh pr create --base yoloThen monitor post-push and verify bot reviews:
# Method 1: Check inline code review comments (try multiple endpoints)
# Endpoint 1: Pull request comments
gh api repos/coopeverything/TogetherOS/pulls/<PR#>/comments \
--jq '.[] | select(.user.login == "chatgpt-codex-connector") | {file: .path, line: .line, body: .body}'
# Endpoint 2: Pull request reviews
gh api repos/coopeverything/TogetherOS/pulls/<PR#>/reviews \
--jq '.[] | select(.user.login == "chatgpt-codex-connector")'
# Endpoint 3: Issue comments (general PR comments)
gh api repos/coopeverything/TogetherOS/issues/<PR#>/comments \
--jq '.[] | select(.user.login == "chatgpt-codex-connector")'
# Method 2: ALWAYS verify on web UI (MANDATORY, not just fallback)
gh pr view <PR#> --web
# REQUIRED: Manually inspect "Files Changed" tab for inline comments
# GitHub sometimes returns empty API results even when comments exist
gh pr list --author "app/copilot-swe-agent" --search "sub-pr-<PR#>"
gh pr checks <PR#>Output PR URL and summary of bot feedback addressed
After all checks pass and P1 issues resolved:
# Verify PR is truly merge-ready
gh pr checks <PR#> # All must be green
gh pr view <PR#> --json mergeable --jq '.mergeable' # Must be "MERGEABLE"
# Verify no unresolved P1 Codex issues via web UI (mandatory check)
gh pr view <PR#> --web
# Manually confirm no P1 issues in Files Changed tab
# Merge PR
gh pr merge <PR#> --squash --delete-branch
# Capture merge commit SHA
MERGE_SHA=$(gh pr view <PR#> --json mergeCommit --jq '.mergeCommit.oid')
echo "Merged as commit: $MERGE_SHA"
Do NOT stop at "ready to merge" - actually merge the PR when verified.
After merge, verify production deployment:
# Get workflow run triggered by merge
WORKFLOW_RUN=$(gh run list --workflow=auto-deploy-production.yml --branch=yolo --limit 1 --json databaseId --jq '.[0].databaseId')
# Monitor deployment (wait up to 5 minutes)
gh run watch $WORKFLOW_RUN --exit-status
# Check deployment status
DEPLOY_STATUS=$(gh run view $WORKFLOW_RUN --json conclusion --jq '.conclusion')
if [ "$DEPLOY_STATUS" = "success" ]; then
echo "✅ Deployment successful"
echo "Changes live at: https://www.coopeverything.org"
else
echo "❌ Deployment failed - see logs:"
gh run view $WORKFLOW_RUN --log-failed
# Report deployment failure to user for investigation
fi
Execute the MANDATORY Fix Verification Checklist from CLAUDE.md:
./scripts/verify-fix.sh - must exit 0curl https://coopeverything.org/api/healthIf ANY step fails → NOT delivered. Fix and re-deploy.
Output final delivery summary:
✅ Feature delivered:
- PR #<num>: <title>
- Merged commit: <sha>
- Deployment: <SUCCESS|FAILED>
- Live URL: https://www.coopeverything.org/<relevant-path>
Only after deployment verification is delivery complete.
⚠️ MSSP - Module Status Synchronization Protocol
This step is MANDATORY. Failure to update ALL THREE locations causes progress tracking drift.
CRITICAL: After successful deployment, update ALL THREE documentation locations:
Step 13.1: Calculate Progress Increase
# Progress calculation guidelines:
# - Phase 1 complete (basic features): ~30-40%
# - Phase 2 complete (enhanced features): ~60-70%
# - Phase 3 complete (advanced features): ~90%
# - Full module complete: 100%
# - Calculate based on work completed in this PR
Step 13.2: Update STATUS_v2.md (AUTHORITATIVE SOURCE)
# 1. Edit docs/STATUS_v2.md
# 2. Find the module's table row
# 3. Update the progress marker: <!-- progress:module-name=Y -->
# 4. Update the description of what's complete
# Example:
# | **Module** | Description | <!-- progress:module=85 --> 85% | Next | Notes |
Step 13.3: Update Individual Module Spec
# 1. Edit docs/modules/{module-name}.md
# 2. Find the progress line:
# **Current Progress:** <!-- progress:module-name=X --> X%
# 3. Update to match STATUS_v2.md:
# **Current Progress:** <!-- progress:module-name=Y --> Y%
# 4. Update visible "Progress: Y%" text at bottom of file if present
Step 13.4: Update Modules INDEX (THE CRITICAL ONE)
# 1. Edit docs/modules/INDEX.md
# 2. Find the module entry in the list
# 3. Update percentage and description to match STATUS_v2.md
# Examples:
# BEFORE: "(50% complete — Phase 1 complete)"
# AFTER: "(85% complete — Phase 1-2 complete, production-verified)"
#
# BEFORE: "(0% — spec only)"
# AFTER: "(35% — Phase 1 complete)"
Step 13.4b: Sync ALL Modules in Shared Data File (VISIBLE TO USERS)
# ⚠️ CRITICAL: Update the shared data file - single source for both UI pages!
# This file feeds BOTH /modules (public) AND /admin/modules (admin)
# 1. Read docs/STATUS_v2.md to get authoritative progress for ALL modules
# 2. Read apps/web/lib/data/modules-data.ts (SHARED DATA FILE)
# 3. Compare progress values for EVERY module
# 4. Update ANY module that has drifted (not just current task)
# 5. Update descriptions if they're significantly outdated
# Module mapping (STATUS_v2.md name → modules-data.ts title):
# Observability → 'Observability & Monitoring'
# Search & Tags → 'Search & Discovery'
# Notifications & Inbox → 'Notifications & Inbox'
# Governance → 'Governance & Proposals'
# Forum → 'Forum & Deliberation'
# Bridge → 'Bridge AI Assistant'
# Onboarding ("Bridge") → 'Onboarding Experience'
# etc.
# For each module in STATUS_v2.md:
# - Extract progress from: <!-- progress:module-name=X -->
# - Find matching entry in modules-data.ts modules array
# - If progress differs, update the `progress:` value
# - If status changed (e.g., now 100%), update `status:` to 'complete'
# UI Pages that consume this data:
# - /modules (public) → apps/web/app/modules/page.tsx
# - /admin/modules (admin) → apps/web/app/admin/modules/page.tsx
# Both import from: apps/web/lib/data/modules-data.ts
Why sync via shared data file?
Step 13.5: Verify Synchronization (MANDATORY)
# REQUIRED: Run the status check script BEFORE committing
# This validates STATUS_v2.md ↔ Module specs AND STATUS_v2.md ↔ INDEX.md
./scripts/check-module-status.sh
# Expected output: "✅ All module progress markers are synchronized!"
# If ANY discrepancies found:
# 1. Fix ALL issues (not just the module you worked on)
# 2. Re-run script to confirm
# 3. Only then proceed to commit
# DO NOT SKIP THIS STEP - it catches INDEX.md drift that causes visible progress inconsistencies
Step 13.6: Commit Documentation Updates
git add docs/modules/ docs/STATUS_v2.md apps/web/lib/data/modules-data.ts
git commit -m "docs(modules): update {module-name} progress to Y%
Updates all four locations (MSSP):
- STATUS_v2.md: {module} at Y% (was X%)
- docs/modules/{module-name}.md: Progress marker updated
- apps/web/lib/data/modules-data.ts: Shared data synced (feeds /modules + /admin/modules)
- docs/modules/INDEX.md: Entry updated to Y%
Phase X implementation complete:
- Component/feature 1
- Component/feature 2
- Component/feature 3
PR #<num> merged and deployed successfully.
Verified: ./scripts/check-module-status.sh shows all markers synchronized
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>"
# Push documentation update
git pull origin yolo --rebase # In case deployment created commits
git push origin yolo
MANDATORY: Update ALL FOUR locations:
docs/modules/{module-name}.md)docs/modules/INDEX.md)apps/web/lib/data/modules-data.ts) ← FEEDS BOTH /modules AND /admin/modulesVerification: Run ./scripts/check-module-status.sh {module-name} before committing
Update Notion session page with final summary:
Use Notion API: mcp__notion__API-patch-block-children
Update session page created in Step 0
Add final blocks:
- Accomplishments: What was delivered
- PR: Link to merged PR
- Deployment: Success/failure status
- Files Changed: Count and key files
- Duration: Session start to end time
- Status: ✅ Completed
Update page title: "Nov 10, 25 14:30 - {module} {slice} implementation"
Cleanup old sessions (keep only 6 most recent):
Use Notion API: mcp__notion__API-post-search
Search for session pages, sort by last_edited_time
If count > 6: Archive oldest pages using mcp__notion__API-delete-a-block
Note: This is optional but recommended for session continuity. If it fails, don't block - report completion and move on.
Use Skill: togetheros-code-ops
Inputs:
module: bridge
slice: scaffold
scope: Create /bridge route, stub component in packages/ui, docs/modules/bridge/README.md
Expected Behavior:
feature/bridge-scaffoldfeat(bridge): scaffold - Create /bridge route, stub component in packages/ui, docs/modules/bridge/README.mdpr-formatter skill (auto-selected category & keywords)Use Skill: togetheros-code-ops
Inputs:
module: governance
slice: oss-integration
scope: Integrate selected governance OSS with auth/DB and CI
Expected Behavior:
feature/governance-oss-integrationfeat(governance): oss-integration - Integrate selected governance OSS with auth/DB and CIpr-formatter skill (auto-selected category & keywords)In YOLO mode, you (Claude) are the primary quality gate:
scripts/validate.sh (recommended for proof lines)This means: Read your code, check your logic, verify your types, and ensure correctness at every step. The build is your final verification that everything compiles correctly.
About Validation Scripts: While YOLO mode emphasizes self-testing, running scripts/validate.sh before committing provides proof lines (LINT=OK, VALIDATORS=GREEN) that CI checks look for. These checks are advisory-only and won't block merges, but including them shows good practice.
See those skills for:
pr-formatterstatus-trackerstatus-trackerstatus-trackerpr-formattererror-learnererror-learnerux-designerux-designerux-designerscripts/validate-css.sh