Development Plan¶
The Amadla ecosystem is developed bottom-up: stabilize foundations before building features on top.
Phased Approach¶
Phase 1: LibraryUtils — Foundation¶
LibraryUtils is the foundation for everything else. All tools and frameworks depend on it.
Goals:
- Audit current test coverage across all packages
- Identify code duplicated in downstream projects (hery, doorman, weaver) and consolidate
- Stabilize interfaces — changes here ripple to every downstream project
- Fill test coverage gaps
- Document public interfaces
Packages to audit:
| Package | Priority | Notes |
|---|---|---|
git/ |
High | Core to hery's entity versioning |
database/sqlite3/ |
High | Core to hery's caching layer |
file/ |
High | Used everywhere |
interconnection/ |
Medium | Core to doorman's plugin communication |
encryption/aes_gcm/ |
Medium | Core to doorman's cache encryption |
configuration/ |
Medium | Used by all tools for settings |
location/ |
Low | XDG paths, relatively simple |
packaging/ |
Low | Not yet used by active tools |
Phase 2: Frameworks — CLI and Plugin Infrastructure¶
Stage 2a: LibraryFramework + LibraryPluginFramework
- Solidify CLI decorator pattern
- Stabilize plugin loading and IPC protocol
- Ensure consistent command structure across tools
Stage 2b: LibraryClerkFramework + LibraryAuditFramework
- These specialize the plugin framework for their domains
- Validate the patterns with existing reference implementations (clerk-keepassxc, auditor-application)
Phase 3: hery — Core Data Layer¶
hery is the data source for the entire pipeline. Every other tool depends on it.
Goals:
- Resolve the 34 TODO items across the codebase
- Bring all commands to fully working state
- Stabilize the query engine
- Fix cache rebuild edge cases
- Ensure entity composition works correctly
- Improve documentation
Estimated effort: ~70 hours
Phase 4: Tools and Plugins — Pipeline Completion¶
With stable foundations, build out the pipeline tools and plugins:
Stage 4a: doorman
- Implement daemon mode (
startcommand) - Implement
resolvecommand - Replace XOR cache encryption with AES-GCM + TPM
- Implement Clerk plugin loading
Stage 4b: weaver
- Complete
weavecommand - Implement template plugin loading
- Build first weaver plugin (weaver-jinja recommended)
Stage 4c: Priority plugins
- clerk-vault — Most common enterprise secret store
- clerk-aws — Cloud deployments
- auditor-system — System compliance
Stage 4d: Remaining tools
- raise — Infrastructure provisioning
- lay — Application installation
- judge — Audit orchestration
- waiter — Pipeline orchestration
- unravel — Debugging
Approach Per Repo¶
For each repository, follow this sequence:
- Assess — Review current state: test coverage, missing features, code duplication, TODOs
- Fix — Address gaps: add tests, implement missing features, consolidate duplicated code
- Document — Update CLAUDE.md, add interface documentation
- Move on — Proceed to the next repo in dependency order
Priority Matrix¶
| Priority | Repo | Reason |
|---|---|---|
| P0 | LibraryUtils | Everything depends on it |
| P0 | LibraryFramework | All CLI tools depend on it |
| P1 | hery | Core data layer for the pipeline |
| P1 | LibraryPluginFramework | Plugin system foundation |
| P2 | doorman | Secrets are needed early in the pipeline |
| P2 | LibraryClerkFramework | doorman needs clerk plugins |
| P2 | weaver | Config generation is a core use case |
| P3 | clerk-vault | Most requested secret backend |
| P3 | clerk-aws | Cloud deployment support |
| P3 | LibraryAuditFramework | Audit pipeline foundation |
| P4 | raise, lay, judge | Pipeline completion |
| P4 | waiter, unravel | Orchestration and debugging |