AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Opc

skill-iamtouchskyer-opc-opc · by iamtouchskyer

OPC — One Person Company. Digraph-based task pipeline with independent multi-role evaluation. Builds, reviews, analyzes, and brainstorms with specialist agents. Every path ends with evaluation. /opc <task>, /opc -i <task>, /opc <role> [role...]

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add skill-iamtouchskyer-opc-opc

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-iamtouchskyer-opc-opc)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Opc? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

OPC — One Person Company

One principle: the agent that does the work never evaluates it.

A full team in a single skill. The digraph engine handles any task — building code, reviewing code, analyzing problems, brainstorming designs. It infers which flow and entry point to use from the task itself, and every path ends with independent evaluation.

Invocation

Harness path: The opc-harness binary lives at bin/opc-harness.mjs relative to this skill's install directory. Resolve it once at session start:

OPC_HARNESS="$HOME/.claude/skills/opc/bin/opc-harness.mjs"

All opc-harness references below mean node "$OPC_HARNESS". Set this as a shell variable and reuse it throughout the session.

/opc               # auto mode — infer flow and roles from the task
/opc -i            # interactive mode — ask questions before dispatch
/opc  [role...]    # explicit roles — skip role selection, dispatch directly
/opc loop          # autonomous loop — decompose, schedule cron, run 24h unattended
/opc skip                # skip current node, advance via PASS edge
/opc pass                # force-pass current gate
/opc stop                # terminate flow, preserve session state
/opc goto        # manual jump to a node (cycle limits still enforced)

Task Inference + Flow Selection

The orchestrator reads the task, selects a flow template, and determines the entry point.

| Task says... | Flow template | Default entry | |---|---|---| | "review", "audit", "check", "before we merge", "找问题", "开源前看看" | review | review | | "analyze", "diagnose", "what's wrong with", "分析" | review | review | | "build", "implement", "create", "fix bug", "帮我实现", "重构成..." | build-verify | brief | | "quick fix", "small change", "one-liner", "patch", "trivial fix", "快速修复", "小改动" | quick | build | | "brainstorm", "explore options", "what are the approaches", "有什么方案" | build-verify | brief | | "plan", "decompose", "break this down", "scope", "estimate", "拆一下" | build-verify | brief | | "verify", "test", "QA", "check before release", "发布前验收" | pre-release | acceptance | | "post-release", "user test", "onboarding check", "用户验收" | pre-release | acceptance | | Complex, vague, or multi-keyword request | full-stack | discuss | | /opc loop or multi-unit feature backlog | loop-protocol | plan decomposition |

Entry override — user context can shift the entry point (only if target ∈ template nodes):

| User has... | Entry override | |---|---| | A vague idea or brief | First node in template | | A spec or design doc | brief (if ∈ template), else build | | An implementation plan | brief (if ∈ template), else build | | A qualified build-brief.md from prior run | build (skip brief if lint passes) | | Code/artifact that needs evaluation | review, code-review, or test-design (if ∈ template) | | Everything done, needs acceptance | acceptance (if ∈ template) |

Priority rules:

  • /opc loop = enter autonomous loop mode. Follow ./pipeline/loop-protocol.md: first check .opc/runbooks/ for a matching runbook, otherwise decompose task into units. Initialize loop state, start cron, execute ticks. Each tick runs the appropriate OPC flow for that unit type.
  • /opc [role...] without a task = review of current codebase using review flow with named roles.
  • /opc with no arguments = prompt user to describe their task.
  • If task matches multiple rows, prefer the flow that includes build — code changes must precede review.

Show triage result:

📌 Flow: {flow template name}
📍 Entry: {entry node}
⚡ Interaction: auto / interactive
Rationale: {1 sentence}

Override: If user explicitly names a task type, respect that. Users can adjust after seeing triage.

Flow Templates

Flow graph structures (nodes, edges, limits) are defined in opc-harness code. The orchestrator uses opc-harness route to determine next nodes — do not look up edges yourself.

Each template below describes which agents to dispatch at each node and which protocol to use.

legacy-linear

Equivalent to v0.4.x behavior. Used as internal fallback only.

| Node | Type | Agents | Protocol | |------|------|--------|----------| | design | discussion | [planner] | design exploration | | plan | build | [planner] | task decomposition | | build | build | [implementer] | implementer-prompt.md | | evaluate | review | [selected roles] | role-evaluator-prompt.md | | deliver | build | — | commit + report |

review

| Node | Type | Agents | Protocol | |------|------|--------|----------| | review | review | [selected roles] | role-evaluator-prompt.md | | gate | gate | — | gate-protocol.md |

Gate loopback: FAIL/ITERATE → review (multi-round with prior findings as context). Review is not limited to code — it evaluates any artifact: architecture proposals, documents, strategies, products.

build-verify

| Node | Type | Agents | Protocol | |------|------|--------|----------| | brief | brief | [architect] | brief-protocol.md | | build | build | [implementer] | implementer-prompt.md | | code-review | review | [selected roles] | role-evaluator-prompt.md | | test-design | review | [tester, + user/domain roles] | test-design-protocol.md | | test-execute | execute | [orchestrator] | executor-protocol.md | | gate | gate | — | gate-protocol.md |

test-design is a review node where multiple roles design test cases (API tests, E2E UI tests, edge cases) without executing them. test-execute runs the designed test plan and captures evidence. Principle: the person who decides what to test must not be the person who runs the tests.

quick

| Node | Type | Agents | Protocol | |------|------|--------|----------| | build | build | [implementer] | implementer-prompt.md | | review | review | [selected roles] | role-evaluator-prompt.md | | test-design | review | [tester, + user/domain roles] | test-design-protocol.md | | test-execute | execute | [orchestrator] | executor-protocol.md | | gate | gate | — | gate-protocol.md |

Scope: Non-UI, single-file or ≤3 file changes, low risk. If task involves UI/design, multi-module refactoring, or security-related changes → use build-verify instead. Gate loops back to build (no brief node), and quick still requires OPC-generated testCommand evidence before final PASS.

full-stack

The complete flow with discussion, multi-stage gates, and E2E verification.

| Node | Type | Agents | Protocol | |------|------|--------|----------| | discuss | discussion | [architect, engineer, tester] | discussion-protocol.md | | brief | brief | [architect] | brief-protocol.md | | build | build | [implementer] | implementer-prompt.md | | code-review | review | [frontend, backend] | role-evaluator-prompt.md | | test-design | review | [tester, + user/domain roles] | test-design-protocol.md | | test-execute | execute | [orchestrator] | executor-protocol.md | | gate-test | gate | — | gate-protocol.md | | acceptance | review | [pm, designer] | role-evaluator-prompt.md | | gate-acceptance | gate | — | gate-protocol.md | | audit | review | [security, compliance, a11y] | role-evaluator-prompt.md | | gate-audit | gate | — | gate-protocol.md | | e2e-user | execute | [new-user, active-user, churned-user] | executor-protocol.md | | gate-e2e | gate | — | gate-protocol.md | | ux-simulation | execute | [new-user, active-user, churned-user] | ux-simulation-protocol.md + ux-observer-protocol.md | | gate-final | gate | — | gate-protocol.md |

pre-release

| Node | Type | Agents | Protocol | |------|------|--------|----------| | acceptance | review | [pm, designer] | role-evaluator-prompt.md | | gate-acceptance | gate | — | gate-protocol.md | | audit | review | [security, compliance, a11y] | role-evaluator-prompt.md | | gate-audit | gate | — | gate-protocol.md | | e2e-user | execute | [new-user, active-user, churned-user] | executor-protocol.md | | gate-e2e | gate | — | gate-protocol.md |


Getting Started

Before task inference, check for existing state:

  1. Run opc-harness ls to discover active flows. If any exist for the current project, show them and ask whether to resume or start fresh.
  2. If .harness/ has wave-* files but no flow-state.jsonlegacy v0.4.x format detected. Print: "Detected v0.4.x .harness/ format. Please delete .harness/ and re-run, or manually migrate." Do not proceed.
  3. Otherwise → fresh start.

After flow selection, initialize:

opc-harness init --flow {TEMPLATE} --entry {ENTRY_NODE}

Init auto-creates ~/.opc/sessions/{project-hash}/{session-id}/ and updates the latest symlink. All subsequent harness commands automatically resolve to the latest session dir — you do NOT need to pass --dir or capture the output. Just run commands normally:

opc-harness route --node review --verdict PASS --flow {TEMPLATE}
opc-harness transition --from review --to gate --verdict PASS --flow {TEMPLATE}
opc-harness viz --flow {TEMPLATE}

Multi-window safety: Each init creates a new session dir. If multiple OPC windows run on the same project, the last one to init becomes latest. To pin a specific session, pass --dir explicitly.

Backward compat: Pass --dir .harness to init for a project-local harness dir.

Show flow graph — immediately after init, run opc-harness viz --flow {TEMPLATE} and display the ASCII output to the user. This gives them a visual map of the entire flow before execution begins.

Before starting, extract acceptance criteria — 3-7 concrete, testable bullet points. Evaluators grade against these.

Quality Tier Selection — Mandatory Pre-Flight

Before the Definition of Done questions, the orchestrator MUST select a quality tier. See ./pipeline/quality-tiers.md for full definitions.

| Tier | When | Baseline | |------|------|----------| | functional | CLI, API, backend, library, infra | No UI craft requirements | | polished | UI, frontend, website, dashboard, docs | Dark/light, responsive, loading/error/empty states, favicon, focus styles | | delightful | Showcase, demo, pitch, consumer product | All of polished + transitions, animations, micro-interactions, onboarding |

Selection rules:

  1. User explicitly specifies tier → use it
  2. Task involves UI/frontend → default polished
  3. Task is CLI/API/backend → default functional
  4. Task includes "showcase", "demo", "pitch", "delightful", "beautiful" → delightful
  5. Interactive mode → ask the user

Show tier selection:

🎯 Quality Tier: {tier}
   Baseline: {N items from tier checklist}

The tier's baseline checklist items are automatically appended to acceptance criteria under a "## Quality Baseline ({tier})" section in acceptance-criteria.md (in the session dir). The implementer and evaluator both receive the tier as context.

Definition of Done — Mandatory Pre-Flight (all modes)

Before dispatching ANY work, the orchestrator MUST establish a clear definition of done. This applies to both auto and interactive modes — the only difference is how the answers are obtained (inferred vs asked).

Three questions that must have answers before the first node executes:

  1. What does "done" look like? — Concrete, observable outcomes. Not "implement auth" but "user can log in with email/password, session persists across refresh, logout clears session."
  1. How will we verify it? — Map each outcome to a verification method:
  • Code change → which tests? (npm test, specific test file, new test to write?)
  • UI change → which page/component to screenshot? What should be visible?
  • API change → which endpoint to curl? What response shape?
  • Refactor → which existing tests must still pass?
  1. How will we evaluate quality? — What should reviewers look for beyond "it works"?
  • Performance constraints? ("page load --output /spec.json

```

  1. Write ## Reference section in acceptance-criteria.md:

```markdown ## Reference

  • reference_image: /absolute/path/to/ref.jpg
  • design_spec: /absolute/path/to/session/spec.json

```

  1. Set quality baseline for design reproduction:

```markdown ## Quality Baseline (polished)

  • design-diff overall ≥ 4.0
  • zero major diffs

```

This enables the full automated loop: build reads spec.json → implementer produces HTML → test-execute screenshots + VLM design-diff → gate reads diffs → ITERATE feeds diffs back to build. See ./pipeline/executor-protocol.md § "Design Reproduction Mode" for test-execute details.

Criteria Lint — Mandatory Gate: After writing acceptance-criteria.md, run opc-harness criteria-lint acceptance-criteria.md (use the session dir path). If it fails, revise and re-run (max 3 auto-fix attempts in auto mode, user-driven in interactive mode). See ./pipeline/criteria-lint.md for the mechanical checks. Init is gated — opc-harness init refuses to start if criteria-lint hasn't passed.

Task Scope — Mandatory for Loop Mode

In loop mode, every plan.md MUST include a ## Task Scope section listing the user's original requirements:

## Task Scope
- SCOPE-1: Backend API for user auth
- SCOPE-2: Frontend login page with form validation
- SCOPE-3: Browser E2E tests covering login flow
- SCOPE-4: Unit tests with 100% coverage on new code

The harness enforces this mechanically:

  • init-loop refuses to start if ## Task Scope is missing (bypass: --skip-scope)
  • complete-tick on the final tick checks that every SCOPE-N item was covered by at least one completed unit (keyword overlap or explicit reference). Uncovered items = hard error, pipeline cannot complete (bypass: --skip-scope-check)
  • next-tick termination output includes uncovered_scope if any items lack coverage

This prevents the #1 failure mode: LLM decomposition misses part of the original task, pipeline declares "complete" while major scope items are untouched.

Interactive Mode Details (with -i)

Ask targeted questions derived from selected roles — what does each role need that can't be inferred from the codebase? Aim for 3-5 grouped questions, merged with the Definition of Done questions above.

  • Engineering roles usually read code directly — no extra context needed.
  • Product and user roles benefit most: "Who are your target users?", "What's the product stage?"
  • Security and Compliance may need: "Do you handle PII?", "Target markets?"

Persona construction for user roles: In auto mode, infer from project context. In interactive mode, ask directly.

Project Context

Subagents don't inherit CLAUDE.md or project instructions automatically. When dispatching any subagent, forward relevant project context: dev workflow rules, precommit checks, coding conventions, test commands. Include this in every subagent prompt.

Superpowers Integration

If superpowers skills are available, use them: brainstorming for design, plan writing, subagent-driven development for build, and branch delivery.


Built-in Roles

Product:     pm, designer
User Lens:   new-user, active-user, churned-user
Engineering: frontend, backend, devops, architect, engineer
Quality:     security, tester, compliance, a11y
Specialist:  planner, user-simulator, devil-advocate

Role definitions live in roles/.md. Add a .md file to roles/ to create a custom role.

Role Discovery

The orchestrator searches for role definitions in this order (later sources override earlier ones with the same filename):

  1. Built-in rolesroles/.md in OPC's install directory
  2. Flow template roles — if the active flow template specifies rolesDir, scan _resolvedRolesDir/.md. Custom roles with the same name as a built-in one take precedence for this flow.
  3. Dynamic roles — created on-the-fly during execution (see below)

How to check for custom roles: After opc-harness init, if the flow template was loaded from ~/.claude/flows/, check FLOW_TEMPLATES[template]._resolvedRolesDir. If it exists and is a directory, scan it for

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.