Custom GSD to GAS Implementation Strategy
Overview
- Project: Aloysius Productions
- Status: Active
- Result: Framework established, ongoing implementation
Context
Evaluation of porting features from the Get-Shit-Done (GSD) workflow system into the custom GAS (Gloriously Awesome System) fork. Previous attempts at cherry-picking features resulted in silent failures due to dependency drift and state machine incompatibilities.
Key Findings
The “Clean Room” Approach
Porting features from a complex modular system requires understanding the feature’s full dependency graph before copying code:
- Ghost Repo Audit — Clone fresh GSD, use
grep -rto trace every mention of the target feature across commands, agents, templates, and registration files - Isolation Test — Verify the feature works in native GSD with a dummy project before porting
- Structural Alignment — The most critical step; check STATE.md key compatibility, dependency injection for sub-agents, and hook synchronization
- Dry Run — Hardcode missing variables to force success, then incrementally replace with GAS equivalents
Root Cause of Past Failures
- STATE.md key mismatches — GSD expects specific keys (e.g.,
milestone_version) that GAS may use different names for - Missing sub-agent dependencies — Features often call other GSD agents (planner, executor) that must be ported or aliased
- Hook synchronization gaps — Post-v1.5.23, GSD features use hooks for status lines that need
settings.jsonupdates
GSD Architecture (for porting reference)
| Component | Location | Purpose |
|---|---|---|
| Entry points | commands/gsd/ | Command registration |
| Logic/prompting | agents/ | Agent definitions |
| Output structures | templates/ | Template files |
| Registration | bin/install.js | Package manifest |
Shielding Against Future Drift
- Version-stamp ported files:
// Ported from GSD v1.9.4 - [Feature Name] - Update GAS manifest to include new files
- Create validation command to verify all required files exist
Actionable Takeaways
- Never copy code directly — always trace the dependency graph first
- State machine compatibility is the silent killer of feature ports
- Test in isolation before integration
- Version-lock ported components to prevent drift
Related
- organizational-dynamic-programming — ODP framework using similar state machine concepts
- gas-planning — GAS planning pattern documentation