Subtractive Triad Audit: Kickstand
Applying the Subtractive Triad framework (DRY → Rams → Heidegger) to audit a production venue intelligence system—demonstrating that creation is the discipline of removing what obscures.
Abstract
This paper documents the application of the Subtractive Triad framework to Kickstand, a venue intelligence automation system serving Half Dozen (a CREATE SOMETHING client). The system had evolved through multiple architectural phases (Node.js → Railway → Cloudflare Workers), accumulating significant technical debt. Through systematic application of three subtractive disciplines—DRY (Unify), Rams (Remove), and Heidegger (Reconnect)—we achieved: 92% reduction in active scripts (155 → 13), 100% reduction in TypeScript errors (30 → 0), and 48% improvement in overall health score (6.2 → 9.2). The case study validates the Subtractive Triad as an effective framework for production system audits.
1. The Subtractive Triad Framework
Meta-principle: Creation is the discipline of removing what obscures.
The Subtractive Triad provides three lenses for evaluating any codebase, each operating at a different level of abstraction:
| Level | Discipline | Question | Action |
|---|---|---|---|
| Implementation | DRY | "Have I built this before?" | Unify |
| Artifact | Rams | "Does this earn its existence?" | Remove |
| System | Heidegger | "Does this serve the whole?" | Reconnect |
The triad is coherent because it's one principle—subtractive revelation—applied at three scales. Truth emerges through disciplined removal at every level of abstraction.
2. System Context: Kickstand
Kickstand is a venue intelligence automation system that monitors music venues' social media and websites to extract artist performance data. It serves Half Dozen, which is a client of CREATE SOMETHING.
The system produces daily intelligence reports, artist extractions, and venue monitoring data. It had evolved through multiple deployment phases:
- Phase 1: Node.js + local development
- Phase 2: Railway deployment
- Phase 3: Cloudflare Workers (current production)
Each migration left artifacts behind, creating the debt that this audit addresses.
3. Level 1: DRY (Implementation) — Unify
Question: "Have I built this before?"
Score: 5/10 — Critical duplication found
Finding: Parallel Runtime Implementations
The codebase maintained two complete implementations of core services—one in Node.js and one in Cloudflare Workers TypeScript:
| Component | Node.js | Workers | Duplicated |
|---|---|---|---|
| Artist Extractor | 1,594 lines | 644 lines | ~500 lines |
| Website Monitor | ~800 lines | ~600 lines | ~400 lines |
| Instagram Monitor | ~900 lines | ~700 lines | ~600 lines |
| Total | ~3,200 lines | ||
Action: Unified to Workers
- Marked Node.js services with
@deprecatednotices - Fixed 30 TypeScript errors in Workers implementation
- Updated Cloudflare Workflow API usage (
event.payloadnotevent.params) - Added proper type annotations throughout
4. Level 2: Rams (Artifact) — Remove
Question: "Does this earn its existence?"
Score: 6/10 — Significant excess found
Finding: Script Proliferation
155 JavaScript files in the scripts directory, with only ~20 actively needed:
Before
- • 155 scripts total
- • 35 explicitly archived
- • ~70 likely obsolete
- • ~30 one-time migrations
- • ~20 actively needed
After
- • 13 scripts active
- • 153 scripts archived
- • Organized into categories:
- - migrations/ (38 scripts)
- - tests/ (24 scripts)
- - one-time/ (19 scripts)
Action: Archived Obsolete Artifacts
- Moved 153 scripts to organized archive directories
- Archived Railway configuration to
config/archive/ - Moved Railway docs to
docs/archive/railway/ - Created archive README documenting restoration process
5. Level 3: Heidegger (System) — Reconnect
Question: "Does this serve the whole?"
Score: 7/10 — Minor disconnection found
Finding: Architectural Confusion
The README described three different deployment targets, creating systemic incoherence:
// README claimed:
1. Node.js + Railway (documented as primary)
2. n8n (mentioned as future target)
3. Cloudflare Workers (actual production)
Additionally, the relationship between Kickstand → Half Dozen → CREATE SOMETHING was undocumented within the system itself.
Action: Unified Documentation
- Rewrote
README.mdfor Cloudflare Workers architecture - Created
docs/ARCHITECTURE.mddocumenting system context - Added
services/LEGACY.mddeprecation guide - Added
monitoring/LEGACY.mddeprecation guide - Documented the hermeneutic circle: how Kickstand fits into the larger system
6. Results
| Metric | Before | After | Change |
|---|---|---|---|
| Health Score | 6.2/10 | 9.2/10 | +48% |
| Active Scripts | 155 | 13 | -92% |
| Archived Scripts | 35 | 153 | +337% |
| TypeScript Errors | ~30 | 0 | -100% |
| Build Status | Failing | Passing | Fixed |
| Documentation | Outdated | Current | Unified |
TypeScript Fixes Applied
Key fixes to achieve zero build errors:
- Added
warn()method to Logger class - Fixed Cloudflare Workflow API (
event.payloadnotevent.params) - Fixed
Logger.error()call signatures throughout - Added type assertions for API responses
- Updated
MonitorResultinterface - Removed
@types/nodefrom tsconfig to resolve conflicts
7. Conclusion
This case study validates the Subtractive Triad as an effective framework for production system audits. The three levels complement each other:
- DRY catches mechanical duplication (parallel implementations)
- Rams catches functional obsolescence (155 → 13 scripts)
- Heidegger catches systemic disconnection (documentation drift)
Kickstand is now a functional and coherent system. Its core value proposition—venue intelligence through automated monitoring and artist extraction—works well, and the codebase now reflects this clarity.
The Subtractive Path Forward
"Creation is the discipline of removing what obscures."
This case study is part of the CREATE SOMETHING research program exploring AI-native development patterns. View the Kickstand repository or read more about our methodology.