A Next.js application for tracking software development through the lens of golf metaphors and category theory
Version: 0.1.0
Author: Patrick Astarita
Date: November 2025
This application implements the Hyperdimensional Vector Space Golf framework, providing a visual and analytical tool for tracking development progress through the metaphor of navigating hyperdimensional space (โโฟ) as if playing golf.
Development with LLMs is navigation through high-dimensional possibility space. Golf provides the perfect metaphor because both are about iteratively converging toward a goal in complex terrain using strategic shot selection.
- Node.js 18+
- npm or yarn
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm startThe app will be available at http://localhost:3000
- ๐ก Insights Dashboard - Analytics, metrics, and recommendations
- ๐ Scorecard - Traditional golf scorecard view with Front 9 / Back 9
- ๐ Manifold Projection - Hyperdimensional space (โโฟ) projected to 2D
- ๐ Timeline - 18-hole course progression visualization
- ๐บ๏ธ Heatmap - Confidence levels across all tasks
- โ Archetypes - Distribution analysis of task types
- โณ Hole Details - Individual hole analysis with shot trajectories
- Real-time tracking of development progress
- Shot-level detail for each iteration/prompt
- Confidence visualization showing semantic certainty
- Archetype classification (Precision, Convergent, Explorer, Creative)
- Performance analytics (efficiency, handicap, velocity)
- Terrain mapping (Rough โ Fairway โ Approach โ Green โ Hole)
- Data export to JSON and CSV formats
ROUGH โ FAIRWAY โ APPROACH โ GREEN โ HOLE
Blue โ Green โ Yellow โ Orange โ Red
โ โ Manifold โ ฮต-ball โ Near โ Goal
โ Driver - Large variance, exploratory (Rough)
โ Iron - Medium control, refinement (Fairway)
โ Wedge - High precision, details (Approach)
โ Putter - Minimal variance, polish (Green)
โบ Recovery - Course correction, return to path
โ PRECISION Par 3 Clear goal, direct path
โ CONVERGENT Par 4 Iterative refinement
โ EXPLORER Par 5+ Discovery and search
โ CREATIVE Par 6+ Subjective, artistic
Framework: Next.js 16 (App Router)
Language: TypeScript 5
Styling: TailwindCSS 4
Fonts: Inter, JetBrains Mono (Google Fonts)scorecard/
โโโ app/
โ โโโ layout.tsx # Root layout with fonts
โ โโโ page.tsx # Main page with tab navigation
โ โโโ globals.css # Global styles
โ
โโโ components/
โ โโโ TabNavigation.tsx # Tab component + hooks
โ โโโ experiments/ # Visualization components
โ โโโ ArchetypeDistribution.tsx
โ โโโ ConfidenceHeatmap.tsx
โ โโโ HoleDetails.tsx
โ โโโ InsightsDashboard.tsx
โ โโโ ManifoldProjection.tsx
โ โโโ ProgressTimeline.tsx
โ โโโ ScorecardTable.tsx
โ โโโ ShotTrajectory.tsx
โ
โโโ lib/
โ โโโ sample-data.ts # Sample scorecard data
โ โโโ calculations.ts # Analytics and calculations
โ โโโ useScorecard.ts # React hooks for data management
โ
โโโ types/
โ โโโ scorecard.ts # TypeScript type definitions
โ
โโโ public/ # Static assets
// Archetype classification
type ScorecardArchetype = "Precision" | "Convergent" | "Explorer" | "Creative";
// Shot types (club selection)
type ShotType = "driver" | "iron" | "wedge" | "putter" | "recovery";
// Development status
type HoleStatus = "not_started" | "in_progress" | "complete" | "blocked" | "cancelled";
// Individual shot/iteration
interface Shot {
number: number;
type: ShotType;
confidence: number; // 0.0 - 1.0
description?: string;
prompt?: string;
timestamp?: string;
}
// Feature/task (hole)
interface Hole {
number: number;
name: string;
archetype: ScorecardArchetype;
par: number;
actual: number;
status: HoleStatus;
shots: Shot[];
notes?: string;
}
// Complete scorecard
interface ScorecardData {
metadata: { version: string; created: string; author: string };
project: { product: string; developer: string; /* ... */ };
course: { name: string; difficulty: string; holes: Hole[] };
}-
Define your project (18 features/holes)
-
Classify each as an archetype:
- Precision (Par 3): Clear, direct tasks
- Convergent (Par 4): Iterative refinement
- Explorer (Par 5+): Discovery work
- Creative (Par 6+): Subjective/artistic
-
Track shots as you develop:
- Driver: Broad exploration (low confidence)
- Iron: Adding constraints (medium confidence)
- Wedge: Detail refinement (high confidence)
- Putter: Final polish (very high confidence)
- Recovery: Course correction
-
Mark progress: โ โ โ โ
{
"project": {
"product": "User Dashboard MVP",
"developer": "Patrick Astarita",
"dateStart": "2025-11-01",
"dateEnd": "2025-11-30"
},
"course": {
"holes": [
{
"number": 1,
"name": "Authentication",
"archetype": "Convergent",
"par": 4,
"actual": 3,
"status": "complete",
"shots": [
{
"number": 1,
"type": "driver",
"confidence": 0.4,
"description": "Initial architecture"
},
{
"number": 2,
"type": "iron",
"confidence": 0.7,
"description": "Implementation"
},
{
"number": 3,
"type": "putter",
"confidence": 0.98,
"description": "Polish and tests"
}
]
}
// ... 17 more holes
]
}
}- Efficiency: (Par / Actual) ร 100
- Handicap: Average variance per completed hole
- Velocity: Holes completed per day
- Completion: Percentage of holes finished
- Confidence: Average across all shots
- Performance trends by archetype
- Shot type distribution analysis
- Recovery rate warnings
- Velocity-based completion estimates
- Archetype-specific recommendations
Category ๐ฎโฏ๐ (Semantic Transformations):
- Objects: states ฯ in embedding space S โ โโฟ
- Morphisms: shots f: ฯ โ ฯ' (prompt iterations)
- Composition: sequential refinements
- Functors: projections to visualization
| Golf Element | Mathematical Reality | Development Practice |
|---|---|---|
| Course | Semantic space โโฟ | All possible outputs |
| Rough | Flattened embedding | Underspecified prompts |
| Fairway | Manifold path | Iterative refinement |
| Green | ฮต-ball near goal | Near-convergence |
| Hole | Target point g | Acceptable solution |
| Shot | Transform ฯ โ ฯ' | Prompt โ response |
| Par | E[shots] | Expected iterations |
โโ (Rough) โ โยนโฐโฐ (Fairway) โ โยนโฐ (Approach) โ โยน (Green) โ Point (Hole)
const {
data, // Current scorecard data
setData, // Update entire scorecard
updateHole, // Update specific hole
addShot, // Add shot to hole
updateShot, // Update specific shot
removeShot, // Remove shot
importData, // Import from JSON
exportJSON, // Export to JSON string
exportCSV, // Export to CSV string
downloadJSON, // Download JSON file
downloadCSV, // Download CSV file
reset, // Reset to initial data
clear, // Clear localStorage
} = useScorecard(initialData);import {
calculateEfficiency,
calculateHandicap,
calculateVelocity,
estimateCompletionDate,
generateInsights,
calculateArchetypeMetrics,
// ... more in lib/calculations.ts
} from "@/lib/calculations";- Create component in
components/experiments/ - Import in
app/page.tsx - Add to
TABSarray - Add conditional render in main content
Example:
// 1. Create MyExperiment.tsx
export function MyExperiment({ data }: { data: ScorecardData }) {
// Your visualization
}
// 2. Import and add to tabs
const TABS: Tab[] = [
// ... existing tabs
{
id: "myexperiment",
label: "My Experiment",
icon: "๐ฌ",
description: "My custom visualization"
}
];
// 3. Add render
{activeTab === "myexperiment" && (
<MyExperiment data={SAMPLE_SCORECARD} />
)}Update types/scorecard.ts:
export const TERRAIN_CONFIG: Record<Terrain, TerrainConfig> = {
rough: { color: "#YourColor", /* ... */ },
// ... etc
};The app includes comprehensive sample data (lib/sample-data.ts) demonstrating:
- 18-hole course structure
- Front 9 (Core Features) + Back 9 (Enhancements)
- Multiple shots per hole with varying confidence
- All four archetypes represented
- Different hole statuses
- Recovery shot examples
See /scorecard-data-template.json in the parent directory for the complete schema with examples and documentation.
Hole,Name,Archetype,Par,Actual,Variance,Status,Shots,Avg Confidence,Notes
1,"Authentication",Convergent,4,3,-1,complete,3,0.69,"Came in under par!"
...- โ Complete TypeScript refactoring
- โ 7 visualization experiments
- โ Analytics and insights
- โ Data export functionality
- Data import UI
- Editable scorecards
- Real-time shot tracking
- Multiple project support
- 3D trajectory visualization
- AI-powered par suggestions
- Team collaboration features
- Historical trend analysis
- TALK-2-FRAMEWORK.md - Complete theoretical foundation
- SCORECARD-MOTIF-DEVELOPMENT.md - Design system
- VISUAL-MOTIF-REFERENCE.md - Visual specifications
- QUICK-REFERENCE.md - One-page usage guide
This is part of the Hyperdimensional Vector Space Golf project. Contributions welcome!
# Run development server with hot reload
npm run dev
# Type checking
npx tsc --noEmit
# Linting
npm run lintPart of the Panopticode project by Patrick Astarita.
Create thinking tools that help humans navigate vast possibility spaces opened by AI, using timeless spatial metaphors and precise mathematical foundations.
The scorecard is not just a tracking toolโit's an externalized cognitive artifact that helps us think better about the development process itself.
Practice spatial thinking. Track your journey. Improve your game. โณ
Last Updated: November 2025
Version: 0.1.0
Status: Active Development