Skip to content

ATOMIC_ACTION_LIST.md

Fontshow — Atomic Action List

Current version: v0.28.7.post14 Planning level: Lowest (pre-issue)


Purpose

This document enumerates atomic actions for the Fontshow project.

An atomic action is:

  • the smallest meaningful unit of planned work,
  • below the level of a GitHub issue,
  • directly traceable to code, tests, or documentation changes.

This list serves as:

  • a planning substrate,
  • a decomposition aid for issues,
  • and a traceability anchor during execution.

Atomic actions are not tracked individually on GitHub.


What an Atomic Action Is

An atomic action represents:

  • a single, concrete change,
  • affecting a specific file or tightly scoped set of files,
  • producing an observable effect.

Examples:

  • “Add explicit exit code mapping to preflight CLI”
  • “Split unit vs integration markers in pytest config”
  • “Document failure isolation rules in pipeline docs”

What an Atomic Action Is Not

An atomic action is not:

  • a development session,
  • a GitHub issue,
  • a milestone,
  • a vague intention (“clean up code”).

Action Identification

Each atomic action is identified by:

A<number>

Numbering is monotonic and preserved even if actions are later removed.


Action Categories

Atomic actions SHOULD be grouped by intent, such as:

  • Planning
  • Tooling
  • Stabilization
  • Testing
  • CLI
  • Pipeline
  • Documentation
  • Governance
  • Design exploration

Categories are organizational only.


Atomic Action List

Planning & Tooling

  • A001 — Freeze existing planning artifacts as historical references
  • A002 — Audit current codebase, tests, and documentation state
  • A003 — Validate Python environment reproducibility
  • A004 — Validate pre-commit and git hook behavior
  • A005 — Validate Node and semantic-release preview setup

Stabilization

  • A010 — Identify implicit behavioral contracts relied upon by tests
  • A011 — Document existing CLI exit code assumptions
  • A012 — Remove or reclassify obsolete refinements

Testing

  • A020 — Classify existing tests as unit or integration
  • A021 — Isolate environment-dependent tests
  • A022 — Define CI-safe test defaults

Pipeline Robustness

  • A030 — Identify single-font failure points in catalog generation
  • A031 — Add diagnostics for LaTeX-related failures
  • A032 — Document reproducibility steps for catalog generation

CLI Contracts

  • A040 — Enumerate CLI commands and exit codes
  • A041 — Define machine-readable output expectations
  • A042 — Add regression tests for CLI exit behavior

Charset-Aware Enrichment

  • A050 — Survey existing charset decoding logic
  • A051 — Define non-goals for charset enrichment
  • A052 — Add observability hooks for charset processing

Governance & Documentation

  • A060 — Define public vs internal API boundaries
  • A061 — Document decision-record practices
  • A062 — Improve documentation navigation structure

Design Exploration

  • A070 — Identify candidate pluggable backend boundaries
  • A071 — Draft interface sketches for v2 exploration
  • A072 — Record risks and unknowns for v2.x.y

Maintenance Rules

  • Atomic actions MAY be added as understanding improves.
  • Atomic actions MUST NOT be silently removed.
  • Changes to this list should preserve numbering and traceability.

Status

This atomic action list is active and forms the basis for issue decomposition and execution planning.