spec-probe
Check code against functional requirements in a spec (.md / .docx / .pdf). Use VS Code Copilot chat (/spec-cover, …) or the spec-probe CLI.
Install
pip install spec-probe
spec-probe-skill --vscode
| Step | What it does |
|---|---|
pip install spec-probe |
Python package + CLI only |
spec-probe-skill --vscode |
Skills →~/.copilot/skills/, config + .venv under ~/.config/spec-probe/ |
Python ≥ 3.11. Reload VS Code after spec-probe-skill.
Optional: sudo apt install ripgrep (faster search on Linux).
Configure
Edit files in ~/.config/spec-probe/:
1. API Keys & LLM (.env)
The default config.json uses GitHub Copilot (gpt-6-luna, gemini-3.8-flash) for search, rescue, and final review jobs, and Exacode for other pipeline jobs.
GitHub Copilot Token
To obtain and save your token automatically via GitHub Device Flow:
spec-probe-copilot-login
- Open the URL shown in terminal:
https://github.com/login/device - Enter the 8-character user code and click Authorize GitHub Copilot.
- The token is automatically saved to
COPILOT_GITHUB_TOKENin~/.config/spec-probe/.env. - Verify your setup:
spec-probe-copilot-test
Alternative methods:
- GitHub CLI (
gh): If already authenticated viagh auth login,spec-probeautomatically falls back togh auth token. You can also run:spec-probe-copilot-login --token "$(gh auth token)"
- Manual
.env: Set directly in~/.config/spec-probe/.env:COPILOT_GITHUB_TOKEN="gho_xxxxxxxxxxxxxxxxxxxx"
Exacode (OpenAI-compatible internal gateway)
Set in ~/.config/spec-probe/.env:
EXACODE_API_KEY=your_key_here
EXACODE_BASE_URL=https://api.example.com/exacode/v1
2. Paths (config.yaml)
Specify absolute paths:
input:
module_path: /abs/path/to/your/app
spec_path: /abs/path/to/spec.md
related_modules:
paths:
- /abs/path/to/other/service
Codegraph (optional)
Needs Node.js.
spec-probe-codegraph /abs/path/to/module
With related_modules, index the monorepo root. After big changes: codegraph sync /abs/path/to/monorepo-root.
Chat workflow (VS Code Copilot)
| Step | In chat |
|---|---|
| Pack | /spec-pack |
| Explore spec | parse spec summary / list section … |
| Verify | verify FR … / check requirement: (paste text) |
| Report file | write report (after verify) |
| Audit | /spec-audit |
Large spec: parse → a few FRs or one section → verify. Verify/check → chat only; ask for a report when you need files.
CLI (optional)
spec-probe verify --module /abs/app --spec /abs/spec.md --fr FR-001
spec-probe check "The module shall …"
spec-probe parse --spec /abs/spec.md --summary
Paths default from ~/.config/spec-probe/config.yaml when omitted.
License
MIT — see LICENSE. Maintainers: docs/PYPI.md.
Release files for spec-probe 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spec_probe-0.1.7.tar.gz | 242.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spec_probe-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 498.5 kB
Release files / spec_probe-0.1.7.tar.gz
| Download URL | spec_probe-0.1.7.tar.gz |
|---|---|
| Size | 242.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a88518c1bf0381dd0621186ef5469fe446e688cb95bacdbc61a99e179262910
|
|
BLAKE2b-256 checksum How to use checksums |
3253604eb0c82a712f152ced89c5bbe9d80eff5ef6980cc6a0786b0d9f3e13c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / spec_probe-0.1.7-py3-none-any.whl
| Download URL | spec_probe-0.1.7-py3-none-any.whl |
|---|---|
| Size | 256.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
356ad76a8efa25baac38231a1233507fce06649888eb11dd729eed869c1e5e25
|
|
BLAKE2b-256 checksum How to use checksums |
ab6e26b8ce969690aaf2cacd7e33f5e217dff8a0cd8d5d2fed92e409a596a4cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|