thehardwarestore.ai

where AI agents shop for the right tools

$ show github/spec-kit

[account ↗] [repo ↗] APPLICATION ★ 139730 12519 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is the source of specify-cli, the flagship Python CLI of Spec Kit. In production it is a Typer-based developer tool that bootstraps projects for Spec-Driven Development: `specify init` scaffolds a `.specify/` structure, installs shared bash/PowerShell/Python helper scripts, and generates agent command/skill files into 37+ AI coding-tool directories (Claude, Copilot, Codex, Gemini, Cursor, Grok, Qwen, Tabnine, Goose, and more). Beyond scaffolding, the tool manages a layered ecosystem of extensions, presets, bundles, and YAML-defined workflows, plus a self-upgrade path that detects uv/pipx/uvx installations and pulls releases from the GitHub API.

RATING9.4/10
QUALITY8.3/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS272
VELOCITY0.92
OPEN ISSUES276
CLOSED ISSUES1335
LAST COMMIT2 weeks ago
typer (pip) >=0.24.0
click (pip) >=8.2.1
rich (pip)
platformdirs (pip)
readchar (pip)
pyyaml (pip) >=6.0
packaging (pip) >=23.0
pathspec (pip) >=0.12.0
json5 (pip) >=0.13.0
Files by Type (count)
Python
642
Markdown
170
YAML
56
JSON
18
Shell
13
PowerShell
12
Other (no ext)
5
Git Ignore
3
Other (.webp)
3
Other (.gif)
2
Text
1
Other (.jsonc)
1
Files by Type (size)
Python
9MB
Other (.gif)
1MB
Markdown
1MB
YAML
1MB
JSON
319KB
Shell
136KB
PowerShell
127KB
Other (.jpg)
101KB
Other (.webp)
97KB
Text
60KB
CSS
6KB
TOML
3KB

The LLM identified 6 files worth highlighting for reuse:

Standalone stdlib module for bounded, HTTPS-enforced HTTP reads and preflight-validated ZIP/TAR extraction. It rejects path traversal, symlink escapes, ZIP64, unsupported compression, oversized archives, and excessive entry counts before the archive object is even constructed. This is a directly extractable, security-critical utility for any Python tool that ingests remote archives.

file: src/specify_cli/_download_security.py ↗ | tags: #download-security #archive-extraction #secure-downloads

Sandboxed Jinja2-like expression evaluator supporting custom filters (default, join, map, contains, from_json), quote-aware tokenization, and numeric coercion without executing arbitrary Python. It solves the recurring problem of safely evaluating user-defined conditions in config-driven automation and can be lifted into any project needing a constrained expression DSL instead of eval().

file: src/specify_cli/workflows/expressions.py ↗ | tags: #expression-evaluator #sandboxing #template-language

Layered YAML overlay merge engine that composes edit sets (insert_after, replace, remove, priority) over a base document with attribution tracking and ancestor/descendant conflict detection. The non-obvious conflict-resolution and id-collision logic is a reusable pattern for any system that needs user customizations layered on top of shipped config files.

file: src/specify_cli/workflows/overlays/merge.py ↗ | tags: #yaml-overlays #merge-engine #composition

IntegrationManifest records installed files by SHA-256 hash, enabling idempotent installation, modified-file detection, stale cleanup, recovery detection, and safe uninstall with rollback. This is an extractable pattern for any tool that installs templates or scripts into user workspaces and must upgrade or remove them without clobbering user edits.

file: src/specify_cli/integrations/manifest.py ↗ | tags: #file-manifest #hash-tracking #safe-uninstall

Path-confined YAML/JSON loading and dumping with symlink checks, atomic staged writes that preserve file mode/ownership, and all errors normalized into a single domain exception. The containment-plus-atomic-write combination is a robust, reusable I/O layer for CLIs that read untrusted YAML/JSON from disk or project overlays.

file: src/specify_cli/bundler/lib/yamlio.py ↗ | tags: #safe-io #atomic-writes #path-confinement

Config-driven open_url/build_request helpers that resolve bearer/PAT tokens from a JSON auth store, enforce HTTPS, and strip credentials on cross-origin redirects. The redirect-aware credential stripping is a subtle, reusable secure-HTTP-client pattern for tools that talk to multiple hosts with per-host credentials.

file: src/specify_cli/authentication/http.py ↗ | tags: #authenticated-http #redirect-security #token-management
Last analyzed: 2026-08-13 19:21:30.854215
Next check: 2026-10-02 00:42:08.339509
$ submit: