[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M76P3CZFJDETEVMZXDTPF20N":3,"skill-same:01M76P3CZFJDETEVMZXDTPF20N":225},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":42,"install":43,"resources":56},"01M76P3CZFJDETEVMZXDTPF20N","speclite-brownfield-context-builder",null,"分析既有 brownfield 代码库，恢复现状架构并生成规划基线。用于用户要求 existing project analysis、codebase analysis、棕地分析、系统现状或 PRD 前项目基线。核心能力：分类仓库、抽取证据、合成 baseline、交接规划 brief。","flanliulf\u002FSpecLite","flanliulf","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3830171?v=4","01M752MYG3GGEADW105E2F6154","Fancy Liu","01M752MYGXQ0R06TYQG3BVVABS",4,"MIT","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: speclite-brownfield-context-builder\ndescription: \"分析既有 brownfield 代码库，恢复现状架构并生成规划基线。用于用户要求 existing project analysis、codebase analysis、棕地分析、系统现状或 PRD 前项目基线。核心能力：分类仓库、抽取证据、合成 baseline、交接规划 brief。\"\nallowed-tools:\n  - Read\n  - Write\n  - Edit\n  - Bash\n  - Grep\n  - Glob\n  - Agent\nmetadata:\n  version: \"1.2.0\"\n  author: \"fancyliu\"\n  catalog: \"speclite\"\n---\n\n[技能说明]\n    Speclite Brownfield Context Builder 是 1-analysis 阶段的既有系统分析工作流。它把现有代码仓库恢复为可追溯、可复查、可供后续 PRD \u002F Architecture \u002F Epics \u002F Stories 消费的 as-is 基线和规划前置上下文。\n\n[核心能力]\n    - **仓库分类与边界识别**：识别 monolith \u002F monorepo \u002F multi-part 结构，划分子系统边界与技术栈。\n    - **确定性证据提取**：通过 `{skill-root}\u002Fscripts\u002F` 下的脚本提取 API、数据模型、依赖图、配置面、测试面和历史文档候选事实。\n    - **Evidence-First 基线合成**：先生成 evidence 与 baseline skeleton，再由 LLM 仅补受限叙述，避免无来源事实写入。\n    - **历史文档交叉验证**：将历史 PRD \u002F 技术方案作为候选事实，经过代码或当前文档验证后再进入基线。\n    - **局部深潜分析**：对高风险或用户指定区域做 targeted deep dive，补充可复用能力、约束和变更风险。\n    - **规划前置交接**：默认生成 brownfield-planning-brief、candidate-change-slices、feature-entry-points 等后续 Speclite 工作流输入，不替代 create-prd \u002F create-architecture \u002F create-epics-and-stories。\n    - **状态持久化与恢复**：每阶段写盘并更新 project-scan-report.json，支持 resume 和 full rescan 归档。\n    - **质量护栏**：执行 coverage contract、strict anchors、adversarial grounding check 和 golden regression。\n\n[约定]\n    裸路径相对于 `{skill-root}` 解析；`{project-root}` 是目标项目工作目录；`{speclite-runtime-root}` 是 `{project-root}\u002F_speclite`；`{skill-name}` 是目录 basename。\n\n    运行配置必须运行 `speclite resolve config --project-root {project-root}`。推荐解析字段：\n    - `{project_knowledge}` = `[modules.sdlc].project_knowledge`\n    - `{planning_artifacts}` = `[modules.sdlc].planning_artifacts`\n    - `{brownfield_output}` = `{project_knowledge}\u002Fbrownfield`\n    - `{history_sources}` 默认 `{project-root}\u002Fdocs\u002Fhistory`，可由用户指定\n\n[执行流程]\n    本 Skill 采用 4 种运行模式和 6 个阶段，路由规则以 `references\u002Fworkflow-router.md` 为准。\n\n    1. 激活后解析三层 customize：`{skill-root}\u002Fcustomize.toml`、`{speclite-runtime-root}\u002Fcustom\u002F{skill-name}.toml`、`{speclite-runtime-root}\u002Fcustom\u002F{skill-name}.user.toml`。缺失覆盖文件时跳过；标量覆盖，表深度合并。\n    2. 运行 `speclite resolve config --project-root {project-root}`。配置缺失或 `project_knowledge`、`planning_artifacts` 为空时 HALT。\n    3. Phase 0：检查 `{brownfield_output}\u002Fproject-scan-report.json`，按 `initial_scan` \u002F `full_rescan` \u002F `targeted_deep_dive` \u002F `planning_generation` \u002F resume 判定执行路径。初始化状态时运行：`python {skill-root}\u002Fscripts\u002Fupdate_state.py init --project-root {project-root} --output-dir {brownfield_output}`。\n    4. Phase 1：运行 `python {skill-root}\u002Fscripts\u002Fscan_repo.py {project-root} --output-dir {brownfield_output}`，并按 `references\u002Frepository-classifier.md` 划分仓库结构。\n    5. Phase 2：按 `references\u002Fevidence-extractor.md` 执行证据提取脚本，所有脚本必须显式传入 `--output-dir {brownfield_output}`；历史文档摄取额外传入 `--history-dir {history_sources}`。完成后运行 `validate_outputs.py --phase evidence`。\n    6. Phase 3：读取 `references\u002Fknown-failure-patterns.md`，运行 `render_baseline_skeleton.py` 生成 skeleton，再按 `references\u002Fbaseline-synthesizer.md` 补充受限叙述。完成后必须运行 `adversarial_grounding_check.py` 和 `validate_outputs.py --phase baseline --strict-anchors`。\n    7. Phase 4：如用户指定目标区域，按 `references\u002Fdeep-dive-analyzer.md` 生成 `deep-dives\u002Fdeep-dive-{area}.md`，并将发现反馈到 baseline 或 planning brief。\n    8. Phase 5：按 `references\u002Fplanning-synthesizer.md` 生成规划前置产物。默认输出 `brownfield-planning-brief.md`、`candidate-change-slices.md`、`feature-entry-points.md` 到 `{planning_artifacts}` 或 `{brownfield_output}\u002Fplanning\u002F`，并明确后续应交给 Speclite `speclite-create-prd`、`speclite-create-architecture`、`speclite-create-epics-and-stories` 继续处理。\n\n[输出目录结构]\n    默认产物写入目标项目的 `{project_knowledge}\u002Fbrownfield\u002F`，规划前置交接文档可同步到 `{planning_artifacts}`：\n\n    ```text\n    {project_knowledge}\u002Fbrownfield\u002F\n    ├── project-scan-report.json\n    ├── evidence\u002F\n    ├── baseline\u002F\n    ├── deep-dives\u002F\n    ├── planning\u002F\n    └── validation\u002F\n    ```\n\n[核心边界原则]\n    1. **不伪造历史**：不反推研发历史，不虚构优先级、排期或验收过程。\n    2. **历史文档是证据源，不是真相源**：历史资料必须经过候选事实、交叉验证、基线事实路径。\n    3. **as-is 与 to-be 分离**：baseline 只写当前系统事实，planning 只写后续规划输入。\n    4. **不吞并后续阶段**：本 Skill 可生成 planning brief 和候选切片，但默认不替代 Speclite PRD、Architecture、Epics\u002FStories 工作流。\n    5. **强落盘、弱上下文**：阶段完成后立即写盘并更新状态，只在上下文中保留摘要。\n    6. **证据优先于叙述**：每个关键结论必须有 evidence anchor；证据不足时标注不确定性，不补全事实。\n\n[注意事项]\n    - 所有脚本调用必须使用 `{skill-root}\u002Fscripts\u002F...`，不得依赖源码仓库路径。\n    - 所有运行输出必须使用 `{brownfield_output}` 或 `{planning_artifacts}`，不得把 `{project_knowledge}\u002Fbrownfield` 写成当前运行依赖。\n    - `config.toml.example` 仅作字段结构参考，不作为 runtime fallback。\n    - 修改 `scripts\u002Fextract_*.py`、framework adapters 或 skeleton renderer 后，必须运行 `python {skill-root}\u002Fscripts\u002Frun_golden.py {skill-root}\u002Fgolden`。\n    - 事实冲突（`fact-conflicts.json`）必须提示用户确认，不得自动裁决。\n    - 输出文档末尾必须追加 `*本文档由 speclite-brownfield-context-builder Skill 自动生成*` 标注。\n\n[生成信息]\n    本 Skill 由 brownfield-context-builder 迁移为 Speclite 1-analysis 工作流。运行语义保留 Evidence-First \u002F LLM-Last 的质量护栏，并适配 Speclite runtime model。\n","[技能说明]\n    Speclite Brownfield Context Builder 是 1-analysis 阶段的既有系统分析工作流。它把现有代码仓库恢复为可追溯、可复查、可供后续 PRD \u002F Architecture \u002F Epics \u002F Stories 消费的 as-is 基线和规划前置上下文。\n\n[核心能力]\n    - **仓库分类与边界识别**：识别 monolith \u002F monorepo \u002F multi-part 结构，划分子系统边界与技术栈。\n    - **确定性证据提取**：通过 `{skill-root}\u002Fscripts\u002F` 下的脚本提取 API、数据模型、依赖图、配置面、测试面和历史文档候选事实。\n    - **Evidence-First 基线合成**：先生成 evidence 与 baseline skeleton，再由 LLM 仅补受限叙述，避免无来源事实写入。\n    - **历史文档交叉验证**：将历史 PRD \u002F 技术方案作为候选事实，经过代码或当前文档验证后再进入基线。\n    - **局部深潜分析**：对高风险或用户指定区域做 targeted deep dive，补充可复用能力、约束和变更风险。\n    - **规划前置交接**：默认生成 brownfield-planning-brief、candidate-change-slices、feature-entry-points 等后续 Speclite 工作流输入，不替代 create-prd \u002F create-architecture \u002F create-epics-and-stories。\n    - **状态持久化与恢复**：每阶段写盘并更新 project-scan-report.json，支持 resume 和 full rescan 归档。\n    - **质量护栏**：执行 coverage contract、strict anchors、adversarial grounding check 和 golden regression。\n\n[约定]\n    裸路径相对于 `{skill-root}` 解析；`{project-root}` 是目标项目工作目录；`{speclite-runtime-root}` 是 `{project-root}\u002F_speclite`；`{skill-name}` 是目录 basename。\n\n    运行配置必须运行 `speclite resolve config --project-root {project-root}`。推荐解析字段：\n    - `{project_knowledge}` = `[modules.sdlc].project_knowledge`\n    - `{planning_artifacts}` = `[modules.sdlc].planning_artifacts`\n    - `{brownfield_output}` = `{project_knowledge}\u002Fbrownfield`\n    - `{history_sources}` 默认 `{project-root}\u002Fdocs\u002Fhistory`，可由用户指定\n\n[执行流程]\n    本 Skill 采用 4 种运行模式和 6 个阶段，路由规则以 `references\u002Fworkflow-router.md` 为准。\n\n    1. 激活后解析三层 customize：`{skill-root}\u002Fcustomize.toml`、`{speclite-runtime-root}\u002Fcustom\u002F{skill-name}.toml`、`{speclite-runtime-root}\u002Fcustom\u002F{skill-name}.user.toml`。缺失覆盖文件时跳过；标量覆盖，表深度合并。\n    2. 运行 `speclite resolve config --project-root {project-root}`。配置缺失或 `project_knowledge`、`planning_artifacts` 为空时 HALT。\n    3. Phase 0：检查 `{brownfield_output}\u002Fproject-scan-report.json`，按 `initial_scan` \u002F `full_rescan` \u002F `targeted_deep_dive` \u002F `planning_generation` \u002F resume 判定执行路径。初始化状态时运行：`python {skill-root}\u002Fscripts\u002Fupdate_state.py init --project-root {project-root} --output-dir {brownfield_output}`。\n    4. Phase 1：运行 `python {skill-root}\u002Fscripts\u002Fscan_repo.py {project-root} --output-dir {brownfield_output}`，并按 `references\u002Frepository-classifier.md` 划分仓库结构。\n    5. Phase 2：按 `references\u002Fevidence-extractor.md` 执行证据提取脚本，所有脚本必须显式传入 `--output-dir {brownfield_output}`；历史文档摄取额外传入 `--history-dir {history_sources}`。完成后运行 `validate_outputs.py --phase evidence`。\n    6. Phase 3：读取 `references\u002Fknown-failure-patterns.md`，运行 `render_baseline_skeleton.py` 生成 skeleton，再按 `references\u002Fbaseline-synthesizer.md` 补充受限叙述。完成后必须运行 `adversarial_grounding_check.py` 和 `validate_outputs.py --phase baseline --strict-anchors`。\n    7. Phase 4：如用户指定目标区域，按 `references\u002Fdeep-dive-analyzer.md` 生成 `deep-dives\u002Fdeep-dive-{area}.md`，并将发现反馈到 baseline 或 planning brief。\n    8. Phase 5：按 `references\u002Fplanning-synthesizer.md` 生成规划前置产物。默认输出 `brownfield-planning-brief.md`、`candidate-change-slices.md`、`feature-entry-points.md` 到 `{planning_artifacts}` 或 `{brownfield_output}\u002Fplanning\u002F`，并明确后续应交给 Speclite `speclite-create-prd`、`speclite-create-architecture`、`speclite-create-epics-and-stories` 继续处理。\n\n[输出目录结构]\n    默认产物写入目标项目的 `{project_knowledge}\u002Fbrownfield\u002F`，规划前置交接文档可同步到 `{planning_artifacts}`：\n\n    ```text\n    {project_knowledge}\u002Fbrownfield\u002F\n    ├── project-scan-report.json\n    ├── evidence\u002F\n    ├── baseline\u002F\n    ├── deep-dives\u002F\n    ├── planning\u002F\n    └── validation\u002F\n    ```\n\n[核心边界原则]\n    1. **不伪造历史**：不反推研发历史，不虚构优先级、排期或验收过程。\n    2. **历史文档是证据源，不是真相源**：历史资料必须经过候选事实、交叉验证、基线事实路径。\n    3. **as-is 与 to-be 分离**：baseline 只写当前系统事实，planning 只写后续规划输入。\n    4. **不吞并后续阶段**：本 Skill 可生成 planning brief 和候选切片，但默认不替代 Speclite PRD、Architecture、Epics\u002FStories 工作流。\n    5. **强落盘、弱上下文**：阶段完成后立即写盘并更新状态，只在上下文中保留摘要。\n    6. **证据优先于叙述**：每个关键结论必须有 evidence anchor；证据不足时标注不确定性，不补全事实。\n\n[注意事项]\n    - 所有脚本调用必须使用 `{skill-root}\u002Fscripts\u002F...`，不得依赖源码仓库路径。\n    - 所有运行输出必须使用 `{brownfield_output}` 或 `{planning_artifacts}`，不得把 `{project_knowledge}\u002Fbrownfield` 写成当前运行依赖。\n    - `config.toml.example` 仅作字段结构参考，不作为 runtime fallback。\n    - 修改 `scripts\u002Fextract_*.py`、framework adapters 或 skeleton renderer 后，必须运行 `python {skill-root}\u002Fscripts\u002Frun_golden.py {skill-root}\u002Fgolden`。\n    - 事实冲突（`fact-conflicts.json`）必须提示用户确认，不得自动裁决。\n    - 输出文档末尾必须追加 `*本文档由 speclite-brownfield-context-builder Skill 自动生成*` 标注。\n\n[生成信息]\n    本 Skill 由 brownfield-context-builder 迁移为 Speclite 1-analysis 工作流。运行语义保留 Evidence-First \u002F LLM-Last 的质量护栏，并适配 Speclite runtime model。\n",{"name":5,"metadata":24,"description":7,"allowed-tools":28},{"author":25,"catalog":26,"version":27},"fancyliu","speclite","1.2.0",[29,30,31,32,33,34,35],"Read","Write","Edit","Bash","Grep","Glob","Agent","main","73fff74748dc0e27169d3ae76818d545bdbe8591","assets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder",0,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite","https:\u002F\u002Fgithub.com\u002Fflanliulf","2026-11-12 11:47:29",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add flanliulf\u002FSpecLite --skill speclite-brownfield-context-builder",{"tool":49,"command":50},"bunx","bunx skills add flanliulf\u002FSpecLite --skill speclite-brownfield-context-builder",{"tool":52,"command":53},"pnpm","pnpm dlx skills add flanliulf\u002FSpecLite --skill speclite-brownfield-context-builder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002FSKILL.md",true,[57,63,67,71,75,79,85,91,95,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"assets\u002Farchitecture-template.md","ASSET","资产文件",1420,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fassets\u002Farchitecture-template.md",{"path":64,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":65,"sourceHtmlUrl":66},"assets\u002Fbrownfield-planning-brief-template.md",1530,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fassets\u002Fbrownfield-planning-brief-template.md",{"path":68,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002Fepics-template.md",861,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fassets\u002Fepics-template.md",{"path":72,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":73,"sourceHtmlUrl":74},"assets\u002Fprd-template.md",1132,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fassets\u002Fprd-template.md",{"path":76,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":77,"sourceHtmlUrl":78},"assets\u002Fstory-template.md",1757,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fassets\u002Fstory-template.md",{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"CHANGELOG.md","REFERENCE","参考文档",5352,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002FCHANGELOG.md",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"config.toml.example","OTHER","其他",485,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fconfig.toml.example",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"customize.toml",471,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fcustomize.toml",{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"golden\u002Fmybatis-plus-basic\u002Fdao\u002Fentity\u002FUserInfo.java","SCRIPT","脚本",326,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fgolden\u002Fmybatis-plus-basic\u002Fdao\u002Fentity\u002FUserInfo.java",{"path":102,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":103,"sourceHtmlUrl":104},"golden\u002Fmybatis-plus-basic\u002Fexpected\u002Fdata-model-inventory.expected.json",282,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fgolden\u002Fmybatis-plus-basic\u002Fexpected\u002Fdata-model-inventory.expected.json",{"path":106,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":107,"sourceHtmlUrl":108},"golden\u002FREADME.md",984,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fgolden\u002FREADME.md",{"path":110,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":111,"sourceHtmlUrl":112},"golden\u002Fspring-mvc-basic\u002Fexpected\u002Fapi-inventory.expected.json",399,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fgolden\u002Fspring-mvc-basic\u002Fexpected\u002Fapi-inventory.expected.json",{"path":114,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":115,"sourceHtmlUrl":116},"golden\u002Fspring-mvc-basic\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fexample\u002Flucky\u002FLuckyController.java",429,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fgolden\u002Fspring-mvc-basic\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fexample\u002Flucky\u002FLuckyController.java",{"path":118,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":119,"sourceHtmlUrl":120},"references\u002Fbaseline-synthesizer.md",10343,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fbaseline-synthesizer.md",{"path":122,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":123,"sourceHtmlUrl":124},"references\u002Fdeep-dive-analyzer.md",7909,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fdeep-dive-analyzer.md",{"path":126,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":127,"sourceHtmlUrl":128},"references\u002Fdocument-templates.md",4291,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fdocument-templates.md",{"path":130,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":131,"sourceHtmlUrl":132},"references\u002Fevidence-extractor.md",6385,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fevidence-extractor.md",{"path":134,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":135,"sourceHtmlUrl":136},"references\u002Fevidence-schema.md",10619,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fevidence-schema.md",{"path":138,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":139,"sourceHtmlUrl":140},"references\u002Fexamples.md",5373,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fexamples.md",{"path":142,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":143,"sourceHtmlUrl":144},"references\u002Fframework-adapters\u002Fmybatis-plus.md",2985,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fframework-adapters\u002Fmybatis-plus.md",{"path":146,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":147,"sourceHtmlUrl":148},"references\u002Fframework-adapters\u002Fspring-mvc.md",3544,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fframework-adapters\u002Fspring-mvc.md",{"path":150,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":151,"sourceHtmlUrl":152},"references\u002Fhistorical-doc-ingestion.md",5970,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fhistorical-doc-ingestion.md",{"path":154,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":155,"sourceHtmlUrl":156},"references\u002Fknown-failure-patterns.md",8047,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fknown-failure-patterns.md",{"path":158,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":159,"sourceHtmlUrl":160},"references\u002Fplanning-synthesizer.md",9616,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fplanning-synthesizer.md",{"path":162,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":163,"sourceHtmlUrl":164},"references\u002Frepository-classifier.md",5231,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Frepository-classifier.md",{"path":166,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":167,"sourceHtmlUrl":168},"references\u002Fv2-paradigm-design.md",5964,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fv2-paradigm-design.md",{"path":170,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":171,"sourceHtmlUrl":172},"references\u002Fvalidation-checklist.md",3874,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fvalidation-checklist.md",{"path":174,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":175,"sourceHtmlUrl":176},"references\u002Fworkflow-router.md",6691,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Freferences\u002Fworkflow-router.md",{"path":178,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":179,"sourceHtmlUrl":180},"scripts\u002Fadversarial_grounding_check.py",11122,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fadversarial_grounding_check.py",{"path":182,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":183,"sourceHtmlUrl":184},"scripts\u002Fbuild_dependency_graph.py",10800,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fbuild_dependency_graph.py",{"path":186,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":187,"sourceHtmlUrl":188},"scripts\u002Fcollect_config_surface.py",13219,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fcollect_config_surface.py",{"path":190,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":191,"sourceHtmlUrl":192},"scripts\u002Fcollect_test_surface.py",5453,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fcollect_test_surface.py",{"path":194,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":195,"sourceHtmlUrl":196},"scripts\u002Fextract_api_inventory.py",13445,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fextract_api_inventory.py",{"path":198,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":199,"sourceHtmlUrl":200},"scripts\u002Fextract_data_models.py",16558,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fextract_data_models.py",{"path":202,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":203,"sourceHtmlUrl":204},"scripts\u002Fmerge_historical_facts.py",9277,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fmerge_historical_facts.py",{"path":206,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":207,"sourceHtmlUrl":208},"scripts\u002Frender_baseline_skeleton.py",8456,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Frender_baseline_skeleton.py",{"path":210,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":211,"sourceHtmlUrl":212},"scripts\u002Frun_golden.py",5215,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Frun_golden.py",{"path":214,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":215,"sourceHtmlUrl":216},"scripts\u002Fscan_repo.py",16269,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fscan_repo.py",{"path":218,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":219,"sourceHtmlUrl":220},"scripts\u002Fupdate_state.py",10891,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fupdate_state.py",{"path":222,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":223,"sourceHtmlUrl":224},"scripts\u002Fvalidate_outputs.py",16925,"https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsdlc-skills\u002F1-analysis\u002Fspeclite-brownfield-context-builder\u002Fscripts\u002Fvalidate_outputs.py",[226,232,239,246,253,260],{"skillNo":227,"name":228,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":231,"publishedAt":19},"01M76P89DWEDZ1JG6DSCQQPRPN","speclite-dev-story","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fsource-integrity\u002Flocal-source-snapshot-unverified\u002Finput\u002Fsource\u002Fcore-skills\u002Fspeclite-dev-story\u002FSKILL.md",[],[],{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":238,"publishedAt":19},"01M76P87XBP3W1CZY0AJWPFSGE","speclite-code-review-01-reviewer","Fixture-owned installed skill entry for the minimal artifact loop.","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-artifact-loop\u002Finput\u002F.claude\u002Fskills\u002Fspeclite-code-review-01-reviewer\u002FSKILL.md",[],[],{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":245,"publishedAt":19},"01M76P8507WMXJVZ17BFKADNWV","speclite-skill-lint","只读检查 Skill 定义；用于 lint skill、check skill、检查技能或评估 Skill 规范。区分基础格式、Codex 适配和 SpecLite 约定，报告证据及未检查项；Agent 定义包转交 speclite-agent-lint。","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsupport-skills\u002Fspeclite-skill-lint\u002FSKILL.md",[],[],{"skillNo":247,"name":248,"nameZh":6,"description":249,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":250,"categories":251,"keywords":252,"publishedAt":19},"01M76P82YCP8G07G0DFBB6VZGE","speclite-skill-creator","创建或迭代 SpecLite workflow Skill；用于 create skill、新建技能、生成技能包或封装工作流。设计入口、辅助资源和验证用例；Agent 定义包转交 speclite-agent-creator。","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsupport-skills\u002Fspeclite-skill-creator\u002FSKILL.md",[],[],{"skillNo":254,"name":255,"nameZh":6,"description":256,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":257,"categories":258,"keywords":259,"publishedAt":19},"01M76P7ZVEPVECYC258WNSD9XC","speclite-html-ppt-generator","生成 SpecLite-owned 单文件 HTML PPT。用于用户要求创建 docs presentation、HTML PPT、网页 slides、Swiss Style deck、杂志风 deck，或其他可直接浏览器打开的介绍\u002F分享型 deck。核心能力：使用本 Skill 内置模板、主题、layout 和 validator 生成横向翻页 HTML，并避免依赖外部个人 skill 路径。","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsupport-skills\u002Fspeclite-html-ppt-generator\u002FSKILL.md",[],[],{"skillNo":261,"name":262,"nameZh":6,"description":263,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":264,"categories":265,"keywords":266,"publishedAt":19},"01M76P7WQ9NZDFZ306HKP8J6QX","speclite-docs-intro-ppt-creator","生成 SpecLite docs 下的介绍型 HTML PPT。用于用户要求把某个项目体系、系统设计、治理机制、理念或工作流总结成 docs presentation、HTML PPT、网页 slides、介绍 deck。核心能力：限定输出目录、基于事实材料规划叙事、调用 speclite-html-ppt-generator 生成单 HTML deck，并用确定性检查和浏览器抽样收口。","https:\u002F\u002Fgithub.com\u002Fflanliulf\u002FSpecLite\u002Fblob\u002Fmain\u002Fassets\u002Fsource\u002Fspeclite\u002Fsupport-skills\u002Fspeclite-docs-intro-ppt-creator\u002FSKILL.md",[],[]]