[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D4WFAQKNV9MAG1AT07Z8P8":3,"skill-same:01M6D4WFAQKNV9MAG1AT07Z8P8":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6D4WFAQKNV9MAG1AT07Z8P8","product-line",null,"Manage the portfolio of product paths — review, activate, archive, restore, promote, fork, and check revisit triggers across the product-path manifest","GeorgeQLe\u002Fagentic-skills","GeorgeQLe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F21134126?v=4","01M6D2JP418S0VGJGF8M93EC3H","George Le","01M6D2JPBAKYD82TA5FS6HKQ3D",1,"MIT","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fbusiness-ops\u002Fclaude\u002Fproduct-line\u002Farchive\u002Fv0.2\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"product","product line","review","promote","manifest","archive","check","v0","ops","portfolio","restore","manage","activate","visual","across","triggers","2026-11-10 10:12:30",false,"---\nname: product-line\ndescription: Manage the portfolio of product paths — review, activate, archive, restore, promote, fork, and check revisit triggers across the product-path manifest\ntype: ops\nversion: v0.2\nargument-hint: \"review | activate \u003Cpath-id> | archive \u003Cpath-id> | restore \u003Cpath-id> | promote \u003Cpath-id> | fork \u003Clabel> [--from \u003Cskill>] | triggers\"\ninterview_depth: none\nvisual_tier: visual\n---\n\n## Pack Availability Guard\n\nBefore telling the user to run a skill from another project-local pack, check `.agents\u002Fproject.json.enabled_packs`. If the target pack is not enabled, recommend `\u002Fpack install \u003Cpack>` instead of the target skill. Global skills are always valid. Skills from this same pack are valid because the current skill is already running from that pack.\n\n# Product Line — Product Path Portfolio Management\n\nManage product paths tracked in `research\u002F.progress.yaml`. Product paths are research divergences — different products, apps, ICPs, expansion candidates, pivots, or competitive gaps — not git branches. Each path tracks its scope directory, status, evidence, pipeline stage, and revisit conditions.\n\nUse `activate` when a deferred or revisit candidate path should become active research again. Use `promote` only when a research path graduates to an `apps\u002F{slug}\u002F` code\u002Fapp scope.\n\n## Prerequisites\n\n`research\u002F.progress.yaml` must exist for all modes except `fork` (which can create it). If missing, tell the user: \"No product-path manifest found. Run `\u002Fidea-scope-brief` or `\u002Ficp` first — they create the manifest when multiple product directions emerge.\"\n\n## Manifest Schema\n\nThe canonical manifest lives at `research\u002F.progress.yaml`:\n\n```yaml\nactive_paths:\n  - \"cost-intel\"\nmax_concurrent: 1\nproduct_paths:\n  - id: \"cost-intel\"\n    label: \"Cost Intel\"\n    scope_path: \"research\u002Fcost-intel\u002F\"\n    status: active # active | deferred | archived | promoted | revisit_candidate\n    source_skill: \"icp\"\n    reason: \"Why this path exists\"\n    archive_reason: null\n    archived_at: null\n    promoted_at: null\n    evidence_refs: []\n    revisit_trigger: null\n    next_skill: \"\u002Fcompetitive-analysis\"\n    pipeline_stage: \"icp\"\n    last_touched: \"YYYY-MM-DD\"\n```\n\n### Backward Compatibility\n\n- Read legacy `active_path` as `active_paths: [\u003Cvalue>]` when `active_paths` is absent.\n- Read legacy `status: abandoned` as `status: archived`.\n- On writes, remove `active_path`, write plural `active_paths`, and prefer `status: archived` instead of `abandoned`.\n- Treat `status: promoted` as graduated to code\u002Fapp scope, not reactivated research.\n- Exclude `research\u002F_archive\u002F` paths from active-path selection and directory suggestions.\n\n## Modes\n\n### 1. `review` — Portfolio Dashboard\n\n**Invocation**: `\u002Fproduct-line review`\n\nPresent a dashboard comparing all paths:\n\n| Path | Status | Scope | Pipeline Stage | Last Touched | Evidence Maturity | Revisit Trigger |\n|------|--------|-------|----------------|--------------|-------------------|-----------------|\n\nGroup by `active`, `deferred`, `revisit_candidate`, `archived`, and `promoted`. For `deferred` and `revisit_candidate` paths, highlight the revisit trigger. For `archived` paths, show `archive_reason` and `archived_at`. For `promoted` paths, show `promoted_at` and the expected `apps\u002F{slug}\u002F` scope.\n\nEvidence maturity is derived from files under `scope_path` or `evidence_refs`:\n- **Early** — only concept brief or initial ICP\n- **Developing** — ICP plus competitive analysis, positioning, or journey map\n- **Mature** — journey map plus metrics, GTM, monetization, or experiments\n- **Graduated** — promoted to an app\u002Fcode scope\n\nWhen 3+ deferred or revisit-candidate paths exist with no recent activation, recommend `\u002Fproduct-line triggers`.\n\n### 2. `activate \u003Cpath-id>` — Reactivate Research\n\n**Invocation**: `\u002Fproduct-line activate \u003Cpath-id>`\n\n1. Validate the path exists and has status `deferred` or `revisit_candidate`.\n2. Check `max_concurrent` against the current active-path count. If at capacity, ask whether to deactivate another path or increase `max_concurrent`.\n3. Ensure `scope_path` is not under `research\u002F_archive\u002F`. If it is archived, tell the user to run `\u002Fproduct-line restore \u003Cpath-id>` first.\n4. Scan existing research files to infer `pipeline_stage`.\n5. Update the manifest:\n   - Set `status: active`\n   - Add the path ID to `active_paths`\n   - Set `last_touched` to today\n   - Set `pipeline_stage` from the scan when clearer than the existing value\n6. Recommend the next skill from `next_skill` or the inferred pipeline stage.\n\n### 3. `archive \u003Cpath-id>` — Archive A Research Path\n\n**Invocation**: `\u002Fproduct-line archive \u003Cpath-id>`\n\n1. Validate the path exists and is not already `archived` or legacy `abandoned`.\n2. Ask for a concise archive rationale.\n3. If `scope_path` is `research\u002F{slug}\u002F` and the directory exists, create `research\u002F_archive\u002F` as needed and move it to `research\u002F_archive\u002F{slug}\u002F`.\n4. Update the manifest:\n   - Set `status: archived`\n   - Remove the path ID from `active_paths`\n   - Set `scope_path` to `research\u002F_archive\u002F{slug}\u002F` when the directory was moved\n   - Set `archive_reason`, `archived_at`, and `last_touched`\n5. Present confirmation with the archived directory and rationale.\n\n### 4. `restore \u003Cpath-id>` — Restore An Archived Path\n\n**Invocation**: `\u002Fproduct-line restore \u003Cpath-id>`\n\n1. Validate the path exists and has status `archived` or legacy `abandoned`.\n2. If `scope_path` is `research\u002F_archive\u002F{slug}\u002F` and the directory exists, move it back to `research\u002F{slug}\u002F`.\n3. Ask whether to restore as `deferred` (default) or `active`. If active, enforce `max_concurrent`.\n4. Update the manifest:\n   - Set `status: deferred` by default, or `active` only when approved\n   - Add to `active_paths` only when restored as active\n   - Set `scope_path` back to `research\u002F{slug}\u002F`\n   - Clear `archived_at`; keep the old archive rationale in `reason` or history, but set `archive_reason: null`\n   - Set `last_touched` to today\n5. Recommend `\u002Fproduct-line activate \u003Cpath-id>` if restored as deferred.\n\n### 5. `promote \u003Cpath-id>` — Graduate To App Scope\n\n**Invocation**: `\u002Fproduct-line promote \u003Cpath-id>`\n\nUse this only when research is ready to become or connect to an app under `apps\u002F{slug}\u002F`.\n\n1. Validate the path exists and is not `archived` or legacy `abandoned`.\n2. Derive `{slug}` from the path ID or `scope_path`.\n3. Confirm or create `apps\u002F{slug}\u002F` during the monorepo scaffolding flow. If scaffolding requires another skill, recommend `\u002Fscaffold` or the appropriate monorepo command instead of inventing app files here.\n4. Keep research docs under `research\u002F{slug}\u002F` as product evidence unless a separate scaffolder explicitly moves or links docs.\n5. Update the manifest:\n   - Set `status: promoted`\n   - Remove the path ID from `active_paths`\n   - Set `promoted_at` and `last_touched` to today\n   - Keep `scope_path` pointing at the research evidence path\n6. Present the app graduation result and the next implementation\u002Fscaffolding command.\n\n### 6. `fork \u003Clabel> [--from \u003Cskill>]` — Create A New Path\n\n**Invocation**: `\u002Fproduct-line fork \"Enterprise vertical\" --from competitive-analysis`\n\n1. Generate a stable product-path ID from the label.\n2. Confirm that the slug is the intended product\u002Fapp name, not merely an ICP, audience, or segment label.\n3. Ask for supporting evidence, revisit trigger, and initial status (`active` or `deferred`).\n4. Create or update `research\u002F.progress.yaml` with the full schema fields.\n5. Use `scope_path: research\u002F{slug}\u002F`.\n6. If status is `active`, enforce `max_concurrent` and create `research\u002F{slug}\u002F`.\n7. If status is `deferred`, create the manifest entry without forcing downstream research.\n\n### 7. `triggers` — Check Revisit Conditions\n\n**Invocation**: `\u002Fproduct-line triggers`\n\nScan paths with `status: deferred` or `status: revisit_candidate` and evaluate their `revisit_trigger` conditions:\n- **File-based triggers** — check whether the referenced file exists.\n- **Evidence-based triggers** — check active research files for relevant evidence.\n- **Time-based triggers** — compare against today's date.\n- **External triggers** — flag as requiring manual confirmation.\n\nClassify each trigger as **fired**, **pending**, or **manual**. For fired triggers, recommend `\u002Fproduct-line activate \u003Cpath-id>`.\n\n## Output\n\nUpdate `research\u002F.progress.yaml`. `archive` and `restore` may also move product-path directories between `research\u002F{slug}\u002F` and `research\u002F_archive\u002F{slug}\u002F`. `promote` may confirm or route creation of `apps\u002F{slug}\u002F`, but it does not move research docs.\n\n## Task Classification\n\nWhen this skill produces follow-up work, file it by execution semantics:\n\n- Immediately actionable implementation or documentation work goes in `tasks\u002Ftodo.md`.\n- Human-only external actions tied to automated steps go in `tasks\u002Fmanual-todo.md` with `_(blocks: Step N.X)_` or `_(after: Step N.X)_`; repo edits, SDK wiring, generated assets, local commands, tests, audits, and authenticated CLI\u002FAPI work stay in `tasks\u002Ftodo.md`.\n- One-time condition-gated records, baselines, or future measurements go in `tasks\u002Frecord-todo.md` with source, condition, non-blocking reason, evidence, and promotion rule.\n- Cadence-based reviews, playtests, adoption checks, investor updates, retros, or docs-health checks go in `tasks\u002Frecurring-todo.md` with cadence, owner\u002Fagent, next due, evidence path, and escalation conditions.\n- Do not put non-blocking records or recurring obligations in `tasks\u002Ftodo.md` unless they have been explicitly promoted into current execution work.\n\n## Constraints\n\n- Do not run downstream research or implementation skills.\n- Do not treat archived, legacy abandoned, deferred, revisit-candidate, or promoted paths as active research targets.\n- Do not use `promote` to mean \"make active\"; use `activate`.\n- Do not use `archive` without a documented rationale.\n- Respect `max_concurrent` for active paths.\n- Use product-path terminology. Never use \"branch\" to mean a product path.\n\n## Alignment Page\n\nWhen this skill produces durable deliverables (research, specs, plans, reports, prototypes, or any document output), build a full-depth HTML alignment page following `ALIGNMENT-PAGE.md` in this skill's directory. Output: `alignment\u002Fproduct-line-{topic}.html`.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n","## Pack Availability Guard\n\nBefore telling the user to run a skill from another project-local pack, check `.agents\u002Fproject.json.enabled_packs`. If the target pack is not enabled, recommend `\u002Fpack install \u003Cpack>` instead of the target skill. Global skills are always valid. Skills from this same pack are valid because the current skill is already running from that pack.\n\n# Product Line — Product Path Portfolio Management\n\nManage product paths tracked in `research\u002F.progress.yaml`. Product paths are research divergences — different products, apps, ICPs, expansion candidates, pivots, or competitive gaps — not git branches. Each path tracks its scope directory, status, evidence, pipeline stage, and revisit conditions.\n\nUse `activate` when a deferred or revisit candidate path should become active research again. Use `promote` only when a research path graduates to an `apps\u002F{slug}\u002F` code\u002Fapp scope.\n\n## Prerequisites\n\n`research\u002F.progress.yaml` must exist for all modes except `fork` (which can create it). If missing, tell the user: \"No product-path manifest found. Run `\u002Fidea-scope-brief` or `\u002Ficp` first — they create the manifest when multiple product directions emerge.\"\n\n## Manifest Schema\n\nThe canonical manifest lives at `research\u002F.progress.yaml`:\n\n```yaml\nactive_paths:\n  - \"cost-intel\"\nmax_concurrent: 1\nproduct_paths:\n  - id: \"cost-intel\"\n    label: \"Cost Intel\"\n    scope_path: \"research\u002Fcost-intel\u002F\"\n    status: active # active | deferred | archived | promoted | revisit_candidate\n    source_skill: \"icp\"\n    reason: \"Why this path exists\"\n    archive_reason: null\n    archived_at: null\n    promoted_at: null\n    evidence_refs: []\n    revisit_trigger: null\n    next_skill: \"\u002Fcompetitive-analysis\"\n    pipeline_stage: \"icp\"\n    last_touched: \"YYYY-MM-DD\"\n```\n\n### Backward Compatibility\n\n- Read legacy `active_path` as `active_paths: [\u003Cvalue>]` when `active_paths` is absent.\n- Read legacy `status: abandoned` as `status: archived`.\n- On writes, remove `active_path`, write plural `active_paths`, and prefer `status: archived` instead of `abandoned`.\n- Treat `status: promoted` as graduated to code\u002Fapp scope, not reactivated research.\n- Exclude `research\u002F_archive\u002F` paths from active-path selection and directory suggestions.\n\n## Modes\n\n### 1. `review` — Portfolio Dashboard\n\n**Invocation**: `\u002Fproduct-line review`\n\nPresent a dashboard comparing all paths:\n\n| Path | Status | Scope | Pipeline Stage | Last Touched | Evidence Maturity | Revisit Trigger |\n|------|--------|-------|----------------|--------------|-------------------|-----------------|\n\nGroup by `active`, `deferred`, `revisit_candidate`, `archived`, and `promoted`. For `deferred` and `revisit_candidate` paths, highlight the revisit trigger. For `archived` paths, show `archive_reason` and `archived_at`. For `promoted` paths, show `promoted_at` and the expected `apps\u002F{slug}\u002F` scope.\n\nEvidence maturity is derived from files under `scope_path` or `evidence_refs`:\n- **Early** — only concept brief or initial ICP\n- **Developing** — ICP plus competitive analysis, positioning, or journey map\n- **Mature** — journey map plus metrics, GTM, monetization, or experiments\n- **Graduated** — promoted to an app\u002Fcode scope\n\nWhen 3+ deferred or revisit-candidate paths exist with no recent activation, recommend `\u002Fproduct-line triggers`.\n\n### 2. `activate \u003Cpath-id>` — Reactivate Research\n\n**Invocation**: `\u002Fproduct-line activate \u003Cpath-id>`\n\n1. Validate the path exists and has status `deferred` or `revisit_candidate`.\n2. Check `max_concurrent` against the current active-path count. If at capacity, ask whether to deactivate another path or increase `max_concurrent`.\n3. Ensure `scope_path` is not under `research\u002F_archive\u002F`. If it is archived, tell the user to run `\u002Fproduct-line restore \u003Cpath-id>` first.\n4. Scan existing research files to infer `pipeline_stage`.\n5. Update the manifest:\n   - Set `status: active`\n   - Add the path ID to `active_paths`\n   - Set `last_touched` to today\n   - Set `pipeline_stage` from the scan when clearer than the existing value\n6. Recommend the next skill from `next_skill` or the inferred pipeline stage.\n\n### 3. `archive \u003Cpath-id>` — Archive A Research Path\n\n**Invocation**: `\u002Fproduct-line archive \u003Cpath-id>`\n\n1. Validate the path exists and is not already `archived` or legacy `abandoned`.\n2. Ask for a concise archive rationale.\n3. If `scope_path` is `research\u002F{slug}\u002F` and the directory exists, create `research\u002F_archive\u002F` as needed and move it to `research\u002F_archive\u002F{slug}\u002F`.\n4. Update the manifest:\n   - Set `status: archived`\n   - Remove the path ID from `active_paths`\n   - Set `scope_path` to `research\u002F_archive\u002F{slug}\u002F` when the directory was moved\n   - Set `archive_reason`, `archived_at`, and `last_touched`\n5. Present confirmation with the archived directory and rationale.\n\n### 4. `restore \u003Cpath-id>` — Restore An Archived Path\n\n**Invocation**: `\u002Fproduct-line restore \u003Cpath-id>`\n\n1. Validate the path exists and has status `archived` or legacy `abandoned`.\n2. If `scope_path` is `research\u002F_archive\u002F{slug}\u002F` and the directory exists, move it back to `research\u002F{slug}\u002F`.\n3. Ask whether to restore as `deferred` (default) or `active`. If active, enforce `max_concurrent`.\n4. Update the manifest:\n   - Set `status: deferred` by default, or `active` only when approved\n   - Add to `active_paths` only when restored as active\n   - Set `scope_path` back to `research\u002F{slug}\u002F`\n   - Clear `archived_at`; keep the old archive rationale in `reason` or history, but set `archive_reason: null`\n   - Set `last_touched` to today\n5. Recommend `\u002Fproduct-line activate \u003Cpath-id>` if restored as deferred.\n\n### 5. `promote \u003Cpath-id>` — Graduate To App Scope\n\n**Invocation**: `\u002Fproduct-line promote \u003Cpath-id>`\n\nUse this only when research is ready to become or connect to an app under `apps\u002F{slug}\u002F`.\n\n1. Validate the path exists and is not `archived` or legacy `abandoned`.\n2. Derive `{slug}` from the path ID or `scope_path`.\n3. Confirm or create `apps\u002F{slug}\u002F` during the monorepo scaffolding flow. If scaffolding requires another skill, recommend `\u002Fscaffold` or the appropriate monorepo command instead of inventing app files here.\n4. Keep research docs under `research\u002F{slug}\u002F` as product evidence unless a separate scaffolder explicitly moves or links docs.\n5. Update the manifest:\n   - Set `status: promoted`\n   - Remove the path ID from `active_paths`\n   - Set `promoted_at` and `last_touched` to today\n   - Keep `scope_path` pointing at the research evidence path\n6. Present the app graduation result and the next implementation\u002Fscaffolding command.\n\n### 6. `fork \u003Clabel> [--from \u003Cskill>]` — Create A New Path\n\n**Invocation**: `\u002Fproduct-line fork \"Enterprise vertical\" --from competitive-analysis`\n\n1. Generate a stable product-path ID from the label.\n2. Confirm that the slug is the intended product\u002Fapp name, not merely an ICP, audience, or segment label.\n3. Ask for supporting evidence, revisit trigger, and initial status (`active` or `deferred`).\n4. Create or update `research\u002F.progress.yaml` with the full schema fields.\n5. Use `scope_path: research\u002F{slug}\u002F`.\n6. If status is `active`, enforce `max_concurrent` and create `research\u002F{slug}\u002F`.\n7. If status is `deferred`, create the manifest entry without forcing downstream research.\n\n### 7. `triggers` — Check Revisit Conditions\n\n**Invocation**: `\u002Fproduct-line triggers`\n\nScan paths with `status: deferred` or `status: revisit_candidate` and evaluate their `revisit_trigger` conditions:\n- **File-based triggers** — check whether the referenced file exists.\n- **Evidence-based triggers** — check active research files for relevant evidence.\n- **Time-based triggers** — compare against today's date.\n- **External triggers** — flag as requiring manual confirmation.\n\nClassify each trigger as **fired**, **pending**, or **manual**. For fired triggers, recommend `\u002Fproduct-line activate \u003Cpath-id>`.\n\n## Output\n\nUpdate `research\u002F.progress.yaml`. `archive` and `restore` may also move product-path directories between `research\u002F{slug}\u002F` and `research\u002F_archive\u002F{slug}\u002F`. `promote` may confirm or route creation of `apps\u002F{slug}\u002F`, but it does not move research docs.\n\n## Task Classification\n\nWhen this skill produces follow-up work, file it by execution semantics:\n\n- Immediately actionable implementation or documentation work goes in `tasks\u002Ftodo.md`.\n- Human-only external actions tied to automated steps go in `tasks\u002Fmanual-todo.md` with `_(blocks: Step N.X)_` or `_(after: Step N.X)_`; repo edits, SDK wiring, generated assets, local commands, tests, audits, and authenticated CLI\u002FAPI work stay in `tasks\u002Ftodo.md`.\n- One-time condition-gated records, baselines, or future measurements go in `tasks\u002Frecord-todo.md` with source, condition, non-blocking reason, evidence, and promotion rule.\n- Cadence-based reviews, playtests, adoption checks, investor updates, retros, or docs-health checks go in `tasks\u002Frecurring-todo.md` with cadence, owner\u002Fagent, next due, evidence path, and escalation conditions.\n- Do not put non-blocking records or recurring obligations in `tasks\u002Ftodo.md` unless they have been explicitly promoted into current execution work.\n\n## Constraints\n\n- Do not run downstream research or implementation skills.\n- Do not treat archived, legacy abandoned, deferred, revisit-candidate, or promoted paths as active research targets.\n- Do not use `promote` to mean \"make active\"; use `activate`.\n- Do not use `archive` without a documented rationale.\n- Respect `max_concurrent` for active paths.\n- Use product-path terminology. Never use \"branch\" to mean a product path.\n\n## Alignment Page\n\nWhen this skill produces durable deliverables (research, specs, plans, reports, prototypes, or any document output), build a full-depth HTML alignment page following `ALIGNMENT-PAGE.md` in this skill's directory. Output: `alignment\u002Fproduct-line-{topic}.html`.\n\n## Default Shipping Contract\n\nFollow the shared shipping contract convention in CLAUDE.md.\n",{"name":5,"type":32,"version":45,"description":7,"visual_tier":37,"argument-hint":46,"interview_depth":47},"v0.2","review | activate \u003Cpath-id> | archive \u003Cpath-id> | restore \u003Cpath-id> | promote \u003Cpath-id> | fork \u003Clabel> [--from \u003Cskill>] | triggers","none","master","96e2912af886dd1606b1b97df707715aef062b02","packs\u002Fbusiness-ops\u002Fclaude\u002Fproduct-line\u002Farchive\u002Fv0.2",0,"https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills","https:\u002F\u002Fagentic-skills-blush.vercel.app","https:\u002F\u002Fgithub.com\u002FGeorgeQLe","georgeqle.com","George Le is a futurist and serial tech entrepreneur who wants to work toward a world where humanity is free from robotic tasks.","2026-11-10 04:07:24",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add GeorgeQLe\u002Fagentic-skills --skill product-line",{"tool":64,"command":65},"bunx","bunx skills add GeorgeQLe\u002Fagentic-skills --skill product-line",{"tool":67,"command":68},"pnpm","pnpm dlx skills add GeorgeQLe\u002Fagentic-skills --skill product-line","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Fpacks\u002Fbusiness-ops\u002Fclaude\u002Fproduct-line\u002Farchive\u002Fv0.2\u002FSKILL.md",true,[],[73,85,95,107,122,133],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":40},"01M6G0NJES15RJKZE6YZ0TSYGF","source-checkout-allowed","Valid source-checkout-only fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fsource-checkout-allowed\u002FSKILL.md",[],[80,81,82,83,31,84],"source checkout allowed","checkout","fixture","only","valid",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":40},"01M6G0NFZ3R1MNB1E3DVTM0WB7","deck-install-valid","Valid deck install fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fdeck-install\u002FSKILL.md",[],[92,93,94,84,82,31],"deck install valid","deck","install",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":40},"01M6G0ND3QZQC4MDZ9NVB97PT2","codex-pack-guard-valid","Valid Codex Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-pack-guard\u002FSKILL.md",[],[102,103,104,84,105,106,82,31],"codex pack guard valid","pack","guard","codex","availability",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":118,"publishedAt":40},"01M6G0NA9YB3NKGZKD3S96JMNB","codex-missing-skill-valid","Valid Codex missing skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-missing-skill-fallback\u002FSKILL.md",[113],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[119,120,84,105,31,121,82],"codex missing skill valid","missing","fallback",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":129,"publishedAt":40},"01M6G0N7PC0EKFD40ZWQAXSAQ9","codex-base-skill-fallback-valid","Valid Codex base skill fallback fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fcodex-base-skill-fallback\u002FSKILL.md",[128],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},[84,105,121,130,131,132,31,82],"base skill","codex base skill fallback valid","base",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":40},"01M6G0N4VRR2YKZQ6N3Y6S2BQA","claude-pack-guard-valid","Valid Claude Pack Availability Guard fixture.","https:\u002F\u002Fgithub.com\u002FGeorgeQLe\u002Fagentic-skills\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Fskill-install-routing\u002Fvalid\u002Fclaude-pack-guard\u002FSKILL.md",[],[84,104,103,140,106,31,82],"claude pack guard valid"]