specpro-cli 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- specpro_cli-0.1.0/.gitignore +24 -0
- specpro_cli-0.1.0/LICENSE +21 -0
- specpro_cli-0.1.0/PKG-INFO +117 -0
- specpro_cli-0.1.0/PUBLISHING.md +44 -0
- specpro_cli-0.1.0/README.md +88 -0
- specpro_cli-0.1.0/assets/commands/specpro.analyze.md +1102 -0
- specpro_cli-0.1.0/assets/commands/specpro.checklist.md +335 -0
- specpro_cli-0.1.0/assets/commands/specpro.clarify.md +581 -0
- specpro_cli-0.1.0/assets/commands/specpro.constitution.md +488 -0
- specpro_cli-0.1.0/assets/commands/specpro.feature.md +115 -0
- specpro_cli-0.1.0/assets/commands/specpro.implement.md +1881 -0
- specpro_cli-0.1.0/assets/commands/specpro.manual-test.md +206 -0
- specpro_cli-0.1.0/assets/commands/specpro.plan.md +3284 -0
- specpro_cli-0.1.0/assets/commands/specpro.qc.md +1489 -0
- specpro_cli-0.1.0/assets/commands/specpro.scenarios.md +154 -0
- specpro_cli-0.1.0/assets/commands/specpro.specify.md +1449 -0
- specpro_cli-0.1.0/assets/commands/specpro.status.md +863 -0
- specpro_cli-0.1.0/assets/commands/specpro.tasks.md +1207 -0
- specpro_cli-0.1.0/assets/commands/specpro.test-implement.md +462 -0
- specpro_cli-0.1.0/assets/commands/specpro.test-plan.md +383 -0
- specpro_cli-0.1.0/assets/commands/specpro.user-manual.md +178 -0
- specpro_cli-0.1.0/assets/scripts/bash/check-anti-coupling.sh +293 -0
- specpro_cli-0.1.0/assets/scripts/bash/check-prerequisites.sh +176 -0
- specpro_cli-0.1.0/assets/scripts/bash/common.sh +88 -0
- specpro_cli-0.1.0/assets/scripts/bash/create-new-feature.sh +336 -0
- specpro_cli-0.1.0/assets/scripts/bash/qc-auto-fix.sh +121 -0
- specpro_cli-0.1.0/assets/scripts/bash/setup-plan.sh +60 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-cumulative-records.sh +203 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-deliverables-tracked.sh +147 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-deployment.sh +239 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-frontmatter-yaml.sh +63 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-ledger.sh +376 -0
- specpro_cli-0.1.0/assets/scripts/bash/verify-shapes.sh +1082 -0
- specpro_cli-0.1.0/assets/scripts/git-hooks/pre-commit +243 -0
- specpro_cli-0.1.0/assets/scripts/install-git-hooks.sh +67 -0
- specpro_cli-0.1.0/assets/scripts/powershell/check-anti-coupling.ps1 +249 -0
- specpro_cli-0.1.0/assets/scripts/powershell/check-prerequisites.ps1 +148 -0
- specpro_cli-0.1.0/assets/scripts/powershell/common.ps1 +95 -0
- specpro_cli-0.1.0/assets/scripts/powershell/create-new-feature.ps1 +229 -0
- specpro_cli-0.1.0/assets/scripts/powershell/qc-auto-fix.ps1 +110 -0
- specpro_cli-0.1.0/assets/scripts/powershell/setup-plan.ps1 +61 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-cumulative-records.ps1 +133 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-deliverables-tracked.ps1 +112 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-deployment.ps1 +278 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-frontmatter-yaml.ps1 +56 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-ledger.ps1 +383 -0
- specpro_cli-0.1.0/assets/scripts/powershell/verify-shapes.ps1 +978 -0
- specpro_cli-0.1.0/assets/templates/agent-context-template.md +49 -0
- specpro_cli-0.1.0/assets/templates/assumptions-template.md +248 -0
- specpro_cli-0.1.0/assets/templates/checklist-template.md +40 -0
- specpro_cli-0.1.0/assets/templates/clarifications-template.md +155 -0
- specpro_cli-0.1.0/assets/templates/constitution-template.md +50 -0
- specpro_cli-0.1.0/assets/templates/feature-spec-template.md +66 -0
- specpro_cli-0.1.0/assets/templates/plan-overview-template.md +150 -0
- specpro_cli-0.1.0/assets/templates/plan-template.md +387 -0
- specpro_cli-0.1.0/assets/templates/protocol-golden-bytes-guide.md +195 -0
- specpro_cli-0.1.0/assets/templates/requirements-template.md +356 -0
- specpro_cli-0.1.0/assets/templates/spec-template.md +267 -0
- specpro_cli-0.1.0/assets/templates/tasks-template.md +252 -0
- specpro_cli-0.1.0/assets/templates/test-tasks-template.md +174 -0
- specpro_cli-0.1.0/fallback/install.ps1 +22 -0
- specpro_cli-0.1.0/fallback/install.sh +29 -0
- specpro_cli-0.1.0/fallback/install_core.py +129 -0
- specpro_cli-0.1.0/hatch_build.py +37 -0
- specpro_cli-0.1.0/pyproject.toml +95 -0
- specpro_cli-0.1.0/release.sh +39 -0
- specpro_cli-0.1.0/specpro_cli/__init__.py +16 -0
- specpro_cli-0.1.0/specpro_cli/cli/__init__.py +5 -0
- specpro_cli-0.1.0/specpro_cli/cli/cmd_init.py +416 -0
- specpro_cli-0.1.0/specpro_cli/cli/cmd_remove.py +122 -0
- specpro_cli-0.1.0/specpro_cli/cli/entry.py +181 -0
- specpro_cli-0.1.0/specpro_cli/integrations/__init__.py +36 -0
- specpro_cli-0.1.0/specpro_cli/integrations/base.py +601 -0
- specpro_cli-0.1.0/specpro_cli/integrations/claude/__init__.py +101 -0
- specpro_cli-0.1.0/specpro_cli/integrations/copilot/__init__.py +153 -0
- specpro_cli-0.1.0/specpro_cli/integrations/cursor_agent/__init__.py +51 -0
- specpro_cli-0.1.0/specpro_cli/integrations/gemini/__init__.py +44 -0
- specpro_cli-0.1.0/specpro_cli/integrations/opencode/__init__.py +48 -0
- specpro_cli-0.1.0/specpro_cli/integrations/qodercli/__init__.py +54 -0
- specpro_cli-0.1.0/specpro_cli/integrations/registry.py +88 -0
- specpro_cli-0.1.0/specpro_cli/packaged/__init__.py +5 -0
- specpro_cli-0.1.0/specpro_cli/packaged/sync.py +106 -0
- specpro_cli-0.1.0/tests/.gitkeep +0 -0
- specpro_cli-0.1.0/tests/test_asset_snapshot.py +136 -0
- specpro_cli-0.1.0/tests/test_cli_entry.py +137 -0
- specpro_cli-0.1.0/tests/test_cli_interactive.py +147 -0
- specpro_cli-0.1.0/tests/test_cmd_init.py +254 -0
- specpro_cli-0.1.0/tests/test_cmd_remove.py +271 -0
- specpro_cli-0.1.0/tests/test_integrations.py +257 -0
- specpro_cli-0.1.0/tests/test_script_parity.py +1277 -0
- specpro_cli-0.1.0/tests/test_smoke.py +40 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# --- 独立仓库的工作树(各有自己的 .git,不进主仓库)---
|
|
2
|
+
# 显式声明:这三个目录是刻意的边界,不是遗漏。
|
|
3
|
+
/specs/
|
|
4
|
+
/docs/
|
|
5
|
+
/private/
|
|
6
|
+
|
|
7
|
+
# --- 自举部署镜像:由部署动作生成,非源 ---
|
|
8
|
+
.claude/
|
|
9
|
+
.specpro/
|
|
10
|
+
|
|
11
|
+
# --- 元数据与构建产物 ---
|
|
12
|
+
.DS_Store
|
|
13
|
+
__pycache__/
|
|
14
|
+
*.py[cod]
|
|
15
|
+
*.egg-info/
|
|
16
|
+
dist/
|
|
17
|
+
build/
|
|
18
|
+
|
|
19
|
+
# --- 安装 CLI 的构建产物与本地环境 ---
|
|
20
|
+
# 资产快照:构建期从仓库根同步,非手工维护(约束 C4)
|
|
21
|
+
tools/install/assets/
|
|
22
|
+
.venv/
|
|
23
|
+
venv/
|
|
24
|
+
.pytest_cache/
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wu Wantong
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: specpro-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Install specpro's distributed assets into a host project, for one of the supported AI coding agents.
|
|
5
|
+
Project-URL: Homepage, https://github.com/wutone55/specpro
|
|
6
|
+
Project-URL: Repository, https://github.com/wutone55/specpro
|
|
7
|
+
Project-URL: Issues, https://github.com/wutone55/specpro/issues
|
|
8
|
+
Author: Wu Wantong
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai-coding,claude,development-workflow,sdd,spec-driven,specification
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: MacOS
|
|
16
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
|
+
Requires-Dist: click
|
|
24
|
+
Requires-Dist: pathspec
|
|
25
|
+
Requires-Dist: pyyaml
|
|
26
|
+
Requires-Dist: rich
|
|
27
|
+
Requires-Dist: typer
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# Spec Pro
|
|
31
|
+
|
|
32
|
+
Better Spec-Driven Development Toolkit for AI Coding Agents.
|
|
33
|
+
|
|
34
|
+
specpro 把一套规范驱动开发(SDD)工作流装进你的项目:16 个斜杠命令(`/specpro-specify`、`/specpro-plan`、`/specpro-tasks`、`/specpro-implement`……)驱动 AI 编程助手按「规格 → 设计 → 任务 → 实现 → 测试」的链条交付功能,并自带核验器保证产物不漂移。
|
|
35
|
+
|
|
36
|
+
**需要**:一个 git 项目 + 至少一个受支持的 AI 编程助手(Claude Code / Copilot / Cursor / Gemini CLI / OpenCode / Qoder)。
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 安装(推荐:uv tool,约 30 秒)
|
|
41
|
+
|
|
42
|
+
### 第 0 步 · 安装 uv(各平台任选其一)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# macOS / Linux(官方脚本)
|
|
46
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
47
|
+
|
|
48
|
+
# macOS(Homebrew)
|
|
49
|
+
brew install uv
|
|
50
|
+
|
|
51
|
+
# Windows(PowerShell)
|
|
52
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
53
|
+
|
|
54
|
+
# Windows(winget)
|
|
55
|
+
winget install astral-sh.uv
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
> uv 会自动管理 Python 解释器——**你不需要预装 Python**。
|
|
59
|
+
|
|
60
|
+
### 第 1 步 · 安装 specpro-cli
|
|
61
|
+
|
|
62
|
+
**从本地 whl(离线包):**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
uv tool install ./specpro_cli-*.whl
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**从 PyPI(在线):**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv tool install specpro-cli
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 第 2 步 · 验证
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
specpro --help
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
看到 SPEC PRO 头图与命令列表即安装成功。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 使用
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
cd 你的项目
|
|
88
|
+
specpro init # 交互式:确认目录 → 选择 AI 助手 → 装入工作流
|
|
89
|
+
specpro check # 自检:git 与各助手 CLI 是否就绪、项目内已装了什么
|
|
90
|
+
specpro version # 版本与系统信息
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`init` 完成后,在 AI 编程助手里即可使用 `/specpro-specify` 等斜杠命令。
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 升级与卸载
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
uv tool upgrade specpro-cli # 升级到最新版
|
|
101
|
+
uv tool list # 查看已装工具
|
|
102
|
+
uv tool uninstall specpro-cli # 卸载(只移除 CLI;项目内已装入的文件用 specpro remove 清理)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 备选:手动 venv 安装(不使用 uv 时)
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
python3 -m venv ~/.specpro-venv
|
|
111
|
+
~/.specpro-venv/bin/pip install ./specpro_cli-*.whl
|
|
112
|
+
~/.specpro-venv/bin/specpro init # 每次调用需带完整路径
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
**License**: MIT · **Repository**: https://github.com/wutone55/specpro
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Publishing specpro-cli — Maintainer Guide
|
|
2
|
+
|
|
3
|
+
> Maintainer-facing. The actual `publish` action needs a PyPI account + token — a one-time
|
|
4
|
+
> manual setup that is deliberately NOT part of the tool or the repository.
|
|
5
|
+
|
|
6
|
+
## One-time setup
|
|
7
|
+
|
|
8
|
+
1. Create a PyPI account (https://pypi.org/account/register/).
|
|
9
|
+
2. Create an API token (https://pypi.org/manage/account/token/) — scope: entire account or `specpro-cli`.
|
|
10
|
+
3. Keep it in your shell profile (never in the repository):
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
export UV_PUBLISH_TOKEN="pypi-..."
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Release procedure
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cd tools/install
|
|
20
|
+
|
|
21
|
+
# 0. Bump the version in pyproject.toml FIRST — PyPI rejects same-version uploads.
|
|
22
|
+
# Single source: [project] version. Never re-publish the same number.
|
|
23
|
+
|
|
24
|
+
./release.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`release.sh` runs the four steps in order (FR-072):
|
|
28
|
+
|
|
29
|
+
| Step | What | Failure mode it prevents |
|
|
30
|
+
|------|------|--------------------------|
|
|
31
|
+
| 1 `uv build` | sdist + wheel from the current source | stale artifacts |
|
|
32
|
+
| 2 `uvx twine check dist/*` | metadata validation | gap discovered on PyPI instead of locally |
|
|
33
|
+
| 3 package `specpro-offline/` | whl + README + LICENSE for direct distribution | the offline channel drifting from the online one |
|
|
34
|
+
| 4 `uv publish` | upload to PyPI — **only when `UV_PUBLISH_TOKEN` is set**; without it steps 1–3 still complete | accidental publish |
|
|
35
|
+
|
|
36
|
+
## Distribution
|
|
37
|
+
|
|
38
|
+
- **Online**: users install with `uv tool install specpro-cli`, upgrade with `uv tool upgrade`.
|
|
39
|
+
- **Offline**: hand out the `specpro-offline/` directory; users run `uv tool install ./specpro_cli-*.whl`.
|
|
40
|
+
|
|
41
|
+
## Future enhancement (not in this version)
|
|
42
|
+
|
|
43
|
+
GitHub Actions Trusted Publishing (OIDC) — push a tag, CI builds and publishes without any
|
|
44
|
+
token. Requires the repository hosted on GitHub and a PyPI Trusted Publisher entry.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Spec Pro
|
|
2
|
+
|
|
3
|
+
Better Spec-Driven Development Toolkit for AI Coding Agents.
|
|
4
|
+
|
|
5
|
+
specpro 把一套规范驱动开发(SDD)工作流装进你的项目:16 个斜杠命令(`/specpro-specify`、`/specpro-plan`、`/specpro-tasks`、`/specpro-implement`……)驱动 AI 编程助手按「规格 → 设计 → 任务 → 实现 → 测试」的链条交付功能,并自带核验器保证产物不漂移。
|
|
6
|
+
|
|
7
|
+
**需要**:一个 git 项目 + 至少一个受支持的 AI 编程助手(Claude Code / Copilot / Cursor / Gemini CLI / OpenCode / Qoder)。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 安装(推荐:uv tool,约 30 秒)
|
|
12
|
+
|
|
13
|
+
### 第 0 步 · 安装 uv(各平台任选其一)
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# macOS / Linux(官方脚本)
|
|
17
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
18
|
+
|
|
19
|
+
# macOS(Homebrew)
|
|
20
|
+
brew install uv
|
|
21
|
+
|
|
22
|
+
# Windows(PowerShell)
|
|
23
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
24
|
+
|
|
25
|
+
# Windows(winget)
|
|
26
|
+
winget install astral-sh.uv
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> uv 会自动管理 Python 解释器——**你不需要预装 Python**。
|
|
30
|
+
|
|
31
|
+
### 第 1 步 · 安装 specpro-cli
|
|
32
|
+
|
|
33
|
+
**从本地 whl(离线包):**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
uv tool install ./specpro_cli-*.whl
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**从 PyPI(在线):**
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uv tool install specpro-cli
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 第 2 步 · 验证
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
specpro --help
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
看到 SPEC PRO 头图与命令列表即安装成功。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 使用
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
cd 你的项目
|
|
59
|
+
specpro init # 交互式:确认目录 → 选择 AI 助手 → 装入工作流
|
|
60
|
+
specpro check # 自检:git 与各助手 CLI 是否就绪、项目内已装了什么
|
|
61
|
+
specpro version # 版本与系统信息
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`init` 完成后,在 AI 编程助手里即可使用 `/specpro-specify` 等斜杠命令。
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 升级与卸载
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv tool upgrade specpro-cli # 升级到最新版
|
|
72
|
+
uv tool list # 查看已装工具
|
|
73
|
+
uv tool uninstall specpro-cli # 卸载(只移除 CLI;项目内已装入的文件用 specpro remove 清理)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 备选:手动 venv 安装(不使用 uv 时)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python3 -m venv ~/.specpro-venv
|
|
82
|
+
~/.specpro-venv/bin/pip install ./specpro_cli-*.whl
|
|
83
|
+
~/.specpro-venv/bin/specpro init # 每次调用需带完整路径
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
**License**: MIT · **Repository**: https://github.com/wutone55/specpro
|