@hustle-together/api-dev-tools 1.8.0 → 2.0.0

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.
package/README.md CHANGED
@@ -30,9 +30,9 @@ Six Python hooks that provide **real programmatic guarantees**:
30
30
 
31
31
  - **`enforce-external-research.py`** - (v1.7.0) Detects external API questions and requires research before answering
32
32
  - **`enforce-research.py`** - Blocks API code writing until research is complete
33
- - **`enforce-interview.py`** - Verifies user questions were actually asked (prevents self-answering)
33
+ - **`enforce-interview.py`** - (v1.8.0+) Verifies structured questions with options were asked; (v1.9.0+) Injects decision reminders on writes
34
34
  - **`verify-implementation.py`** - Checks implementation matches interview requirements
35
- - **`track-tool-use.py`** - Logs all research activity (Context7, WebSearch, WebFetch, AskUserQuestion)
35
+ - **`track-tool-use.py`** - (v1.9.0+) Captures user decisions from AskUserQuestion; logs all research activity
36
36
  - **`api-workflow-check.py`** - Prevents stopping until required phases are complete + git diff verification
37
37
 
38
38
  ### State Tracking
@@ -470,6 +470,34 @@ INJECTS: "RESEARCH REQUIRED: Use Context7/WebSearch before answering"
470
470
  CLAUDE: Researches first → Gives accurate answer
471
471
  ```
472
472
 
473
+ ### Gap 7: Interview Decisions Not Used During Implementation (v1.9.0+)
474
+ **Problem:** AI asks good interview questions but then ignores the answers when writing code.
475
+
476
+ **Example:**
477
+ - Interview: User selected "server environment variables only" for API key handling
478
+ - Implementation: AI writes code with custom header overrides (not what user wanted!)
479
+
480
+ **Fix:** Two-part solution in `track-tool-use.py` and `enforce-interview.py`:
481
+
482
+ 1. **track-tool-use.py** now captures:
483
+ - The user's actual response from AskUserQuestion
484
+ - Matches responses to option values
485
+ - Stores decisions in categorized `decisions` dict (purpose, api_key_handling, etc.)
486
+
487
+ 2. **enforce-interview.py** now injects a decision summary on EVERY write:
488
+ ```
489
+ ✅ Interview complete. REMEMBER THE USER'S DECISIONS:
490
+
491
+ • Primary Purpose: full_brand_kit
492
+ • API Key Handling: server_only
493
+ • Response Format: JSON with asset URLs
494
+ • Error Handling: detailed (error, code, details)
495
+
496
+ Your implementation MUST align with these choices.
497
+ ```
498
+
499
+ This ensures the AI is constantly reminded of what the user actually wanted throughout the entire implementation phase.
500
+
473
501
  ## 🔧 Requirements
474
502
 
475
503
  - **Node.js** 14.0.0 or higher
@@ -521,6 +549,21 @@ This is the initial release. Feedback welcome!
521
549
  - Custom templates
522
550
  - Multi-language support
523
551
 
552
+ ## 🙏 Acknowledgments
553
+
554
+ ### @wbern/claude-instructions
555
+ The TDD workflow commands (`/red`, `/green`, `/refactor`, `/cycle`) are based on the excellent [@wbern/claude-instructions](https://github.com/wbern/claude-instructions) package by **William Bernmalm**. This project extends those patterns with interview-driven API development, research enforcement hooks, and comprehensive state tracking.
556
+
557
+ ### Anthropic
558
+ The interview methodology is inspired by [Anthropic's Interviewer approach](https://www.anthropic.com/news/anthropic-interviewer) for structured discovery.
559
+
560
+ ### Context7
561
+ Special thanks to the [Context7](https://context7.com) team for providing live documentation lookup that makes research-first development possible.
562
+
563
+ ---
564
+
565
+ Thank you to the Claude Code community for making AI-assisted development more rigorous!
566
+
524
567
  ## 📄 License
525
568
 
526
569
  MIT License - Use freely in your projects