๐Ÿง‘โ€๐Ÿ’ป
minimal governance

Indie Developer

A pm-cli workspace preset for solo indie developers and freelancers. Minimal process, minimal overhead. Capture tasks and ideas quickly without filling out forms.

minimal No required fields, no ownership, no close validation. Move fast.

Templates

ideatask

Install as extension

$ pm install github.com/unbraind/pm-presets --project
Then apply: pm indie-setup

Settings

{
  "id_prefix": "indie-",
  "author_default": "",
  "governance": {
    "preset": "minimal",
    "ownership_enforcement": "off",
    "create_mode_default": "progressive",
    "close_validation_default": "off",
    "metadata_profile": "core"
  },
  "validation": {
    "sprint_release_format": "off",
    "parent_reference": "off"
  },
  "item_types": {
    "definitions": [
      {
        "name": "Task",
        "description": "Something to do"
      },
      {
        "name": "Decision",
        "description": "An idea, experiment, or decision to record"
      }
    ]
  },
  "testing": {
    "record_results_to_items": false
  },
  "telemetry": {
    "enabled": false
  }
}

Template Files

๐Ÿ“„ idea.json JSON
{
  "name": "idea",
  "description": "Quick idea or experiment capture. Use this to park thoughts before deciding whether to act on them.",
  "defaults": {
    "type": "Decision",
    "status": "open",
    "priority": "low",
    "tags": [
      "idea"
    ],
    "metadata": {
      "hypothesis": "",
      "motivation": "",
      "effort_estimate": "small",
      "decision": "",
      "outcome": ""
    }
  }
}
๐Ÿ“„ task.json JSON
{
  "name": "task",
  "description": "A simple task. Low ceremony โ€” just a title, optional notes, and a due date.",
  "defaults": {
    "type": "Task",
    "status": "open",
    "priority": "medium",
    "tags": [],
    "metadata": {
      "notes": "",
      "due_date": "",
      "project": ""
    }
  }
}

Documentation

A pm-cli workspace preset for solo indie developers and freelancers. Minimal process, minimal overhead. Capture tasks and ideas quickly without filling out forms.

What This Preset Configures

Settings (settings.json)

Setting Value Rationale
id_prefix indie- Short, recognizable namespace
governance.preset minimal Minimal governance structure without blocking velocity
governance.ownership_enforcement none Solo dev; no ownership tracking needed
governance.create_mode_default progressive Add metadata gradually as context becomes clear
governance.close_validation_default off Close items without friction
governance.metadata_profile core Only essential fields tracked
validation.sprint_release_format warn Soft reminder only
testing.record_results_to_items false No test linkage overhead

Templates

Template Type Purpose
task Task A simple to-do with optional due date and project tag
idea Decision Quick idea capture with hypothesis and outcome fields

Workflow Overview

Brain dump
  โ”œโ”€โ”€ Concrete work  โ†’ pm create --template task
  โ””โ”€โ”€ Fuzzy idea     โ†’ pm create --template idea
                            โ””โ”€โ”€ Decide later: promote to task or close
  1. When you think of something to do, pm create --template task and keep moving.
  2. For half-baked ideas or experiments, pm create --template idea to park them without committing.
  3. Review ideas periodically โ€” either convert them to tasks or close them with a decision note in metadata.
  4. Close completed tasks with pm close โ€” no validation fires, no fields required.

Installation

Run the setup script from your repository root after running pm init:

bash .agents/pm/presets/indie-dev/setup.sh

Or copy files manually:

cp presets/indie-dev/settings.json .agents/pm/settings.json
cp presets/indie-dev/templates/*.json .agents/pm/templates/

Customization Tips

  • Add a client metadata field to the task template if you're juggling multiple freelance clients.
  • Add rate or billable_hours if you track time per item.
  • Upgrade to the open-source or software-sprint preset as your project grows and you bring on collaborators.
All presets View source on GitHub