- name
- website-314-api-delivery
- standard_type
- external_entry
- description
- Use this skill when a user gives a new website or existing target site and asks for end-to-end pure-interface implementation, FastAPI interface test delivery, API service delivery, or optional integration with a local base framework such as 314 after the Python interfaces are verified. Trigger for requests such as new website crawler, pure API implementation, FastAPI test API, site-to-service delivery, search/cart/order/payment flow, flight booking interface, 314 framework, flight_cwl_common_314, local base framework, 接口实现, 纯接口, FastAPI接口测试, 网站接入, 新站点接入, 查询/加车/生单/支付, 加解密全部实现, 314基础框架, 本地基础框架, 提供接口, 服务化, or 长期可维护接口交付.
- platforms
- ["web","h5"]
# Website FastAPI Test API Delivery
## Do NOT Trigger When
- 用户只要"采集一下数据"、单次性脚本,不提"接口测试交付"、"长期维护"、"服务化"、"接入框架" → 切到 `reverse-js-crawler`
- 用户只问"找加密入口"、"补环境"、"看一下 JS 怎么生成 sign" 等单点逆向问题 → 切到 `reverse-js-crawler`(或更具体的 `find-crypto-entry` / `env-patch`)
- 用户只问 WAF/Reese84/84盾怎么过 → 切到 `imperva-waf-reese84`
- 用户只要把已有结果"沉淀成 adapter / schema / runbook" → 切到 `site-api-adapter`
- 用户做的不是 Web/H5 网站接入 → 不属于本仓库范围
- 用户问的是 skill 评分/治理本身 → 切到 `skills-evaluation-governance`
## Purpose
把一个新网站从“给 URL / 业务目标”推进到“纯接口实现 + FastAPI 接口测试交付 + 测试闭环 + 可持续沉淀”。Python/FastAPI 接口全部验证成功后,再人工确认是否接入本地基础框架;314 只是可选基础框架分支之一。这个 Skill 是总控流程,用来调度逆向、反爬、接口化、测试、可选框架接入和长期治理。
## Standard LOOP Pure API Gate
This skill is an `external_entry` and `pure_api_delivery` owner. Final business delivery must be browserless: browser tooling is permitted for reconnaissance, script location, runtime trace, sample collection, and parity checks, but final business flow must pass `tools/evidence/validate_pure_api_delivery.py` against a delivery lab or package that has no Playwright/Puppeteer/Camoufox/profile/manual-cookie dependency.
## When To Use
使用这个 Skill 处理类似任务:
- “给你一个网站,做纯接口实现”
- “先做 FastAPI 接口测试交付”
- “实现查询、加车、生单、支付”
- “加解密全部实现”
- “Python 接口全部成功后,再确认是否接入本地基础框架”
- “最后用 314 基础框架提供接口”
- “把这个站点接入长期可维护的服务”
## Skill Routing
按问题类型调用已有 Skill。**进入对应阶段前,主动 Read 对应 skill 的 SKILL.md,把它的 workflow 和 Boundaries 装进当前上下文,再继续执行**,不要凭 description 记忆继续工作。
| 场景 | 阶段 | 必读文件 |
|---|---|---|
| 真实接口、参数、JS 加密 | 阶段 B-D | Read `~/.claude/skills/reverse-js-crawler/SKILL.md` |
| WAF、84盾、Reese84、Incapsula、x-d-token | 阶段 B-D | Read `~/.claude/skills/imperva-waf-reese84/SKILL.md` |
| 接口已稳定,做 adapter/schema/runbook/prompt-router | 阶段 E | Read `~/.claude/skills/site-api-adapter/SKILL.md` |
| 任务结束做评分、eval、漂移、版本治理 | 阶段 E 之后 | Read `~/.claude/skills/skills-evaluation-governance/SKILL.md` |
执行约定:
1. **阶段切换时先 Read 再做**,每次 Read 完用一句话总结"该 skill 的 Boundaries 是什么",确认没越权。
2. 不要把所有细节塞进一个 Skill。这个 Skill 负责分层、排期、验收和交付边界,不替代任何子 skill 的具体执行。
3. 同一任务多次切换 skill 时,每次都重新 Read(防止上下文已被压缩丢失)。
## Delivery Workflow
1. 新站点建档:
- 记录目标 URL、业务目标、市场/语言、是否登录、是否支付、是否有真实交易风险。
- 明确目标接口阶段,例如 search、availability、fare、cart、traveler、order、payment。
- 先查 `../站点经验库/<domain>/`,同域名不同 market/locale/currency 也要分开看。
- 如果没有站点目录,按 `../站点经验库/_templates/` 建立测试期记忆文件。
2. 页面真实流程侦察:
- 从官方页面入口开始,不直接猜 API。
- 记录页面路由、配置、feature flag、rollout、market rule。
- 如果页面没有真实业务能力,不能伪造成功。
3. 接口识别与分类:
- 纯 HTTP:直接复现。
- JS 加密:定位入口并复现。
- 浏览器环境:抽官方 JS 到 Node 补环境。
- WAF/反爬:切到 WAF 专项。
- 业务路由错误:先修路由,不硬补参数。
4. 业务阶段实现:
- 查询:航线/日期/人数/舱位/币种/市场。
- 加车:选中 bound/fare/offer 后创建 cart 或 booking session。
- 生单:旅客、联系人、行李、附加服务、订单确认。
- 支付:优先做 sandbox/dry-run/支付前置接口;真实扣款必须人工授权,不能默认执行不可逆交易。
5. FastAPI 接口测试交付:
- 先用直接 Python 实现完成业务接口,不默认绑定任何基础框架。
- 提供 FastAPI 路由和可执行 HTTP 测试,覆盖已完成的 search/cart/order/payment preparation 阶段。
- 只有目标站点真实接受请求并返回阶段数据,才算该接口成功;本地 payload 构造成功不算成功。
- Python/FastAPI 接口全部成功前,不进入 314 或其他本地基础框架改写。
6. 本地基础框架接入确认:
- 在 FastAPI 接口测试全部成功后暂停,向人工确认:是否接入本地基础框架?可选项包括 `否`、`314`、或用户指定的其他本地基础框架。
- 用户选择 `否`:保留 FastAPI 接口测试交付和沉淀材料,不继续改写框架。
- 用户选择 `314`:按 314 分支改写,保留 314 的 trace/session id、日志、代理、请求执行器、并发生命周期。
- 用户选择其他本地基础框架:先读取该框架的本地代码、接口约定、生命周期和测试方式,再按真实框架约束改写。
- 服务层只放业务编排;加解密放 crypto/runtime;WAF 放 anti_bot。
7. 测试闭环:
- service-level 单测。
- HTTP API 测试。
- 稳定性循环。
- WAF 接受度测试。
- 失败路径测试。
- 从测试日志提炼失败模式:symptom、stage、market、currency、status、marker、root cause、correct handling。
8. 沉淀:
- 生成 adapter/runbook/case notes。
- 更新相关 Skill references。
- 把新失败点加入 eval。
- 更新版本号和变更记录。
- 写回 `站点经验库/<domain>/known-failures.md`、`test-log-lessons.md`、`eval-backlog.md`、`change-log.md`。
## Success Criteria
成功不是“脚本能跑一下”,而是:
- 目标业务接口真实接受请求。
- API 返回结构稳定。
- 日志能定位入参、session_id、阶段、耗时、返回码、错误信息。
- 失败时能区分业务错误、路由错误、加密错误、WAF、IP、支付不可逆风险。
- FastAPI 接口测试全部成功后,是否接入本地基础框架有明确人工确认记录。
- 结果能沉淀成下一次复用的 Skill/eval。
- 同站点同 market/locale/currency/stage 的已知失败在执行前被检查,并且测试后有写回记录。
## Tool Policy
- **开始实现前 Read `~/.claude/skills/karpathy-guidelines/SKILL.md`**,确认 4 条原则:Think Before Coding / Simplicity First / Surgical Changes / Goal-Driven Execution。这是基础层规范,所有执行类 skill 强制依赖。
- **遇到逆向运行时问题(断点/时间/cookie/TLS 指纹/风控恢复/接口变更)Read `~/.claude/skills/oh_my_reverse_skill/99-SKILLS治理/10-逆向运行时常见问题.md`**。
- **输出结论、扩范围或做并发前 Read `~/.claude/skills/oh_my_reverse_skill/99-SKILLS治理/11-AI事实证据规约.md` / `12-反泛化与任务收敛规约.md` / `13-并发指纹与会话隔离规约.md`**。
- **改端点/字段/状态/保护/实现/eval 前后 Read `14-知识图谱行程与关联规约.md` / `15-AI变更风险与回归校验规约.md`,并更新 knowledge-graph.md / impact-regression.md**。
## Boundaries
- 这是新站点到 FastAPI 接口测试交付和可选本地基础框架接入的总控 Skill,不替代编码 AGENT。
- 314 不是默认交付目标,只是用户确认后的本地基础框架分支。
- 不把 Karpathy 风格编码纪律写进这里;后续放 AGENT。
- 支付阶段默认按 sandbox/dry-run/支付前置验证处理,真实扣款必须明确授权并满足合法合规要求。
## Governance
- Version: 0.2.2
- Status: site-memory baseline
- Change log: record material trigger, workflow, reference, and eval changes in `references/governance.md`.
- Drift tests: rerun evals after changing descriptions, adding new cases, or after important real-world failures.
- Review cadence: update examples and negative triggers when repeated user corrections show a gap.
- Site memory: read and write `../站点经验库/<domain>/` during normal testing, not only after production incidents.
## References
- `references/intake-and-routing.md`: 新站点接入和分类规则。
- `references/314-integration.md`: 314 框架接入边界。
- `references/delivery-checklist.md`: 查询、加车、生单、支付、测试交付清单。
- `references/test-log-mining.md`: 从测试日志提炼失败模式并回写经验库。
- `references/github-ci.md`: GitHub Skill Bench CI 操作流程。
- `references/governance.md`: 版本、变更、漂移测试策略。
GitHub에서 보기