{"owner":"reorx","repo":"httpstat","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# httpstat 项目规划\n\n## 1) 项目现状\n\n- 单文件 CLI (`httpstat.py`, ~370 行)，Python >=3.9，版本 2.0.0。\n- 打包完全由 `pyproject.toml` 驱动（setuptools），`setup.py` 已删除。\n- 构建/发布使用 `uv build` / `uv publish`。\n- 测试为 `httpstat_test.sh`（端到端 shell 脚本，依赖外网站点）。\n\n### 已完成的现代化工作\n- 去除所有 Python 2 兼容代码，shebang 改为 `#!/usr/bin/env python`。\n- 全量 f-string，新式 class 语法，类型标注（`Env` 类 overload、`NoReturn`）。\n- 严格布尔解析 `parse_bool()`，替代 `'true' in value.lower()`。\n- 临时文件 `try/finally` 统一清理，不再泄漏。\n- `quit()` 重命名为 `_exit()` 并标注 `NoReturn`。\n\n\n## 2) 剩余技术债\n\n### A. 测试可靠性不足（高优先级）\n- 仅有 shell E2E，强依赖公网与第三方站点行为，CI/本地结果不稳定。\n- 缺少单元测试，核心逻辑（指标换算、区间计算、`parse_bool`）没有稳定回归保障。\n\n### B. Agent 适配能力不足（中高优先级）\n- 当前 JSON 输出缺少 schema version、状态码语义、错误结构、上下文元数据。\n- 缺少\"可机器判断\"的 SLO/阈值能力（例如总耗时超阈值即非 0 退出）。\n- 输出模式较少，无法直接覆盖 Agent 常见流水线（JSONL、紧凑 JSON、纯错误对象）。\n\n\n## 3) 下一阶段推进方案\n\n### Phase 1：结构化输出 + SLO（本轮实施）\n\n#### 输出格式\n- 新增 `--format`（`-f`）：`pretty | json | jsonl`（默认 `pretty`，兼容现有行为）。\n- `HTTPSTAT_METRICS_ONLY` 环境变量保留兼容，等价于 `--format json`。\n- JSON v1 schema（最小集，后续通过 schema_version 扩展）：\n  ```json\n  {\n    \"schema_version\": 1,\n    \"url\": \"...\",\n    \"ok\": true,\n    \"exit_code\": 0,\n    \"response\": {\n      \"status_line\": \"HTTP/2 200\",\n      \"status_code\": 200,\n      \"remote_ip\": \"...\",\n      \"remote_port\": \"...\",\n      \"headers\": {\"Content-Type\": \"application/json\", \"Server\": \"nginx\", \"...\": \"...\"}\n    },\n    \"timings_ms\": {\n      \"dns\": 5,\n      \"connect\": 10,\n      \"tls\": 15,\n      \"server\": 50,\n      \"transfer\": 20,\n      \"total\": 100,\n      \"namelookup\": 5,\n      \"initial_connect\": 15,\n      \"pretransfer\": 30,\n      \"starttransfer\": 80\n    },\n    \"speed\": {\n      \"download_kbs\": 1234.5,\n      \"upload_kbs\": 0.0\n    },\n    \"slo\": {\n      \"pass\": true,\n      \"violations\": []\n    }\n  }\n  ```\n\n#### SLO 阈值\n- 单一参数 `--slo key=value,...`，例如 `--slo total=500,connect=100,ttfb=200`。\n- 支持的 key：`total`、`connect`、`ttfb`（starttransfer）、`dns`、`tls`。\n- 超阈值时退出码为 `4`，JSON 中 `slo.pass=false`，`slo.violations` 列出超标项。\n- pretty 模式下在输出末尾用红色标注超标指标。\n\n#### 颜色控制\n- 遵循 `NO_COLOR` 环境变量（https://no-color.org）。设置后禁用所有 ANSI 颜色。\n- 不新增 `--no-color` 命令行参数，减少 flag 膨胀。\n\n#### 其他 Agent 友好改进\n- 新增 `--save <path>` 将结果写入文件（适合多步 Agent 工作流复用）。\n- `--format json` 已天然抑制装饰文本，不另设 `--quiet`。\n\n### Phase 2：Skill 层（进行中）\n- `skills/httpstat/SKILL.md`：已完成初版诊断 skill，覆盖自动安装、瓶颈识别、SLO 阈值、curl 转换。\n- `skills/httpstat/evals/evals.json`：3 个评估用例，经过两轮迭代验证。\n- 待补充：诊断推理输出结构（bottleneck_stage、next_actions）尚未结构化为 JSON，目前以自然语言分析为主。\n\n\n## 4) 完成标准（Definition of Done）\n- `--format json` 输出具备 schema_version=1 的稳定结构，有单元测试锁定。\n- `--slo` 阈值判定正确，退出码 `4` 有测试覆盖。\n- `NO_COLOR` 正确禁用颜色输出。\n- 不破坏现有 `pretty` 模式的默认行为。\n"},"files":{"AGENTS.md":"# httpstat 项目规划\n\n## 1) 项目现状\n\n- 单文件 CLI (`httpstat.py`, ~370 行)，Python >=3.9，版本 2.0.0。\n- 打包完全由 `pyproject.toml` 驱动（setuptools），`setup.py` 已删除。\n- 构建/发布使用 `uv build` / `uv publish`。\n- 测试为 `httpstat_test.sh`（端到端 shell 脚本，依赖外网站点）。\n\n### 已完成的现代化工作\n- 去除所有 Python 2 兼容代码，shebang 改为 `#!/usr/bin/env python`。\n- 全量 f-string，新式 class 语法，类型标注（`Env` 类 overload、`NoReturn`）。\n- 严格布尔解析 `parse_bool()`，替代 `'true' in value.lower()`。\n- 临时文件 `try/finally` 统一清理，不再泄漏。\n- `quit()` 重命名为 `_exit()` 并标注 `NoReturn`。\n\n\n## 2) 剩余技术债\n\n### A. 测试可靠性不足（高优先级）\n- 仅有 shell E2E，强依赖公网与第三方站点行为，CI/本地结果不稳定。\n- 缺少单元测试，核心逻辑（指标换算、区间计算、`parse_bool`）没有稳定回归保障。\n\n### B. Agent 适配能力不足（中高优先级）\n- 当前 JSON 输出缺少 schema version、状态码语义、错误结构、上下文元数据。\n- 缺少\"可机器判断\"的 SLO/阈值能力（例如总耗时超阈值即非 0 退出）。\n- 输出模式较少，无法直接覆盖 Agent 常见流水线（JSONL、紧凑 JSON、纯错误对象）。\n\n\n## 3) 下一阶段推进方案\n\n### Phase 1：结构化输出 + SLO（本轮实施）\n\n#### 输出格式\n- 新增 `--format`（`-f`）：`pretty | json | jsonl`（默认 `pretty`，兼容现有行为）。\n- `HTTPSTAT_METRICS_ONLY` 环境变量保留兼容，等价于 `--format json`。\n- JSON v1 schema（最小集，后续通过 schema_version 扩展）：\n  ```json\n  {\n    \"schema_version\": 1,\n    \"url\": \"...\",\n    \"ok\": true,\n    \"exit_code\": 0,\n    \"response\": {\n      \"status_line\": \"HTTP/2 200\",\n      \"status_code\": 200,\n      \"remote_ip\": \"...\",\n      \"remote_port\": \"...\",\n      \"headers\": {\"Content-Type\": \"application/json\", \"Server\": \"nginx\", \"...\": \"...\"}\n    },\n    \"timings_ms\": {\n      \"dns\": 5,\n      \"connect\": 10,\n      \"tls\": 15,\n      \"server\": 50,\n      \"transfer\": 20,\n      \"total\": 100,\n      \"namelookup\": 5,\n      \"initial_connect\": 15,\n      \"pretransfer\": 30,\n      \"starttransfer\": 80\n    },\n    \"speed\": {\n      \"download_kbs\": 1234.5,\n      \"upload_kbs\": 0.0\n    },\n    \"slo\": {\n      \"pass\": true,\n      \"violations\": []\n    }\n  }\n  ```\n\n#### SLO 阈值\n- 单一参数 `--slo key=value,...`，例如 `--slo total=500,connect=100,ttfb=200`。\n- 支持的 key：`total`、`connect`、`ttfb`（starttransfer）、`dns`、`tls`。\n- 超阈值时退出码为 `4`，JSON 中 `slo.pass=false`，`slo.violations` 列出超标项。\n- pretty 模式下在输出末尾用红色标注超标指标。\n\n#### 颜色控制\n- 遵循 `NO_COLOR` 环境变量（https://no-color.org）。设置后禁用所有 ANSI 颜色。\n- 不新增 `--no-color` 命令行参数，减少 flag 膨胀。\n\n#### 其他 Agent 友好改进\n- 新增 `--save <path>` 将结果写入文件（适合多步 Agent 工作流复用）。\n- `--format json` 已天然抑制装饰文本，不另设 `--quiet`。\n\n### Phase 2：Skill 层（进行中）\n- `skills/httpstat/SKILL.md`：已完成初版诊断 skill，覆盖自动安装、瓶颈识别、SLO 阈值、curl 转换。\n- `skills/httpstat/evals/evals.json`：3 个评估用例，经过两轮迭代验证。\n- 待补充：诊断推理输出结构（bottleneck_stage、next_actions）尚未结构化为 JSON，目前以自然语言分析为主。\n\n\n## 4) 完成标准（Definition of Done）\n- `--format json` 输出具备 schema_version=1 的稳定结构，有单元测试锁定。\n- `--slo` 阈值判定正确，退出码 `4` 有测试覆盖。\n- `NO_COLOR` 正确禁用颜色输出。\n- 不破坏现有 `pretty` 模式的默认行为。\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# httpstat 项目规划\n\n## 1) 项目现状\n\n- 单文件 CLI (`httpstat.py`, ~370 行)，Python >=3.9，版本 2.0.0。\n- 打包完全由 `pyproject.toml` 驱动（setuptools），`setup.py` 已删除。\n- 构建/发布使用 `uv build` / `uv publish`。\n- 测试为 `httpstat_test.sh`（端到端 shell 脚本，依赖外网站点）。\n\n### 已完成的现代化工作\n- 去除所有 Python 2 兼容代码，shebang 改为 `#!/usr/bin/env python`。\n- 全量 f-string，新式 class 语法，类型标注（`Env` 类 overload、`NoReturn`）。\n- 严格布尔解析 `parse_bool()`，替代 `'true' in value.lower()`。\n- 临时文件 `try/finally` 统一清理，不再泄漏。\n- `quit()` 重命名为 `_exit()` 并标注 `NoReturn`。\n\n\n## 2) 剩余技术债\n\n### A. 测试可靠性不足（高优先级）\n- 仅有 shell E2E，强依赖公网与第三方站点行为，CI/本地结果不稳定。\n- 缺少单元测试，核心逻辑（指标换算、区间计算、`parse_bool`）没有稳定回归保障。\n\n### B. Agent 适配能力不足（中高优先级）\n- 当前 JSON 输出缺少 schema version、状态码语义、错误结构、上下文元数据。\n- 缺少\"可机器判断\"的 SLO/阈值能力（例如总耗时超阈值即非 0 退出）。\n- 输出模式较少，无法直接覆盖 Agent 常见流水线（JSONL、紧凑 JSON、纯错误对象）。\n\n\n## 3) 下一阶段推进方案\n\n### Phase 1：结构化输出 + SLO（本轮实施）\n\n#### 输出格式\n- 新增 `--format`（`-f`）：`pretty | json | jsonl`（默认 `pretty`，兼容现有行为）。\n- `HTTPSTAT_METRICS_ONLY` 环境变量保留兼容，等价于 `--format json`。\n- JSON v1 schema（最小集，后续通过 schema_version 扩展）：\n  ```json\n  {\n    \"schema_version\": 1,\n    \"url\": \"...\",\n    \"ok\": true,\n    \"exit_code\": 0,\n    \"response\": {\n      \"status_line\": \"HTTP/2 200\",\n      \"status_code\": 200,\n      \"remote_ip\": \"...\",\n      \"remote_port\": \"...\",\n      \"headers\": {\"Content-Type\": \"application/json\", \"Server\": \"nginx\", \"...\": \"...\"}\n    },\n    \"timings_ms\": {\n      \"dns\": 5,\n      \"connect\": 10,\n      \"tls\": 15,\n      \"server\": 50,\n      \"transfer\": 20,\n      \"total\": 100,\n      \"namelookup\": 5,\n      \"initial_connect\": 15,\n      \"pretransfer\": 30,\n      \"starttransfer\": 80\n    },\n    \"speed\": {\n      \"download_kbs\": 1234.5,\n      \"upload_kbs\": 0.0\n    },\n    \"slo\": {\n      \"pass\": true,\n      \"violations\": []\n    }\n  }\n  ```\n\n#### SLO 阈值\n- 单一参数 `--slo key=value,...`，例如 `--slo total=500,connect=100,ttfb=200`。\n- 支持的 key：`total`、`connect`、`ttfb`（starttransfer）、`dns`、`tls`。\n- 超阈值时退出码为 `4`，JSON 中 `slo.pass=false`，`slo.violations` 列出超标项。\n- pretty 模式下在输出末尾用红色标注超标指标。\n\n#### 颜色控制\n- 遵循 `NO_COLOR` 环境变量（https://no-color.org）。设置后禁用所有 ANSI 颜色。\n- 不新增 `--no-color` 命令行参数，减少 flag 膨胀。\n\n#### 其他 Agent 友好改进\n- 新增 `--save <path>` 将结果写入文件（适合多步 Agent 工作流复用）。\n- `--format json` 已天然抑制装饰文本，不另设 `--quiet`。\n\n### Phase 2：Skill 层（进行中）\n- `skills/httpstat/SKILL.md`：已完成初版诊断 skill，覆盖自动安装、瓶颈识别、SLO 阈值、curl 转换。\n- `skills/httpstat/evals/evals.json`：3 个评估用例，经过两轮迭代验证。\n- 待补充：诊断推理输出结构（bottleneck_stage、next_actions）尚未结构化为 JSON，目前以自然语言分析为主。\n\n\n## 4) 完成标准（Definition of Done）\n- `--format json` 输出具备 schema_version=1 的稳定结构，有单元测试锁定。\n- `--slo` 阈值判定正确，退出码 `4` 有测试覆盖。\n- `NO_COLOR` 正确禁用颜色输出。\n- 不破坏现有 `pretty` 模式的默认行为。\n","category":"root","tokens":643}]}