{"id":"a56ea31d-30b2-42a7-878a-a893337978a6","entityType":"agent","slug":"clawhub-skills-8co-opentangl","name":"opentangl","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-8co-opentangl","canonicalPath":"/agent/clawhub-skills-8co-opentangl","generatedAt":"2026-10-09T21:46:41.432Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project. --- name: opentangl description: Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project. metadata: {\"clawdbot\":{\"emoji\":\"🤖\",\"requires\":{\"anyBins\":[\"node\",\"git\",\"gh\"],\"anyEnv\":[\"OPENAI_API_KEY\",\"ANTHROPIC_API_KEY\"]}}} --- OpenTangl","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:8co:opentangl","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/8co/opentangl","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/8co/opentangl","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verific"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"the","status":"self-declared"},{"label":"be","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"the","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"be","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:the|supported|profile capability:be|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:53:45.236Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:53:45.236Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:53:45.236Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:8co:opentangl","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T21:46:41.431Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-8co-opentangl/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: opentangl\ndescription: Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project.\nmetadata: {\"clawdbot\":{\"emoji\":\"🤖\",\"requires\":{\"anyBins\":[\"node\",\"git\",\"gh\"],\"anyEnv\":[\"OPENAI_API_KEY\",\"ANTHROPIC_API_KEY\"]}}}\n---\n\n# OpenTangl\n\nSet up a self-driving development loop for any JavaScript/TypeScript project. OpenTangl reads a product vision, proposes tasks, writes code, verifies it builds, creates PRs, reviews them with an LLM, and merges — autonomously.\n\n## Prerequisites\n\nBefore starting, verify these are installed. Check silently — only mention what's missing.\n\n- **Node.js** ≥ 18 (`node --version`)\n- **git** configured with a remote (`git --version`)\n- **GitHub CLI** authenticated (`gh auth status`) — needed for PR creation and merging\n- An **LLM API key** — OpenAI (`OPENAI_API_KEY`) or Anthropic (`ANTHROPIC_API_KEY`)\n\nIf anything is missing, tell the user exactly how to install it and stop until resolved.\n\n## Step 1 — Clone OpenTangl\n\n```bash\ngit clone https://github.com/8co/opentangl.git\ncd opentangl\nnpm install\n```\n\nIf the user already has OpenTangl cloned, skip to Step 2.\n\n## Step 2 — Determine the Target Project\n\nAsk the user:\n\n> Are you **(a)** building something new from scratch, **(b)** improving an existing project, or **(c)** not sure?\n\n### Path A: New Project\n\n1. Ask: **\"What do you want to build?\"** Get a 2-3 sentence description.\n2. Ask: **\"What type of app?\"** — Frontend (React/Vite, Next.js), API/Backend (Serverless, Express), or Full-stack (both).\n3. Scaffold the project using the appropriate tool:\n   - React + Vite: `npm create vite@latest {name} -- --template react-ts`\n   - Next.js: `npx create-next-app@latest {name} --typescript`\n   - Serverless: `npx serverless create --template aws-nodejs --path {name}`\n   - Express: create `package.json` + `src/index.ts` manually\n4. Initialize git: `git init && git add . && git commit -m \"Initial scaffold\"`\n5. **Ask the user to confirm** before creating a GitHub repo: `gh repo create {name} --public --source . --push`\n6. Note the path to the new project relative to the OpenTangl root.\n\n### Path B: Existing Project\n\n1. Ask: **\"Where is your project?\"** Accept a path. If they say \"this directory,\" use cwd.\n2. Auto-detect the project by scanning its root:\n   - **Type**: `tsconfig.json` → TypeScript, `vite.config.ts` → Vite, `next.config.*` → Next.js, `serverless.yml` → Serverless\n   - **Package manager**: `package-lock.json` → npm, `yarn.lock` → yarn, `pnpm-lock.yaml` → pnpm\n   - **Build/test commands**: Read `package.json` scripts for `build`, `test`, `lint`, `typecheck`\n   - **Source dirs**: Default to `src/` if it exists\n   - **Target branch**: Check `git symbolic-ref refs/remotes/origin/HEAD` or look for `main` vs `master`\n3. Present what you detected and confirm with the user.\n4. Ask: \"Are there other repos that are part of this same product?\" If yes, repeat detection for each.\n\n### Path C: Not Sure\n\nAsk the user to provide the path to their project directory. Once provided, check git status and read config files in that directory, then route to Path A or B.\n\n## Step 3 — Generate projects.yaml\n\nCreate `projects.yaml` in the OpenTangl root directory. Each project entry needs:\n\n```yaml\nprojects:\n  - id: my-app                          # Short kebab-case ID (used in CLI flags)\n    name: my-app                        # Human-readable name\n    path: ../my-app                     # Relative path from OpenTangl root to the project\n    type: react-vite                    # Project type (see below)\n    description: React dashboard app    # One-line description\n    scan_dirs:\n      - src                             # Directories containing source code\n    skip_patterns:\n      - node_modules\n      - dist\n      - \"*.test.*\"\n    verify:                             # Commands that must pass before committing\n      - command: npm\n        args: [run, build]\n    package_manager: npm                # npm | yarn | pnpm\n    merge:\n      target_branch: main               # Branch PRs merge into\n```\n\n**Supported types:** `typescript-node`, `serverless-js`, `serverless-ts`, `react-vite`, `react-next`, `express` (or any descriptive string).\n\nFor **multi-project setups**, add an `environment` field to group related projects under a shared vision:\n\n```yaml\n  - id: my-api\n    environment: my-product\n    # ...\n  - id: my-frontend\n    environment: my-product\n    # ...\n```\n\n## Step 4 — Create the Vision Doc\n\nCreate `docs/environments/{environment}/product-vision.md` (use the project `id` as environment name for single projects, or the `environment` field for multi-project).\n\nThe vision doc has two sections:\n\n### Origin & Direction (human-authored, never modified by OpenTangl)\n\nAsk the user to describe:\n- **What This Is** — 2-3 sentences about the project\n- **Where It's Going** — long-term direction, 6-12 months out\n- **What Matters Most** — 3-5 principles guiding decisions\n\n### Current Priorities (maintained by OpenTangl after each run)\n\nAsk: **\"What are the first 3-5 things you want built or improved?\"**\n\nWrite them as Active Initiatives:\n\n```markdown\n### Active Initiatives\n\n1. **{Priority}** — {What and why}\n   - Status: not started\n```\n\nIf the user isn't sure, offer to scan the codebase and suggest priorities.\n\n## Step 5 — Configure the LLM\n\nCreate `.env` in the OpenTangl root:\n\n**For OpenAI:**\n```\nOPENAI_API_KEY=sk-...\nOPENAI_MODEL=gpt-4o\nDEFAULT_AGENT=openai\n```\n\n**For Anthropic (Claude):**\n```\nANTHROPIC_API_KEY=sk-ant-...\nANTHROPIC_MODEL=claude-sonnet-4-20250514\nDEFAULT_AGENT=anthropic\n```\n\nBoth providers can be configured. The user switches with `--agent openai|anthropic` at runtime.\n\n## Step 6 — First Run\n\nInitialize an empty task queue:\n\n```bash\nmkdir -p tasks\necho \"tasks: []\" > tasks/queue.yaml\n```\n\n**Show the user the command and confirm before running.** The autopilot will create branches, commits, and PRs on their behalf:\n\n```bash\nnpx tsx src/cli.ts autopilot --projects {project-id} --cycles 1 --feature-ratio 0.8\n```\n\nFor multi-project:\n\n```bash\nnpx tsx src/cli.ts autopilot --projects {api-id},{ui-id} --cycles 1 --feature-ratio 0.8\n```\n\n**What happens during a cycle:**\n1. OpenTangl reads the vision doc and scans the codebase\n2. It proposes tasks aligned with the vision\n3. It executes each task autonomously — writes code, runs verification\n4. It creates PRs, reviews them with the LLM, merges if clean\n5. It updates the vision doc with progress\n\nAfter the first run, review the results with the user. Check the sanity check output and the updated vision doc.\n\n## Ongoing Usage\n\nRun autopilot whenever development cycles are needed:\n\n```bash\nnpx tsx src/cli.ts autopilot --projects {ids} --cycles {n} --feature-ratio 0.8\n```\n\n**Key flags:**\n- `--cycles N` — how many propose-execute loops to run\n- `--feature-ratio 0.8` — 80% features, 20% maintenance/testing (adjustable)\n- `--agent openai|anthropic` — override the default LLM provider\n\n**Background execution** (keeps running after terminal closes):\n\n```bash\nnohup caffeinate -dims npx --yes tsx src/cli.ts autopilot --projects {ids} --cycles 3 --feature-ratio 0.8 > /tmp/opentangl.log 2>&1 &\n```\n\nMonitor with: `tail -f /tmp/opentangl.log`\n\n## Troubleshooting\n\n- **\"No pending tasks\"** — The queue is empty. Run autopilot to have the LLM propose tasks, or add more specific priorities to the vision doc.\n- **Build failures** — OpenTangl retries up to 3 times with error feedback. If all attempts fail, the task is marked failed and skipped.\n- **Escalated PRs** — The LLM reviewer flagged critical concerns. Check the GitHub issue it created for details.\n- **\"OPENAI_API_KEY is required\"** — Create `.env` and add your key (see Step 5).\n- **Merge conflicts** — OpenTangl has a built-in conflict resolver. If it can't resolve automatically, the PR is escalated for human review.\n","readmeExcerpt":"--- name: opentangl description: Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project. metadata: {\"clawdbot\":{\"emoji\":\"🤖\",\"requires\":{\"anyBins\":[\"node\",\"git\",\"gh\"],\"anyEnv\":[\"OPENAI_API_KEY\",\"ANTHROPIC_API_KEY\"]}}} --- OpenTangl","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"git clone https://github.com/8co/opentangl.git\ncd opentangl\nnpm install"},{"language":"yaml","snippet":"projects:\n  - id: my-app                          # Short kebab-case ID (used in CLI flags)\n    name: my-app                        # Human-readable name\n    path: ../my-app                     # Relative path from OpenTangl root to the project\n    type: react-vite                    # Project type (see below)\n    description: React dashboard app    # One-line description\n    scan_dirs:\n      - src                             # Directories containing source code\n    skip_patterns:\n      - node_modules\n      - dist\n      - \"*.test.*\"\n    verify:                             # Commands that must pass before committing\n      - command: npm\n        args: [run, build]\n    package_manager: npm                # npm | yarn | pnpm\n    merge:\n      target_branch: main               # Branch PRs merge into"},{"language":"yaml","snippet":"- id: my-api\n    environment: my-product\n    # ...\n  - id: my-frontend\n    environment: my-product\n    # ..."},{"language":"markdown","snippet":"### Active Initiatives\n\n1. **{Priority}** — {What and why}\n   - Status: not started"},{"language":"text","snippet":"OPENAI_API_KEY=sk-...\nOPENAI_MODEL=gpt-4o\nDEFAULT_AGENT=openai"},{"language":"text","snippet":"ANTHROPIC_API_KEY=sk-ant-...\nANTHROPIC_MODEL=claude-sonnet-4-20250514\nDEFAULT_AGENT=anthropic"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project. --- name: opentangl description: Set up and run OpenTangl — an autonomous AI development engine that scans your codebase, proposes tasks aligned with a product vision, writes code, runs verification, creates PRs, and merges — all in a closed loop. Works with any JS/TS project. metadata: {\"clawdbot\":{\"emoji\":\"🤖\",\"requires\":{\"anyBins\":[\"node\",\"git\",\"gh\"],\"anyEnv\":[\"OPENAI_API_KEY\",\"ANTHROPIC_API_KEY\"]}}} --- OpenTangl","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":385,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:46:41.432Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}