{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ogt-docs-create-task",
    "name": "OGT Docs Create Task",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/EduardoU24/ogt-docs-create-task",
    "canonicalUrl": "https://clawhub.ai/EduardoU24/ogt-docs-create-task",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ogt-docs-create-task",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ogt-docs-create-task",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. 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/ogt-docs-create-task"
    },
    "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/ogt-docs-create-task",
    "agentPageUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OGT Docs - Create Task",
        "body": "Complete guide for creating and managing tasks in the docs-first workflow."
      },
      {
        "title": "Overview",
        "body": "Tasks are the unit of work in the docs-first system. Each task is a folder that moves through workflow stages, accumulating documentation and signals as it progresses.\n\nflowchart LR\n    subgraph stages [\"Task Lifecycle\"]\n        P[pending] --> IP[in_progress]\n        IP --> R[review]\n        R --> D[done]\n\n        IP --> B[blocked]\n        B --> IP\n\n        R --> REJ[rejected]\n        REJ --> P\n\n        D --> IMP[implemented]\n    end\n\n    style P fill:#fef3c7\n    style IP fill:#dbeafe\n    style R fill:#e0e7ff\n    style B fill:#fee2e2\n    style REJ fill:#fecaca\n    style D fill:#d1fae5\n    style IMP fill:#a7f3d0"
      },
      {
        "title": "Folder Structure",
        "body": "docs/todo/\n├── pending/                    # Tasks not yet started\n│   └── {task_slug}/\n│       ├── task.md             # Primary task definition\n│       ├── context.md          # Background information (optional)\n│       ├── .version            # Schema version\n│       └── .priority           # Priority level (content: critical|high|medium|low)\n│\n├── in_progress/                # Tasks being actively worked on\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md         # Work log and updates\n│       ├── .version\n│       ├── .priority\n│       ├── .assigned_to_{agent}  # Who's working on it\n│       └── .started_at         # Timestamp when started\n│\n├── review/                     # Tasks awaiting review\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── implementation.md   # What was done\n│       ├── .version\n│       ├── .ready_for_review   # Empty signal\n│       ├── .pr_link            # PR URL if applicable\n│       └── .review_requested_at\n│\n├── blocked/                    # Tasks that cannot proceed\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── .version\n│       ├── .blocked            # Empty signal\n│       ├── .blocked_reason     # Why blocked (content)\n│       ├── .blocked_at         # When blocked\n│       └── .depends_on         # What it's waiting for\n│\n├── done/                       # Completed and verified tasks\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── implementation.md\n│       ├── verification.md     # How it was verified\n│       ├── .version\n│       ├── .verified           # Empty signal - REQUIRED\n│       ├── .completed_at       # Completion timestamp\n│       └── .verified_by_{agent}  # Who verified\n│\n├── rejected/                   # Tasks that were declined\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── .version\n│       ├── .rejected           # Empty signal\n│       ├── .rejected_reason    # Why rejected (content)\n│       └── .rejected_at        # When rejected\n│\n└── implemented/                # Done tasks that are deployed/released\n    └── {task_slug}/\n        ├── task.md\n        ├── implementation.md\n        ├── verification.md\n        ├── .version\n        ├── .verified\n        ├── .completed_at\n        ├── .implemented_at     # When deployed\n        └── .release_version    # Which release included it"
      },
      {
        "title": "Stage: pending/",
        "body": "Tasks that are defined but not yet started."
      },
      {
        "title": "Example: pending/fuzzy_search/",
        "body": "pending/\n└── fuzzy_search/\n    ├── task.md\n    ├── context.md\n    ├── .version\n    └── .priority\n\ntask.md\n\n# Task: Fuzzy Search Implementation\n\n## Summary\n\nReplace substring search with fuzzy indexed search using MiniSearch.\n\n## Objectives\n\n- Install MiniSearch library\n- Create SearchIndexService\n- Refactor GlobalSearch component\n- Add debounce to search input\n\n## Acceptance Criteria\n\n- [ ] Typing \"fir\" returns \"Fireball\", \"Fire Elemental\", etc.\n- [ ] Results ranked by relevance\n- [ ] Search responds within 16ms\n- [ ] TypeScript compiles clean\n\n## Dependencies\n\n- None\n\n## Estimated Effort\n\nMedium (2-4 hours)\n\n## References\n\n- MiniSearch docs: https://lucaong.github.io/minisearch/\n- Current search: front/components/features/GlobalSearch.tsx\n\ncontext.md\n\n# Context: Fuzzy Search\n\n## Current State\n\nGlobalSearch.tsx uses `String.toLowerCase().includes()` for matching.\nNo ranking, no debounce, no fuzzy matching.\n\n## User Request\n\n\"Global search with ctrl+k, should be instant, indexed, fuzzy.\nIf I search fire just by typing fir I should get instantly a list.\"\n\n## Technical Decision\n\nMiniSearch chosen over:\n\n- Fuse.js (heavier, slower on large datasets)\n- Lunr (no fuzzy matching)\n\nMiniSearch is 6KB gzipped, used by VitePress.\n\n.version\n\n{ \"schema\": \"1.0\", \"created\": \"2026-02-05T10:00:00Z\" }\n\n.priority\n\nhigh"
      },
      {
        "title": "Stage: in_progress/",
        "body": "Tasks actively being worked on."
      },
      {
        "title": "Example: in_progress/card_variants/",
        "body": "in_progress/\n└── card_variants/\n    ├── task.md\n    ├── progress.md\n    ├── .version\n    ├── .priority\n    ├── .assigned_to_claude\n    └── .started_at\n\ntask.md\n\n# Task: Card Variant System Expansion\n\n## Summary\n\nAdd Condensed, ListItemCondensed, and stub Quaternary/Penta card variants.\n\n## Objectives\n\n- Update UICardFrameType enum\n- Create \\*Condensed.tsx components\n- Create \\*ListItemCondensed.tsx components\n- Stub Quaternary and Penta variants\n- Update all \\*CardMain.tsx orchestrators\n\n## Acceptance Criteria\n\n- [ ] Condensed renders 48-64px tile with art, border, icon badge\n- [ ] ListItemCondensed renders 32px single-line row\n- [ ] Quaternary/Penta exist as stubs\n- [ ] All orchestrators route to new variants\n- [ ] TypeScript compiles clean\n\n## Dependencies\n\n- None\n\n## Estimated Effort\n\nLarge (4-8 hours)\n\nprogress.md\n\n# Progress: Card Variants\n\n## 2026-02-05 10:30 - Started\n\n- Read existing card components\n- Identified 8 entity types needing variants\n- Created implementation plan\n\n## 2026-02-05 11:00 - UICardFrameType Updated\n\n- Added Condensed, Penta, ListItem, ListItemCondensed to type\n- File: front/data/app-generics.ts:82\n\n## 2026-02-05 11:30 - CreatureCardCondensed Created\n\n- Created front/components/compendium/CreatureCardCondensed.tsx\n- 64x64 portrait, rarity border, type icon badge\n- Tooltip on hover shows name\n\n## Current Status\n\n- [x] Type definition updated\n- [x] CreatureCardCondensed\n- [ ] ItemCardCondensed\n- [ ] AbilityCardCondensed\n- [ ] Remaining entity types\n- [ ] ListItemCondensed variants\n- [ ] Quaternary/Penta stubs\n- [ ] Orchestrator updates\n\n.assigned_to_claude\n\n(empty file - presence indicates assignment)\n\n.started_at\n\n2026-02-05T10:30:00Z"
      },
      {
        "title": "Stage: review/",
        "body": "Tasks completed and awaiting review."
      },
      {
        "title": "Example: review/spell_routes/",
        "body": "review/\n└── spell_routes/\n    ├── task.md\n    ├── progress.md\n    ├── implementation.md\n    ├── .version\n    ├── .ready_for_review\n    ├── .pr_link\n    └── .review_requested_at\n\ntask.md\n\n# Task: Wire SpellDetailView into Router\n\n## Summary\n\nSpellDetailView.tsx exists but is not routed. Wire it into the app router.\n\n## Objectives\n\n- Add route to APP_ROUTES\n- Add Route element in App.tsx\n- Verify component loads correctly\n\n## Acceptance Criteria\n\n- [ ] /spells/:slug route works\n- [ ] SpellDetailView renders with spell data\n- [ ] Navigation from spell cards works\n- [ ] TypeScript compiles clean\n\nprogress.md\n\n# Progress: Spell Routes\n\n## 2026-02-05 09:00 - Started\n\n- Located SpellDetailView at front/app/(main)/compendium/SpellDetailView.tsx\n- Reviewed existing route patterns\n\n## 2026-02-05 09:15 - Implementation Complete\n\n- Added spell_detail to APP_ROUTES in app-configs.ts\n- Added Route element in App.tsx\n- Tested with /spells/fireball - works\n- TypeScript compiles clean\n\nimplementation.md\n\n# Implementation: Spell Routes\n\n## Files Changed\n\n### front/data/app-configs.ts\n\nAdded route configuration:\n\n```typescript\nspell_detail: {\n  path: '/spells/:slug',\n  label: 'Spell Detail',\n}\n```"
      },
      {
        "title": "front/app/App.tsx",
        "body": "Added import and route:\n\nimport SpellDetailView from './(main)/compendium/SpellDetailView';\n// ...\n<Route path=\"/spells/:slug\" element={<SpellDetailView />} />"
      },
      {
        "title": "Testing",
        "body": "Manual test: /spells/fireball loads correctly\nManual test: /spells/magic-missile loads correctly\nTypeScript: No errors\n\n#### .ready_for_review\n\n(empty file)\n\n#### .pr_link\n\nhttps://github.com/org/repo/pull/123\n\n#### .review_requested_at\n\n2026-02-05T09:30:00Z\n\n---\n\n## Stage: blocked/\n\nTasks that cannot proceed due to dependencies or blockers.\n\n### Example: blocked/auth_refactor/\n\nblocked/\n└── auth_refactor/\n├── task.md\n├── progress.md\n├── .version\n├── .blocked\n├── .blocked_reason\n├── .blocked_at\n└── .depends_on\n\n#### task.md\n```markdown\n# Task: Auth Service Refactor\n\n## Summary\nRefactor AuthService to support multiple OAuth providers.\n\n## Objectives\n- Abstract provider-specific logic\n- Add Steam OAuth support\n- Implement token refresh flow\n- Update all auth consumers\n\n## Acceptance Criteria\n- [ ] Google OAuth still works\n- [ ] Discord OAuth still works\n- [ ] Steam OAuth works\n- [ ] Token refresh is automatic\n- [ ] No breaking changes to API\n\nprogress.md\n\n# Progress: Auth Refactor\n\n## 2026-02-03 14:00 - Started\n\n- Analyzed current AuthService implementation\n- Identified 3 provider-specific code paths\n\n## 2026-02-03 15:00 - BLOCKED\n\n- Steam OAuth requires server-side changes\n- Backend team needs to add Steam provider to Strapi\n- Cannot proceed until backend work is complete\n\n## Waiting For\n\n- Backend task: \"Add Steam OAuth Provider to Strapi\"\n- ETA: Unknown\n\n.blocked\n\n(empty file)\n\n.blocked_reason\n\nRequires backend changes: Steam OAuth provider must be added to Strapi before frontend can implement Steam login flow. Backend task not yet created.\n\n.blocked_at\n\n2026-02-03T15:00:00Z\n\n.depends_on\n\n- backend/steam_oauth_provider (not yet created)\n- Strapi plugin configuration"
      },
      {
        "title": "Stage: done/",
        "body": "Completed tasks that have been verified."
      },
      {
        "title": "Example: done/ogt_cli_commands/",
        "body": "done/\n└── ogt_cli_commands/\n    ├── task.md\n    ├── progress.md\n    ├── implementation.md\n    ├── verification.md\n    ├── .version\n    ├── .verified\n    ├── .completed_at\n    └── .verified_by_claude\n\ntask.md\n\n# Task: OGT CLI Check Commands\n\n## Summary\n\nCreate generic file/data validation CLI tools under `ogt check`.\n\n## Objectives\n\n- ogt check assets - Check for missing files\n- ogt check slugs - Verify slug conventions\n- ogt check indexed - Verify index.ts exports\n- ogt check data - Validate against schema\n\n## Acceptance Criteria\n\n- [x] All commands have --help\n- [x] Commands return proper exit codes\n- [x] JSON output option available\n- [x] TypeScript compiles clean\n\nverification.md\n\n# Verification: OGT CLI Commands\n\n## Verification Date\n\n2026-01-30\n\n## Tests Performed\n\n### Command Existence\n\n```bash\n$ ogt check --help\n# ✅ Shows subcommands: assets, slugs, indexed, data, from-list\n\n$ ogt check assets --help\n# ✅ Shows usage and flags\n\n$ ogt check slugs --help\n# ✅ Shows usage and flags\n\n$ ogt check indexed --help\n# ✅ Shows usage and flags\n\n$ ogt check data --help\n# ✅ Shows usage and flags\n```"
      },
      {
        "title": "Functional Tests",
        "body": "$ ogt check indexed creatures\n# ✅ Returns JSON with 197 total, 197 passed\n\n$ ogt check slugs front/data/app-creatures -r\n# ✅ Returns JSON with slug validation results\n\n$ ogt check assets static/public/creatures portrait.png -r\n# ✅ Returns JSON listing missing portraits"
      },
      {
        "title": "Exit Codes",
        "body": "$ ogt check indexed creatures && echo \"pass\"\n# ✅ Exits 0, prints \"pass\"\n\n$ ogt check indexed nonexistent || echo \"fail\"\n# ✅ Exits 1, prints \"fail\""
      },
      {
        "title": "Verification Result",
        "body": "PASS - All acceptance criteria met\n\n#### .verified\n\n(empty file - REQUIRED for done/ status)\n\n#### .completed_at\n\n2026-01-30T14:00:00Z\n\n#### .verified_by_claude\n\n(empty file)\n\n---\n\n## Stage: rejected/\n\nTasks that were declined and will not be implemented.\n\n### Example: rejected/legacy_api_compat/\n\nrejected/\n└── legacy_api_compat/\n├── task.md\n├── .version\n├── .rejected\n├── .rejected_reason\n└── .rejected_at\n\n#### task.md\n```markdown\n# Task: Legacy API Compatibility Layer\n\n## Summary\nCreate compatibility layer for v0 API endpoints.\n\n## Objectives\n- Map v0 endpoints to v1 services\n- Maintain backward compatibility for 6 months\n- Log deprecation warnings\n\n## Acceptance Criteria\n- [ ] All v0 endpoints work\n- [ ] Deprecation headers sent\n- [ ] Usage logging enabled\n\n.rejected\n\n(empty file)\n\n.rejected_reason\n\nDecision: Clean break over compatibility layer.\n\nRationale:\n1. No external consumers of v0 API\n2. Maintenance burden outweighs benefits\n3. v0 endpoints have security issues\n4. Better to document migration path\n\nAlternative: Create migration guide instead.\nSee: docs/guides/v0_to_v1_migration/\n\n.rejected_at\n\n2026-02-01T09:00:00Z"
      },
      {
        "title": "Stage: implemented/",
        "body": "Tasks that are done AND deployed/released to production."
      },
      {
        "title": "Example: implemented/creatures_index/",
        "body": "implemented/\n└── creatures_index/\n    ├── task.md\n    ├── implementation.md\n    ├── verification.md\n    ├── .version\n    ├── .verified\n    ├── .completed_at\n    ├── .implemented_at\n    └── .release_version\n\n.implemented_at\n\n2026-02-02T10:00:00Z\n\n.release_version\n\nv1.2.0"
      },
      {
        "title": "Creating a New Task",
        "body": "flowchart TD\n    A[User Request] --> B{Task Defined?}\n    B -->|No| C[Create task.md]\n    C --> D[Add context.md if needed]\n    D --> E[Set .priority]\n    E --> F[Add .version]\n    F --> G[Place in pending/]\n    B -->|Yes| H[Update existing task]\n\nSteps:\n\nCreate folder: docs/todo/pending/{task_slug}/\nCreate task.md with Summary, Objectives, Acceptance Criteria\nOptionally add context.md for background\nCreate .priority with level (critical/high/medium/low)\nCreate .version with schema version"
      },
      {
        "title": "Starting a Task",
        "body": "# Move from pending to in_progress\nmv docs/todo/pending/{task_slug} docs/todo/in_progress/\n\n# Add assignment signal\ntouch docs/todo/in_progress/{task_slug}/.assigned_to_{agent}\n\n# Add start timestamp\necho \"$(date -Iseconds)\" > docs/todo/in_progress/{task_slug}/.started_at\n\n# Create progress log\ntouch docs/todo/in_progress/{task_slug}/progress.md"
      },
      {
        "title": "Blocking a Task",
        "body": "# Move to blocked\nmv docs/todo/in_progress/{task_slug} docs/todo/blocked/\n\n# Add blocked signals\ntouch docs/todo/blocked/{task_slug}/.blocked\necho \"Reason here\" > docs/todo/blocked/{task_slug}/.blocked_reason\necho \"$(date -Iseconds)\" > docs/todo/blocked/{task_slug}/.blocked_at"
      },
      {
        "title": "Submitting for Review",
        "body": "# Move to review\nmv docs/todo/in_progress/{task_slug} docs/todo/review/\n\n# Add review signals\ntouch docs/todo/review/{task_slug}/.ready_for_review\necho \"$(date -Iseconds)\" > docs/todo/review/{task_slug}/.review_requested_at\n\n# Add implementation docs\n# Create implementation.md documenting what was done"
      },
      {
        "title": "Completing a Task",
        "body": "CRITICAL: Must verify before marking done!\n\n# 1. Run ALL acceptance criteria checks\n# 2. Document in verification.md\n# 3. ONLY if all pass:\n\n# Move to done\nmv docs/todo/review/{task_slug} docs/todo/done/\n\n# Add completion signals\ntouch docs/todo/done/{task_slug}/.verified  # REQUIRED\necho \"$(date -Iseconds)\" > docs/todo/done/{task_slug}/.completed_at\ntouch docs/todo/done/{task_slug}/.verified_by_{agent}"
      },
      {
        "title": "Rejecting a Task",
        "body": "# Move to rejected\nmv docs/todo/review/{task_slug} docs/todo/rejected/\n\n# Add rejection signals\ntouch docs/todo/rejected/{task_slug}/.rejected\necho \"Reason here\" > docs/todo/rejected/{task_slug}/.rejected_reason\necho \"$(date -Iseconds)\" > docs/todo/rejected/{task_slug}/.rejected_at"
      },
      {
        "title": "Status Signals (empty files)",
        "body": "SignalStageMeaning.blockedblocked/Task cannot proceed.ready_for_reviewreview/Ready for review.verifieddone/, implemented/REQUIRED - Implementation verified.rejectedrejected/Task declined"
      },
      {
        "title": "Assignment Signals (empty files)",
        "body": "SignalStageMeaning.assigned_to_{agent}in_progress/Who's working on it.verified_by_{agent}done/Who verified it.approved_by_{name}anyWho approved"
      },
      {
        "title": "Content Signals (contain text)",
        "body": "SignalContentExample.versionJSON schema version{\"schema\": \"1.0\", \"created\": \"...\"}.priorityPriority levelhigh.blocked_reasonWhy blockedFree text explanation.rejected_reasonWhy rejectedFree text explanation.depends_onDependenciesList of dependencies.pr_linkPR URLhttps://github.com/....started_atISO timestamp2026-02-05T10:00:00Z.completed_atISO timestamp2026-02-05T14:00:00Z.blocked_atISO timestamp2026-02-05T12:00:00Z.rejected_atISO timestamp2026-02-05T09:00:00Z.implemented_atISO timestamp2026-02-05T16:00:00Z.release_versionVersion stringv1.2.0"
      },
      {
        "title": "Task.md Template",
        "body": "# Task: {Title}\n\n## Summary\n\nOne paragraph describing what needs to be done and why.\n\n## Objectives\n\n- Specific objective 1\n- Specific objective 2\n- Specific objective 3\n\n## Acceptance Criteria\n\n- [ ] Verifiable criterion 1\n- [ ] Verifiable criterion 2\n- [ ] Verifiable criterion 3\n- [ ] TypeScript compiles clean (if applicable)\n\n## Dependencies\n\n- {dependency} or \"None\"\n\n## Estimated Effort\n\n{Tiny|Small|Medium|Large|XLarge} ({time estimate})\n\n## References\n\n- Relevant link 1\n- Relevant file path\n- Related task"
      },
      {
        "title": "Verification Rules",
        "body": "NEVER mark a task as done without verification."
      },
      {
        "title": "Verification Checklist",
        "body": "## For each acceptance criterion:\n\n1. IDENTIFY: What command/action proves this criterion?\n2. RUN: Execute the verification\n3. CAPTURE: Record the output\n4. ASSESS: Does it pass?\n\n## Required Verifications by Type:\n\n### File Creation\n\n- [ ] File exists: `test -f {path} && echo \"EXISTS\"`\n- [ ] File is exported (if module): `grep \"export\" {index_file}`\n\n### Dependency Installation\n\n- [ ] In package.json: `grep \"{package}\" package.json`\n- [ ] Can import: Create test file with import\n\n### Route Addition\n\n- [ ] In router: `grep \"{route}\" {router_file}`\n- [ ] Navigable: Test in browser\n\n### Pattern Removal\n\n- [ ] Zero matches: `grep -r \"{pattern}\" {path} | wc -l` = 0\n\n### Type Addition\n\n- [ ] Type exists: `grep \"type {Name}\" {types_file}`\n- [ ] Compiles: `tsc --noEmit` or equivalent\n\n### General\n\n- [ ] TypeScript compiles: Run type checker\n- [ ] Tests pass: Run test suite\n- [ ] No console errors: Check browser/runtime"
      },
      {
        "title": "Common Mistakes",
        "body": "MistakeWhy It's WrongCorrect ApproachMoving to done/ without .verifiedNo proof of completionVerify first, then moveTrusting task.md checkboxesCheckboxes can be wrongRun actual verificationSkipping implementation.mdNo record of what changedDocument all changesEmpty verification.mdNo proof of verificationRecord actual test outputMultiple tasks in progressContext switching wasteFinish one, then start nextEditing task.md in done/History should be immutableCreate follow-up task instead"
      }
    ],
    "body": "OGT Docs - Create Task\n\nComplete guide for creating and managing tasks in the docs-first workflow.\n\nOverview\n\nTasks are the unit of work in the docs-first system. Each task is a folder that moves through workflow stages, accumulating documentation and signals as it progresses.\n\nflowchart LR\n    subgraph stages [\"Task Lifecycle\"]\n        P[pending] --> IP[in_progress]\n        IP --> R[review]\n        R --> D[done]\n\n        IP --> B[blocked]\n        B --> IP\n\n        R --> REJ[rejected]\n        REJ --> P\n\n        D --> IMP[implemented]\n    end\n\n    style P fill:#fef3c7\n    style IP fill:#dbeafe\n    style R fill:#e0e7ff\n    style B fill:#fee2e2\n    style REJ fill:#fecaca\n    style D fill:#d1fae5\n    style IMP fill:#a7f3d0\n\nFolder Structure\ndocs/todo/\n├── pending/                    # Tasks not yet started\n│   └── {task_slug}/\n│       ├── task.md             # Primary task definition\n│       ├── context.md          # Background information (optional)\n│       ├── .version            # Schema version\n│       └── .priority           # Priority level (content: critical|high|medium|low)\n│\n├── in_progress/                # Tasks being actively worked on\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md         # Work log and updates\n│       ├── .version\n│       ├── .priority\n│       ├── .assigned_to_{agent}  # Who's working on it\n│       └── .started_at         # Timestamp when started\n│\n├── review/                     # Tasks awaiting review\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── implementation.md   # What was done\n│       ├── .version\n│       ├── .ready_for_review   # Empty signal\n│       ├── .pr_link            # PR URL if applicable\n│       └── .review_requested_at\n│\n├── blocked/                    # Tasks that cannot proceed\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── .version\n│       ├── .blocked            # Empty signal\n│       ├── .blocked_reason     # Why blocked (content)\n│       ├── .blocked_at         # When blocked\n│       └── .depends_on         # What it's waiting for\n│\n├── done/                       # Completed and verified tasks\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── progress.md\n│       ├── implementation.md\n│       ├── verification.md     # How it was verified\n│       ├── .version\n│       ├── .verified           # Empty signal - REQUIRED\n│       ├── .completed_at       # Completion timestamp\n│       └── .verified_by_{agent}  # Who verified\n│\n├── rejected/                   # Tasks that were declined\n│   └── {task_slug}/\n│       ├── task.md\n│       ├── .version\n│       ├── .rejected           # Empty signal\n│       ├── .rejected_reason    # Why rejected (content)\n│       └── .rejected_at        # When rejected\n│\n└── implemented/                # Done tasks that are deployed/released\n    └── {task_slug}/\n        ├── task.md\n        ├── implementation.md\n        ├── verification.md\n        ├── .version\n        ├── .verified\n        ├── .completed_at\n        ├── .implemented_at     # When deployed\n        └── .release_version    # Which release included it\n\nStage: pending/\n\nTasks that are defined but not yet started.\n\nExample: pending/fuzzy_search/\npending/\n└── fuzzy_search/\n    ├── task.md\n    ├── context.md\n    ├── .version\n    └── .priority\n\ntask.md\n# Task: Fuzzy Search Implementation\n\n## Summary\n\nReplace substring search with fuzzy indexed search using MiniSearch.\n\n## Objectives\n\n- Install MiniSearch library\n- Create SearchIndexService\n- Refactor GlobalSearch component\n- Add debounce to search input\n\n## Acceptance Criteria\n\n- [ ] Typing \"fir\" returns \"Fireball\", \"Fire Elemental\", etc.\n- [ ] Results ranked by relevance\n- [ ] Search responds within 16ms\n- [ ] TypeScript compiles clean\n\n## Dependencies\n\n- None\n\n## Estimated Effort\n\nMedium (2-4 hours)\n\n## References\n\n- MiniSearch docs: https://lucaong.github.io/minisearch/\n- Current search: front/components/features/GlobalSearch.tsx\n\ncontext.md\n# Context: Fuzzy Search\n\n## Current State\n\nGlobalSearch.tsx uses `String.toLowerCase().includes()` for matching.\nNo ranking, no debounce, no fuzzy matching.\n\n## User Request\n\n\"Global search with ctrl+k, should be instant, indexed, fuzzy.\nIf I search fire just by typing fir I should get instantly a list.\"\n\n## Technical Decision\n\nMiniSearch chosen over:\n\n- Fuse.js (heavier, slower on large datasets)\n- Lunr (no fuzzy matching)\n\nMiniSearch is 6KB gzipped, used by VitePress.\n\n.version\n{ \"schema\": \"1.0\", \"created\": \"2026-02-05T10:00:00Z\" }\n\n.priority\nhigh\n\nStage: in_progress/\n\nTasks actively being worked on.\n\nExample: in_progress/card_variants/\nin_progress/\n└── card_variants/\n    ├── task.md\n    ├── progress.md\n    ├── .version\n    ├── .priority\n    ├── .assigned_to_claude\n    └── .started_at\n\ntask.md\n# Task: Card Variant System Expansion\n\n## Summary\n\nAdd Condensed, ListItemCondensed, and stub Quaternary/Penta card variants.\n\n## Objectives\n\n- Update UICardFrameType enum\n- Create \\*Condensed.tsx components\n- Create \\*ListItemCondensed.tsx components\n- Stub Quaternary and Penta variants\n- Update all \\*CardMain.tsx orchestrators\n\n## Acceptance Criteria\n\n- [ ] Condensed renders 48-64px tile with art, border, icon badge\n- [ ] ListItemCondensed renders 32px single-line row\n- [ ] Quaternary/Penta exist as stubs\n- [ ] All orchestrators route to new variants\n- [ ] TypeScript compiles clean\n\n## Dependencies\n\n- None\n\n## Estimated Effort\n\nLarge (4-8 hours)\n\nprogress.md\n# Progress: Card Variants\n\n## 2026-02-05 10:30 - Started\n\n- Read existing card components\n- Identified 8 entity types needing variants\n- Created implementation plan\n\n## 2026-02-05 11:00 - UICardFrameType Updated\n\n- Added Condensed, Penta, ListItem, ListItemCondensed to type\n- File: front/data/app-generics.ts:82\n\n## 2026-02-05 11:30 - CreatureCardCondensed Created\n\n- Created front/components/compendium/CreatureCardCondensed.tsx\n- 64x64 portrait, rarity border, type icon badge\n- Tooltip on hover shows name\n\n## Current Status\n\n- [x] Type definition updated\n- [x] CreatureCardCondensed\n- [ ] ItemCardCondensed\n- [ ] AbilityCardCondensed\n- [ ] Remaining entity types\n- [ ] ListItemCondensed variants\n- [ ] Quaternary/Penta stubs\n- [ ] Orchestrator updates\n\n.assigned_to_claude\n(empty file - presence indicates assignment)\n\n.started_at\n2026-02-05T10:30:00Z\n\nStage: review/\n\nTasks completed and awaiting review.\n\nExample: review/spell_routes/\nreview/\n└── spell_routes/\n    ├── task.md\n    ├── progress.md\n    ├── implementation.md\n    ├── .version\n    ├── .ready_for_review\n    ├── .pr_link\n    └── .review_requested_at\n\ntask.md\n# Task: Wire SpellDetailView into Router\n\n## Summary\n\nSpellDetailView.tsx exists but is not routed. Wire it into the app router.\n\n## Objectives\n\n- Add route to APP_ROUTES\n- Add Route element in App.tsx\n- Verify component loads correctly\n\n## Acceptance Criteria\n\n- [ ] /spells/:slug route works\n- [ ] SpellDetailView renders with spell data\n- [ ] Navigation from spell cards works\n- [ ] TypeScript compiles clean\n\nprogress.md\n# Progress: Spell Routes\n\n## 2026-02-05 09:00 - Started\n\n- Located SpellDetailView at front/app/(main)/compendium/SpellDetailView.tsx\n- Reviewed existing route patterns\n\n## 2026-02-05 09:15 - Implementation Complete\n\n- Added spell_detail to APP_ROUTES in app-configs.ts\n- Added Route element in App.tsx\n- Tested with /spells/fireball - works\n- TypeScript compiles clean\n\nimplementation.md\n# Implementation: Spell Routes\n\n## Files Changed\n\n### front/data/app-configs.ts\n\nAdded route configuration:\n\n```typescript\nspell_detail: {\n  path: '/spells/:slug',\n  label: 'Spell Detail',\n}\n```\n\nfront/app/App.tsx\n\nAdded import and route:\n\nimport SpellDetailView from './(main)/compendium/SpellDetailView';\n// ...\n<Route path=\"/spells/:slug\" element={<SpellDetailView />} />\n\nTesting\nManual test: /spells/fireball loads correctly\nManual test: /spells/magic-missile loads correctly\nTypeScript: No errors\n\n#### .ready_for_review\n\n\n(empty file)\n\n\n#### .pr_link\n\n\nhttps://github.com/org/repo/pull/123\n\n\n#### .review_requested_at\n\n\n2026-02-05T09:30:00Z\n\n\n---\n\n## Stage: blocked/\n\nTasks that cannot proceed due to dependencies or blockers.\n\n### Example: blocked/auth_refactor/\n\n\n\nblocked/ └── auth_refactor/ ├── task.md ├── progress.md ├── .version ├── .blocked ├── .blocked_reason ├── .blocked_at └── .depends_on\n\n\n#### task.md\n```markdown\n# Task: Auth Service Refactor\n\n## Summary\nRefactor AuthService to support multiple OAuth providers.\n\n## Objectives\n- Abstract provider-specific logic\n- Add Steam OAuth support\n- Implement token refresh flow\n- Update all auth consumers\n\n## Acceptance Criteria\n- [ ] Google OAuth still works\n- [ ] Discord OAuth still works\n- [ ] Steam OAuth works\n- [ ] Token refresh is automatic\n- [ ] No breaking changes to API\n\nprogress.md\n# Progress: Auth Refactor\n\n## 2026-02-03 14:00 - Started\n\n- Analyzed current AuthService implementation\n- Identified 3 provider-specific code paths\n\n## 2026-02-03 15:00 - BLOCKED\n\n- Steam OAuth requires server-side changes\n- Backend team needs to add Steam provider to Strapi\n- Cannot proceed until backend work is complete\n\n## Waiting For\n\n- Backend task: \"Add Steam OAuth Provider to Strapi\"\n- ETA: Unknown\n\n.blocked\n(empty file)\n\n.blocked_reason\nRequires backend changes: Steam OAuth provider must be added to Strapi before frontend can implement Steam login flow. Backend task not yet created.\n\n.blocked_at\n2026-02-03T15:00:00Z\n\n.depends_on\n- backend/steam_oauth_provider (not yet created)\n- Strapi plugin configuration\n\nStage: done/\n\nCompleted tasks that have been verified.\n\nExample: done/ogt_cli_commands/\ndone/\n└── ogt_cli_commands/\n    ├── task.md\n    ├── progress.md\n    ├── implementation.md\n    ├── verification.md\n    ├── .version\n    ├── .verified\n    ├── .completed_at\n    └── .verified_by_claude\n\ntask.md\n# Task: OGT CLI Check Commands\n\n## Summary\n\nCreate generic file/data validation CLI tools under `ogt check`.\n\n## Objectives\n\n- ogt check assets - Check for missing files\n- ogt check slugs - Verify slug conventions\n- ogt check indexed - Verify index.ts exports\n- ogt check data - Validate against schema\n\n## Acceptance Criteria\n\n- [x] All commands have --help\n- [x] Commands return proper exit codes\n- [x] JSON output option available\n- [x] TypeScript compiles clean\n\nverification.md\n# Verification: OGT CLI Commands\n\n## Verification Date\n\n2026-01-30\n\n## Tests Performed\n\n### Command Existence\n\n```bash\n$ ogt check --help\n# ✅ Shows subcommands: assets, slugs, indexed, data, from-list\n\n$ ogt check assets --help\n# ✅ Shows usage and flags\n\n$ ogt check slugs --help\n# ✅ Shows usage and flags\n\n$ ogt check indexed --help\n# ✅ Shows usage and flags\n\n$ ogt check data --help\n# ✅ Shows usage and flags\n```\n\nFunctional Tests\n$ ogt check indexed creatures\n# ✅ Returns JSON with 197 total, 197 passed\n\n$ ogt check slugs front/data/app-creatures -r\n# ✅ Returns JSON with slug validation results\n\n$ ogt check assets static/public/creatures portrait.png -r\n# ✅ Returns JSON listing missing portraits\n\nExit Codes\n$ ogt check indexed creatures && echo \"pass\"\n# ✅ Exits 0, prints \"pass\"\n\n$ ogt check indexed nonexistent || echo \"fail\"\n# ✅ Exits 1, prints \"fail\"\n\nVerification Result\n\nPASS - All acceptance criteria met\n\n\n#### .verified\n\n\n(empty file - REQUIRED for done/ status)\n\n\n#### .completed_at\n\n\n2026-01-30T14:00:00Z\n\n\n#### .verified_by_claude\n\n\n(empty file)\n\n\n---\n\n## Stage: rejected/\n\nTasks that were declined and will not be implemented.\n\n### Example: rejected/legacy_api_compat/\n\n\n\nrejected/ └── legacy_api_compat/ ├── task.md ├── .version ├── .rejected ├── .rejected_reason └── .rejected_at\n\n\n#### task.md\n```markdown\n# Task: Legacy API Compatibility Layer\n\n## Summary\nCreate compatibility layer for v0 API endpoints.\n\n## Objectives\n- Map v0 endpoints to v1 services\n- Maintain backward compatibility for 6 months\n- Log deprecation warnings\n\n## Acceptance Criteria\n- [ ] All v0 endpoints work\n- [ ] Deprecation headers sent\n- [ ] Usage logging enabled\n\n.rejected\n(empty file)\n\n.rejected_reason\nDecision: Clean break over compatibility layer.\n\nRationale:\n1. No external consumers of v0 API\n2. Maintenance burden outweighs benefits\n3. v0 endpoints have security issues\n4. Better to document migration path\n\nAlternative: Create migration guide instead.\nSee: docs/guides/v0_to_v1_migration/\n\n.rejected_at\n2026-02-01T09:00:00Z\n\nStage: implemented/\n\nTasks that are done AND deployed/released to production.\n\nExample: implemented/creatures_index/\nimplemented/\n└── creatures_index/\n    ├── task.md\n    ├── implementation.md\n    ├── verification.md\n    ├── .version\n    ├── .verified\n    ├── .completed_at\n    ├── .implemented_at\n    └── .release_version\n\n.implemented_at\n2026-02-02T10:00:00Z\n\n.release_version\nv1.2.0\n\nTask Lifecycle Operations\nCreating a New Task\nflowchart TD\n    A[User Request] --> B{Task Defined?}\n    B -->|No| C[Create task.md]\n    C --> D[Add context.md if needed]\n    D --> E[Set .priority]\n    E --> F[Add .version]\n    F --> G[Place in pending/]\n    B -->|Yes| H[Update existing task]\n\n\nSteps:\n\nCreate folder: docs/todo/pending/{task_slug}/\nCreate task.md with Summary, Objectives, Acceptance Criteria\nOptionally add context.md for background\nCreate .priority with level (critical/high/medium/low)\nCreate .version with schema version\nStarting a Task\n# Move from pending to in_progress\nmv docs/todo/pending/{task_slug} docs/todo/in_progress/\n\n# Add assignment signal\ntouch docs/todo/in_progress/{task_slug}/.assigned_to_{agent}\n\n# Add start timestamp\necho \"$(date -Iseconds)\" > docs/todo/in_progress/{task_slug}/.started_at\n\n# Create progress log\ntouch docs/todo/in_progress/{task_slug}/progress.md\n\nBlocking a Task\n# Move to blocked\nmv docs/todo/in_progress/{task_slug} docs/todo/blocked/\n\n# Add blocked signals\ntouch docs/todo/blocked/{task_slug}/.blocked\necho \"Reason here\" > docs/todo/blocked/{task_slug}/.blocked_reason\necho \"$(date -Iseconds)\" > docs/todo/blocked/{task_slug}/.blocked_at\n\nSubmitting for Review\n# Move to review\nmv docs/todo/in_progress/{task_slug} docs/todo/review/\n\n# Add review signals\ntouch docs/todo/review/{task_slug}/.ready_for_review\necho \"$(date -Iseconds)\" > docs/todo/review/{task_slug}/.review_requested_at\n\n# Add implementation docs\n# Create implementation.md documenting what was done\n\nCompleting a Task\n\nCRITICAL: Must verify before marking done!\n\n# 1. Run ALL acceptance criteria checks\n# 2. Document in verification.md\n# 3. ONLY if all pass:\n\n# Move to done\nmv docs/todo/review/{task_slug} docs/todo/done/\n\n# Add completion signals\ntouch docs/todo/done/{task_slug}/.verified  # REQUIRED\necho \"$(date -Iseconds)\" > docs/todo/done/{task_slug}/.completed_at\ntouch docs/todo/done/{task_slug}/.verified_by_{agent}\n\nRejecting a Task\n# Move to rejected\nmv docs/todo/review/{task_slug} docs/todo/rejected/\n\n# Add rejection signals\ntouch docs/todo/rejected/{task_slug}/.rejected\necho \"Reason here\" > docs/todo/rejected/{task_slug}/.rejected_reason\necho \"$(date -Iseconds)\" > docs/todo/rejected/{task_slug}/.rejected_at\n\nSignal Files Reference\nStatus Signals (empty files)\nSignal\tStage\tMeaning\n.blocked\tblocked/\tTask cannot proceed\n.ready_for_review\treview/\tReady for review\n.verified\tdone/, implemented/\tREQUIRED - Implementation verified\n.rejected\trejected/\tTask declined\nAssignment Signals (empty files)\nSignal\tStage\tMeaning\n.assigned_to_{agent}\tin_progress/\tWho's working on it\n.verified_by_{agent}\tdone/\tWho verified it\n.approved_by_{name}\tany\tWho approved\nContent Signals (contain text)\nSignal\tContent\tExample\n.version\tJSON schema version\t{\"schema\": \"1.0\", \"created\": \"...\"}\n.priority\tPriority level\thigh\n.blocked_reason\tWhy blocked\tFree text explanation\n.rejected_reason\tWhy rejected\tFree text explanation\n.depends_on\tDependencies\tList of dependencies\n.pr_link\tPR URL\thttps://github.com/...\n.started_at\tISO timestamp\t2026-02-05T10:00:00Z\n.completed_at\tISO timestamp\t2026-02-05T14:00:00Z\n.blocked_at\tISO timestamp\t2026-02-05T12:00:00Z\n.rejected_at\tISO timestamp\t2026-02-05T09:00:00Z\n.implemented_at\tISO timestamp\t2026-02-05T16:00:00Z\n.release_version\tVersion string\tv1.2.0\nTask.md Template\n# Task: {Title}\n\n## Summary\n\nOne paragraph describing what needs to be done and why.\n\n## Objectives\n\n- Specific objective 1\n- Specific objective 2\n- Specific objective 3\n\n## Acceptance Criteria\n\n- [ ] Verifiable criterion 1\n- [ ] Verifiable criterion 2\n- [ ] Verifiable criterion 3\n- [ ] TypeScript compiles clean (if applicable)\n\n## Dependencies\n\n- {dependency} or \"None\"\n\n## Estimated Effort\n\n{Tiny|Small|Medium|Large|XLarge} ({time estimate})\n\n## References\n\n- Relevant link 1\n- Relevant file path\n- Related task\n\nVerification Rules\n\nNEVER mark a task as done without verification.\n\nVerification Checklist\n## For each acceptance criterion:\n\n1. IDENTIFY: What command/action proves this criterion?\n2. RUN: Execute the verification\n3. CAPTURE: Record the output\n4. ASSESS: Does it pass?\n\n## Required Verifications by Type:\n\n### File Creation\n\n- [ ] File exists: `test -f {path} && echo \"EXISTS\"`\n- [ ] File is exported (if module): `grep \"export\" {index_file}`\n\n### Dependency Installation\n\n- [ ] In package.json: `grep \"{package}\" package.json`\n- [ ] Can import: Create test file with import\n\n### Route Addition\n\n- [ ] In router: `grep \"{route}\" {router_file}`\n- [ ] Navigable: Test in browser\n\n### Pattern Removal\n\n- [ ] Zero matches: `grep -r \"{pattern}\" {path} | wc -l` = 0\n\n### Type Addition\n\n- [ ] Type exists: `grep \"type {Name}\" {types_file}`\n- [ ] Compiles: `tsc --noEmit` or equivalent\n\n### General\n\n- [ ] TypeScript compiles: Run type checker\n- [ ] Tests pass: Run test suite\n- [ ] No console errors: Check browser/runtime\n\nCommon Mistakes\nMistake\tWhy It's Wrong\tCorrect Approach\nMoving to done/ without .verified\tNo proof of completion\tVerify first, then move\nTrusting task.md checkboxes\tCheckboxes can be wrong\tRun actual verification\nSkipping implementation.md\tNo record of what changed\tDocument all changes\nEmpty verification.md\tNo proof of verification\tRecord actual test output\nMultiple tasks in progress\tContext switching waste\tFinish one, then start next\nEditing task.md in done/\tHistory should be immutable\tCreate follow-up task instead"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/EduardoU24/ogt-docs-create-task",
    "publisherUrl": "https://clawhub.ai/EduardoU24/ogt-docs-create-task",
    "owner": "EduardoU24",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ogt-docs-create-task",
    "downloadUrl": "https://openagent3.xyz/downloads/ogt-docs-create-task",
    "agentUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ogt-docs-create-task/agent.md"
  }
}