Implementation Plan: Stamp (Intent Tracker)

1. Development Standards & Repository Structure

To ensure stamp is maintainable, idiomatic, and accessible to contributors (human and AI), we will enforce the following standards:

Repository Layout

Based on standard Go project layout conventions:

Development Tools

We will use modern, Go-centric tooling:

Contribution Documentation

To guide future development:


2. Technical Task Breakdown (Vertical Slicing)

We are building stamp using vertical slices. We will not build “all the managers” and then “all the commands”. We will build the foundation, then the passive observer flow, then the active wrapper flow.

Phase 1: Project Foundation & Data Models

Establish the repo structure, tooling, and core data types.

Task 1: Repository Scaffolding & Tooling

Task 2: Manifest Manager (TOML)

Task 2.5: Pre-requisite Fixes (Security & CI)

Phase 2: The Active Wrapper Flow

Build the ability to actually modify the system (Install, Remove, Search) as the primary usage model.

Task 3: Package Manager Interfaces & Mocks

Task 4: Native Adapters (Write Operations)

Task 5: Active CLI Commands

Phase 3: The Safety Net Flow

Build the read-only safety net: checking the system state and calculating the delta.

Task 6: Native Adapters (Read-Only)

Task 7: State Engine (Snapshotting)

Task 8: The reconcile Command (Cobra)

Phase 4: Restore & UNIX Compliance

Build the environment reconstruction logic and final touches.

Task 9: The restore Command

Task 10: CLI Polish and Documentation

Task 10 Subtasks

Subtask Description Status
10a stamp doctor command with TTY/JSON output
10b stamp completion shell autocompletion (bash/zsh/fish/powershell)
10c stamp man man page generation and install
10d NO_COLOR compliance
10e Doc generation pipeline (task docs + CI enforcement)
10f Flag standardization (short forms, actions-as-subcommands)
10h Uninstall documentation in README.md (standard + hard uninstall)

Task 11: Self-Update Subcommand

Task 12: stamp hello Welcome Command

Task 13: stamp info Package Info Command

Task 13: stamp info Package Info Command

Task 14: stamp man check Version Verification

Task 15: Per-Manager Flag Support

Subtask Description Status
15a stamp reconcile -m
15b stamp restore -m
15c stamp doctor -m
15d stamp list -m ✓ (via Task 22)
15e stamp update -m ✓ (Task 23)

Phase 4c — Infrastructure

Task 16: Multi-Platform Integration Testing

Task 17: Package Manager Feature Audit

Task 18: stamp reinstall Command

Task 19: Generate Missing Usage & Man Pages

Phase 4b — Medium Features

Task 20: Create GitHub Pages Landing Page

Phase 4a — Quick Wins

Task 21: stamp init Command

Task 22: stamp list Command (alias ls)

Task 23: stamp update Command (alias upgrade)

Task 24: Migrate stamp hello to stamp setup Wizard

Task 25: Add Shell Completion Check to stamp doctor

Task 25b: Re-init Guard for stamp init with Mandatory Backup

Task 26: Add yum as Alias to dnf Manager

Phase 5: Project Licensing & Governance

Ensure maximum community and enterprise reach.

Task 11: Relicense to Apache-2.0

Phase 6: Reconcile Behavior Stabilisation & Feature Completion

Deliver the final design for stamp reconcile and stamp reinstall based on real-world testing feedback.

Task 27: Reconcile — Auto-Track and --dry-run

Task 28: Reinstall — Support Pre-Existing Packages

Task 29: Flag and Compliance Updates

Task 30: stamp auto-reconcile Command

Task 33: Docker-Based Integration Testing

Task 34: Post-Release Integration CI Pipelines

Task 32: APT Package Manager Adapter (#46)

Phase & Task Progress Summary

Phase Task Description Status
1 1 Repository Scaffolding & Tooling
1 2 Manifest Manager (TOML)
1 2.5 Pre-requisite Fixes (Security & CI)
2 3 Package Manager Interfaces & Mocks
2 4 Native Adapters (Write Operations)
2 5 Active CLI Commands
3 6 Native Adapters (Read-Only)
3 7 State Engine (Snapshotting)
3 8 The reconcile Command
4 9 The restore Command
4 10 CLI Polish, Manpages, GitHub Pages & Landing Page ~
4 10a stamp doctor command
4 10b stamp completion shell autocompletion
4 10c stamp man generation and install
4 10d NO_COLOR compliance
4 10e Doc generation pipeline (task docs)
4 10f Flag standardization (short forms, subcommands)
4 10h Uninstall documentation in README.md
4 11 Self-Update Subcommand
4 12 stamp hello welcome command
4 13 stamp info package info command
4 14 stamp man check version verification
4 15 Per-manager flags for reconcile/restore/doctor/list ⚠ Partial
4 16 Multi-platform integration testing *
4 17 Package manager feature audit *
4 18 stamp reinstall command
4 19 Generate missing usage & man pages
4 20 Create GitHub Pages landing page ~
4 21 stamp init command
4 22 stamp list command (alias ls)
4 23 stamp update command (alias upgrade)
4 24 Migrate stamp hello to stamp setup wizard (#59)
4 25 Add shell completion check to stamp doctor (#60)
4 26 Add yum as alias to dnf manager (#61)
5 Relicense to Apache-2.0
6 27 Reconcile — Auto-Track and --dry-run
6 28 Reinstall — Support Pre-Existing Packages
6 29 Flag and Compliance Updates
6 30 stamp auto-reconcile Command
4 32 APT package manager adapter (#46)
4 33 Docker-based integration testing
4 34 Post-release integration CI pipelines (ubuntu/debian/fedora)
4 35 Zypper package manager adapter (openSUSE) (#124) ✓ Complete
4 36 Snap package manager adapter (#47) ✓ Complete
4 37 Pacman package manager adapter (Arch Linux) (#49) ✓ Complete
4 38 MacPorts package manager adapter (macOS) (#48) ✓ Complete
6 39 Go adapter code review fixes ✓ Complete
6 39a goBinDir: GOBIN + multi-entry GOPATH resolution
6 39b Remove: os.Stat + os.Remove instead of exec rm
6 39c ListInstalled: recover module paths via go version -m
6 39d Update: batch reinstall for recoverable module paths
6 39e Search: error instead of fake results, warning on stderr
6 39f CLI validation: delegate to ValidatePackageForManager
6 39g Integration tests (unit coverage only — Go not in Docker)
6 39h Docs: SPEC, FEATURE_MATRIX, usage pages, landing page
6 40 Pipx adapter (Python CLI tools via pipx) ✓ Complete
6 40a pipx.go: all Adapter methods, JSON + text list parsing
6 40b pipx_test.go: table-driven tests for all operations
6 40c Detection in root.go + docs
6 41 Uv adapter (Python CLI tools via uv tool) ✓ Complete
6 41a uv.go: all Adapter methods, uv tool list parsing
6 41b uv_test.go: table-driven tests for all operations
6 41c Detection in root.go + docs
6 42 Two-phase update check + confirm ~ Planned
6 42a CheckUpdate interface + UpdateInfo type ~
6 42b 12 adapter implementations (CheckUpdate) ~
6 42c CLI update.go rework with –check and prompt ~
6 42d ADR-011: update check + confirm
6 42e Docs: SPEC, FEATURE_MATRIX, usage/update.md