🔒 Security (IMPORTANT)
- Comprehensive adversarial review framework (Feature 011 - Additional Scope)
- Expanded review template from 3 bullets (109 lines) to 12 scrutiny categories (505 lines)
- Security scrutiny now mandatory: 10 detailed security subsections covering:
- SQL injection, command injection, path traversal, template injection
- Authentication & authorization (secure tokens, password hashing)
- Sensitive data handling (no secrets in logs/commits/URLs)
- Data validation & sanitization (never trust user input)
- File system security (TOCTOU, symlinks, permissions)
- Dependency security (versions, CVEs, minimal dependencies)
- Cryptography (modern algorithms, no homebrew crypto)
- API security (auth, rate limiting, CORS)
- Privilege & permissions (least privilege principle)
- Mandatory verification: 7 security grep commands must be run on EVERY review
- Automatic rejection if any security check fails
- Philosophy change: Default to REJECT, only approve after actively trying to find problems
- Impact: All future features will have security-first reviews
- Rationale: Prevents systematic quality issues (TODOs in prod, mocked implementations, security vulnerabilities)
- See spec footnote and commit
61d7d01for complete rationale
🐛 Fixed
-
Windows dashboard ERR_EMPTY_RESPONSE (#71)
- Replaced POSIX-only signal handling with cross-platform psutil library
signal.SIGKILLandsignal.SIGTERMdon't exist on Windows- Added
psutil>=5.9.0dependency for cross-platform process management - Refactored
src/specify_cli/dashboard/lifecycle.py:os.kill(pid, 0)→psutil.Process(pid).is_running()signal.SIGKILL→psutil.Process(pid).kill()(6 locations)signal.SIGTERM→psutil.Process(pid).terminate()with timeout
- Added proper exception handling (NoSuchProcess, AccessDenied, TimeoutExpired)
- Dashboard now starts, serves HTML, and stops cleanly on Windows 10/11
- All 41 dashboard tests passing
-
Upgrade migration failures (#70)
- Fixed
m_0_7_3_update_scripts.pyto handle missing bash scripts gracefully - Fixed
m_0_10_6_workflow_simplification.pyto copy templates before validation - Fixed
m_0_10_2_update_slash_commands.pyto explicitly remove legacy .toml files - Fixed
m_0_10_0_python_only.pyto explicitly remove.kittify/scripts/tasks/ - Created
m_0_10_12_constitution_cleanup.pyto remove mission constitutions - All migrations now idempotent (safe to run multiple times)
- Upgrade path from 0.6.4 → 0.10.12 now completes without manual intervention
- Fixed
-
Upgrade migration parameter mismatch (#68 follow-up)
- Fixed
m_0_10_9_repair_templates.pymigration callinggenerate_agent_assets()with wrong parameter name - Changed
ai=ai_configtoagent_key=ai_configto match function signature
- Fixed
♻️ Refactored
-
Template source relocation (Safe dogfooding - Critical)
- Moved ALL template sources from
.kittify/tosrc/specify_cli/ - Templates:
.kittify/templates/→src/specify_cli/templates/ - Missions:
.kittify/missions/→src/specify_cli/missions/ - Scripts:
.kittify/scripts/→src/specify_cli/scripts/ - Updated
src/specify_cli/template/manager.pyto load fromsrc/not.kittify/ - Removed ALL
.kittify/*force-includes frompyproject.toml - Impact: Spec-kitty developers can now safely dogfood spec-kitty without risk of packaging their filled-in constitutions
- Verification: Building wheel produces ZERO
.kittify/ormemory/constitution.mdentries - Package now only contains
src/specify_cli/(proper Python packaging)
- Moved ALL template sources from
-
Mission-specific constitutions removed
- Removed
mission.constitution_dirproperty fromsrc/specify_cli/mission.py - Removed constitution scanning from
src/specify_cli/manifest.py - Deleted all
missions/*/constitution/directories - Impact: Single project-level constitution model (
.kittify/memory/constitution.md) - Migration:
m_0_10_12_constitution_cleanup.pyremoves mission constitutions from user projects - Eliminates confusion about which constitution applies
- Removed
✨ Added
- Interactive constitution command (Phase-based discovery)
- Completely redesigned
/spec-kitty.constitutioncommand - 4-phase discovery workflow:
- Phase 1: Technical Standards (languages, testing, performance, deployment) - Recommended
- Phase 2: Code Quality (PR requirements, review checklist, quality gates) - Optional
- Phase 3: Tribal Knowledge (conventions, lessons learned, historical decisions) - Optional
- Phase 4: Governance (amendment process, compliance, exceptions) - Optional with defaults
- Two paths:
- Minimal: Phase 1 only, 3-5 questions, ~1 page output
- Comprehensive: All phases, 8-12 questions, ~2-3 pages output
- Skip options: Each optional phase can be skipped with guidance
- Summary & confirmation: Shows what will be written before committing
- Truly optional: All spec-kitty commands work without constitution
- Replaces old placeholder-filling approach
- Completely redesigned