{
  "schemaVersion": "1.0",
  "item": {
    "slug": "apprentice",
    "name": "Apprentice",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Taha2053/apprentice",
    "canonicalUrl": "https://clawhub.ai/Taha2053/apprentice",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/apprentice",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=apprentice",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "observe.py",
      "synthesize.py",
      "SKILL.md",
      "run.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/apprentice"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/apprentice",
    "agentPageUrl": "https://openagent3.xyz/skills/apprentice/agent",
    "manifestUrl": "https://openagent3.xyz/skills/apprentice/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/apprentice/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Apprentice — Watch Me Once. Do It Forever.",
        "body": "The entire history of computing: you describe what you want → the computer executes.\nApprentice flips it: you do what you want → the agent watches → it becomes a permanent skill.\n\nThis is Programming by Demonstration — a 30-year holy grail of human-computer interaction research. Every attempt failed because it required constrained environments or rigid formal specifications. LLM agents make it possible for the first time:\n\nWatch what you actually do (not what you say you do)\nUnderstand your intent, not just your actions\nGeneralize across contexts — knowing what's a variable vs. what's a constant\nTurn it into a repeatable workflow your agent can run, refine, and chain forever"
      },
      {
        "title": "External Endpoints",
        "body": "EndpointPurposeData SentNoneFully localNothing leaves your machine\n\nApprentice records locally. All synthesis happens via your already-running LLM session. No external APIs."
      },
      {
        "title": "Security & Privacy",
        "body": "Zero external calls. Observation logs, workflow files, and all synthesis happen locally.\nNo credentials accessed. Apprentice observes what you tell it — it doesn't read system files or intercept your input at an OS level.\nYou review before saving. After observation, you see the synthesized workflow and approve it before it's saved as a permanent skill.\nSandboxed execution. Generated workflow run scripts are plain bash with full security manifest headers.\n\nTrust Statement: Apprentice writes observation logs and workflow SKILL.md files locally. The only thing it sends to the LLM is your described observation + synthesis request, using your existing session. Nothing leaves your machine."
      },
      {
        "title": "Model Invocation Note",
        "body": "Apprentice is always user-initiated. It activates on \"watch me\" or equivalent phrases, and pauses until you say \"done\" or \"stop watching.\" Synthesis runs once per observation session, with your review before saving. Workflows execute only when explicitly invoked."
      },
      {
        "title": "Step 1 — Start Observation",
        "body": "\"Watch me\"\n\"Apprentice mode on\"\n\"Learn this\"\n\"I'm going to show you how I do X\"\n\nThe agent enters observation mode. It listens and records your actions."
      },
      {
        "title": "Step 2 — Do the Task Naturally",
        "body": "Just do what you normally do. Talk out loud if it helps — the agent hears everything:\n\nCommands you run\nFiles you create, edit, or delete\nDecisions you make and why\nThe order of steps\nWhat changes between runs (variables) vs. what stays constant\n\nYou don't need to be formal. \"Now I update the README with the project name\" is enough."
      },
      {
        "title": "Step 3 — Stop Observation",
        "body": "\"Done\"\n\"Stop watching\"\n\"That's it\"\n\"End observation\""
      },
      {
        "title": "Step 4 — Review the Synthesis",
        "body": "Apprentice shows you:\n\nWhat it understood as the workflow name and purpose\nThe steps it identified, in order\nThe variables it detected (things that change each run)\nThe constants (things that stay the same)\nThe generated workflow as a readable, editable description\n\nYou approve, edit, or reject."
      },
      {
        "title": "Step 5 — It's a Permanent Skill",
        "body": "Approved workflows live in apprentice/workflows/ as named SKILL.md files. Your agent can:\n\n\"Run new-project-setup\"\n\"Do the weekly-report workflow with topic=AI agents\"\n\"What workflows have you learned?\"\n\"Replay morning-routine\""
      },
      {
        "title": "Example: Learning a Workflow",
        "body": "User:\n\n\"Watch me set up a new project\"\n\n[User does the following, narrating out loud]:\n\nmkdir projects/client-dashboard\ncd projects/client-dashboard\ncp -r ~/templates/react-starter .\nsed -i 's/TEMPLATE_NAME/client-dashboard/g' README.md\ngit init\ngit remote add origin git@github.com:myorg/client-dashboard.git\necho \"Done — this is how I start every new project\"\n\nUser:\n\n\"Done watching\"\n\nApprentice responds:\n\n🎓 OBSERVATION COMPLETE — New Project Setup\n\nWhat I understood:\n  Purpose: Initialize a new project from template\n  Name: \"new-project-setup\"\n\nSteps I identified:\n  1. Create project directory with name [PROJECT_NAME]\n  2. Copy React starter template\n  3. Replace template placeholder with [PROJECT_NAME] in README\n  4. Initialize git repository\n  5. Add remote origin at [GIT_ORG]/[PROJECT_NAME]\n\nVariables (change each run):\n  • PROJECT_NAME — the new project's name\n  • GIT_ORG — your GitHub organization (default: myorg)\n\nConstants (same every time):\n  • Template source: ~/templates/react-starter\n  • README placeholder: TEMPLATE_NAME\n\nDoes this look right? [Accept] [Edit] [Reject]\n\nNext time:\n\n\"New project setup for analytics-redesign\"\n→ Agent runs all 5 steps automatically with PROJECT_NAME=analytics-redesign"
      },
      {
        "title": "Trigger Phrases",
        "body": "Start observation:\n\n\"Watch me\"\n\"Apprentice mode\"\n\"Learn this\"\n\"Remember how I do this\"\n\"I'll show you\"\n\"Teaching you something\"\n\nStop observation:\n\n\"Done\"\n\"Stop watching\"\n\"That's it\"\n\"Got it?\"\n\"End lesson\"\n\nRun a workflow:\n\n\"Run [workflow-name]\"\n\"Do the [workflow-name] workflow\"\n\"[workflow-name] with [variable=value]\"\n\"Replay [workflow-name]\"\n\nManage workflows:\n\n\"What have you learned?\"\n\"Show me my workflows\"\n\"Delete [workflow-name]\"\n\"Edit [workflow-name]\"\n\"When did you learn [workflow-name]?\""
      },
      {
        "title": "What Makes a Good Observation",
        "body": "The more context you give, the better Apprentice understands:\n\n✅ Talk out loud — \"Now I'm going to update the config with the new API key\"\n✅ Explain why — \"I always do this before deploying because staging needs different env vars\"\n✅ Name the variables — \"The PROJECT_NAME here would change each time\"\n✅ Mark the end — \"And that's the whole workflow, every time\"\n\n❌ Silent actions — Apprentice can only learn what it can observe through your conversation\n❌ GUI-only tasks — Apprentice works with what you describe; it doesn't watch your screen"
      },
      {
        "title": "Workflow Files",
        "body": "Each learned workflow lives in apprentice/workflows/<name>/:\n\napprentice/workflows/new-project-setup/\n├── SKILL.md          ← The learned workflow (OpenClaw-compatible)\n├── run.sh            ← Generated execution script\n└── observation.json  ← Raw observation log (editable)\n\nThe generated SKILL.md is a full, valid OpenClaw skill. This means:\n\nOther skills can call it\nYou can edit it manually to refine\nYou can publish it to ClawHub to share with others"
      },
      {
        "title": "Chaining Learned Workflows",
        "body": "Once you have multiple workflows, Apprentice can chain them:\n\n\"After running new-project-setup, also run notify-team\"\n→ Agent chains both workflows in sequence\n\n\"If the deploy workflow fails, run rollback-staging\"\n→ Conditional chaining with error handling"
      },
      {
        "title": "Workflow Library",
        "body": "After a few weeks of use, your workflow library becomes a personal operating system — a library of you. Things like:\n\nmorning-routine — the first 15 minutes of your day\nnew-project-setup — how you start every project\nweekly-report — how you compile and send the Friday summary\nclient-onboarding — every step you take when a new client joins\ndeploy-staging — your exact deployment sequence\ncode-review-prep — how you prepare before reviewing a PR\n\nNo two users' libraries will ever be the same. This is your agent, shaped by what only you do."
      },
      {
        "title": "File Structure",
        "body": "apprentice/\n├── SKILL.md                         ← You are here\n├── README.md                        ← Install guide\n├── scripts/\n│   ├── observe.py                   ← Observation session manager\n│   ├── synthesize.py                ← Turns observation into workflow SKILL.md\n│   └── run.py                       ← Executes a named workflow\n└── workflows/                       ← Your learned workflow library\n    └── (empty on install, grows with you)"
      },
      {
        "title": "Philosophy",
        "body": "Every tool ever built asks: What do you want?\n\nApprentice asks: Can I watch?\n\nThe difference is everything. When you describe what you want, you lose nuance — the order matters, the edge cases matter, the \"I always do this first\" matters. When Apprentice watches, it captures all of it, exactly as you actually do it.\n\nYour agent doesn't get smarter by being trained on more data. It gets smarter by watching you."
      }
    ],
    "body": "Apprentice — Watch Me Once. Do It Forever.\n\nThe entire history of computing: you describe what you want → the computer executes. Apprentice flips it: you do what you want → the agent watches → it becomes a permanent skill.\n\nThis is Programming by Demonstration — a 30-year holy grail of human-computer interaction research. Every attempt failed because it required constrained environments or rigid formal specifications. LLM agents make it possible for the first time:\n\nWatch what you actually do (not what you say you do)\nUnderstand your intent, not just your actions\nGeneralize across contexts — knowing what's a variable vs. what's a constant\nTurn it into a repeatable workflow your agent can run, refine, and chain forever\nExternal Endpoints\nEndpoint\tPurpose\tData Sent\nNone\tFully local\tNothing leaves your machine\n\nApprentice records locally. All synthesis happens via your already-running LLM session. No external APIs.\n\nSecurity & Privacy\nZero external calls. Observation logs, workflow files, and all synthesis happen locally.\nNo credentials accessed. Apprentice observes what you tell it — it doesn't read system files or intercept your input at an OS level.\nYou review before saving. After observation, you see the synthesized workflow and approve it before it's saved as a permanent skill.\nSandboxed execution. Generated workflow run scripts are plain bash with full security manifest headers.\n\nTrust Statement: Apprentice writes observation logs and workflow SKILL.md files locally. The only thing it sends to the LLM is your described observation + synthesis request, using your existing session. Nothing leaves your machine.\n\nModel Invocation Note\n\nApprentice is always user-initiated. It activates on \"watch me\" or equivalent phrases, and pauses until you say \"done\" or \"stop watching.\" Synthesis runs once per observation session, with your review before saving. Workflows execute only when explicitly invoked.\n\nHow It Works\nStep 1 — Start Observation\n\"Watch me\"\n\"Apprentice mode on\"\n\"Learn this\"\n\"I'm going to show you how I do X\"\n\n\nThe agent enters observation mode. It listens and records your actions.\n\nStep 2 — Do the Task Naturally\n\nJust do what you normally do. Talk out loud if it helps — the agent hears everything:\n\nCommands you run\nFiles you create, edit, or delete\nDecisions you make and why\nThe order of steps\nWhat changes between runs (variables) vs. what stays constant\n\nYou don't need to be formal. \"Now I update the README with the project name\" is enough.\n\nStep 3 — Stop Observation\n\"Done\"\n\"Stop watching\"\n\"That's it\"\n\"End observation\"\n\nStep 4 — Review the Synthesis\n\nApprentice shows you:\n\nWhat it understood as the workflow name and purpose\nThe steps it identified, in order\nThe variables it detected (things that change each run)\nThe constants (things that stay the same)\nThe generated workflow as a readable, editable description\n\nYou approve, edit, or reject.\n\nStep 5 — It's a Permanent Skill\n\nApproved workflows live in apprentice/workflows/ as named SKILL.md files. Your agent can:\n\n\"Run new-project-setup\"\n\"Do the weekly-report workflow with topic=AI agents\"\n\"What workflows have you learned?\"\n\"Replay morning-routine\"\n\nExample: Learning a Workflow\n\nUser:\n\n\"Watch me set up a new project\"\n\n\n[User does the following, narrating out loud]:\n\nmkdir projects/client-dashboard\ncd projects/client-dashboard\ncp -r ~/templates/react-starter .\nsed -i 's/TEMPLATE_NAME/client-dashboard/g' README.md\ngit init\ngit remote add origin git@github.com:myorg/client-dashboard.git\necho \"Done — this is how I start every new project\"\n\n\nUser:\n\n\"Done watching\"\n\n\nApprentice responds:\n\n🎓 OBSERVATION COMPLETE — New Project Setup\n\nWhat I understood:\n  Purpose: Initialize a new project from template\n  Name: \"new-project-setup\"\n\nSteps I identified:\n  1. Create project directory with name [PROJECT_NAME]\n  2. Copy React starter template\n  3. Replace template placeholder with [PROJECT_NAME] in README\n  4. Initialize git repository\n  5. Add remote origin at [GIT_ORG]/[PROJECT_NAME]\n\nVariables (change each run):\n  • PROJECT_NAME — the new project's name\n  • GIT_ORG — your GitHub organization (default: myorg)\n\nConstants (same every time):\n  • Template source: ~/templates/react-starter\n  • README placeholder: TEMPLATE_NAME\n\nDoes this look right? [Accept] [Edit] [Reject]\n\n\nNext time:\n\n\"New project setup for analytics-redesign\"\n→ Agent runs all 5 steps automatically with PROJECT_NAME=analytics-redesign\n\nTrigger Phrases\n\nStart observation:\n\n\"Watch me\"\n\"Apprentice mode\"\n\"Learn this\"\n\"Remember how I do this\"\n\"I'll show you\"\n\"Teaching you something\"\n\n\nStop observation:\n\n\"Done\"\n\"Stop watching\"\n\"That's it\"\n\"Got it?\"\n\"End lesson\"\n\n\nRun a workflow:\n\n\"Run [workflow-name]\"\n\"Do the [workflow-name] workflow\"\n\"[workflow-name] with [variable=value]\"\n\"Replay [workflow-name]\"\n\n\nManage workflows:\n\n\"What have you learned?\"\n\"Show me my workflows\"\n\"Delete [workflow-name]\"\n\"Edit [workflow-name]\"\n\"When did you learn [workflow-name]?\"\n\nWhat Makes a Good Observation\n\nThe more context you give, the better Apprentice understands:\n\n✅ Talk out loud — \"Now I'm going to update the config with the new API key\" ✅ Explain why — \"I always do this before deploying because staging needs different env vars\" ✅ Name the variables — \"The PROJECT_NAME here would change each time\" ✅ Mark the end — \"And that's the whole workflow, every time\"\n\n❌ Silent actions — Apprentice can only learn what it can observe through your conversation ❌ GUI-only tasks — Apprentice works with what you describe; it doesn't watch your screen\n\nWorkflow Files\n\nEach learned workflow lives in apprentice/workflows/<name>/:\n\napprentice/workflows/new-project-setup/\n├── SKILL.md          ← The learned workflow (OpenClaw-compatible)\n├── run.sh            ← Generated execution script\n└── observation.json  ← Raw observation log (editable)\n\n\nThe generated SKILL.md is a full, valid OpenClaw skill. This means:\n\nOther skills can call it\nYou can edit it manually to refine\nYou can publish it to ClawHub to share with others\nChaining Learned Workflows\n\nOnce you have multiple workflows, Apprentice can chain them:\n\n\"After running new-project-setup, also run notify-team\"\n→ Agent chains both workflows in sequence\n\n\"If the deploy workflow fails, run rollback-staging\"\n→ Conditional chaining with error handling\n\nWorkflow Library\n\nAfter a few weeks of use, your workflow library becomes a personal operating system — a library of you. Things like:\n\nmorning-routine — the first 15 minutes of your day\nnew-project-setup — how you start every project\nweekly-report — how you compile and send the Friday summary\nclient-onboarding — every step you take when a new client joins\ndeploy-staging — your exact deployment sequence\ncode-review-prep — how you prepare before reviewing a PR\n\nNo two users' libraries will ever be the same. This is your agent, shaped by what only you do.\n\nFile Structure\napprentice/\n├── SKILL.md                         ← You are here\n├── README.md                        ← Install guide\n├── scripts/\n│   ├── observe.py                   ← Observation session manager\n│   ├── synthesize.py                ← Turns observation into workflow SKILL.md\n│   └── run.py                       ← Executes a named workflow\n└── workflows/                       ← Your learned workflow library\n    └── (empty on install, grows with you)\n\nPhilosophy\n\nEvery tool ever built asks: What do you want?\n\nApprentice asks: Can I watch?\n\nThe difference is everything. When you describe what you want, you lose nuance — the order matters, the edge cases matter, the \"I always do this first\" matters. When Apprentice watches, it captures all of it, exactly as you actually do it.\n\nYour agent doesn't get smarter by being trained on more data. It gets smarter by watching you."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Taha2053/apprentice",
    "publisherUrl": "https://clawhub.ai/Taha2053/apprentice",
    "owner": "Taha2053",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/apprentice",
    "downloadUrl": "https://openagent3.xyz/downloads/apprentice",
    "agentUrl": "https://openagent3.xyz/skills/apprentice/agent",
    "manifestUrl": "https://openagent3.xyz/skills/apprentice/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/apprentice/agent.md"
  }
}