Absolute Development Workflow Engine

repository·main·Indexed 41 days ago

https://github.com/maddhruv/absolute

A development workflow engine for AI coding agents providing eleven specialized skills to manage the software development lifecycle. It includes tools for setup (/absolute-init), build loops (/absolute-work, /absolute-spec, /absolute-ui, /absolute-simplify, /absolute-docs), and engineering health (/absolute-upgrade, /absolute-audit, /absolute-prune, /absolute-debt, /absolute-deflake). Compatible with platforms such as claude-code, gemini-cli, openai-codex, and mcp.

Tokens
152.7K
Snippets
301
Records
511
Agent score
52%

What's inside Absolute

  1. Overview of absolute-ui

    main
    absolute-ui is a workflow skill (version 0.5.0) designed to help developers build intentional UIs using concrete CSS and Tailwind values. Instead of providing vague design advice, it enforces specific rules for spacing, color ratios, typography, and component patterns. It is compatible with claude-code, gemini-cli, openai-codex, and mcp platforms.
  2. Overview of absolute-docs

    main
    absolute-docs is a workflow-category skill (version 0.5.0) used for Diátaxis-driven documentation. It supports multiple platforms including claude-code, gemini-cli, openai-codex, and mcp. It provides deep-dive guides for developer docs, docs-stacks, explanations, how-to-guides, references, style-and-voice, and tutorials.
  3. Understand the Absolute Prune risk ranking (TRIAGE)

    main

    To prevent regressions, absolute-prune categorizes removals into three waves based on risk. Static analysis tools can miss dynamic references (DI, reflection, dynamic imports), so follow this hierarchy:

    WaveRemoval TypeRisk Level / Action
    1Unused devDeps, unreferenced local exports/functionsFix now — lowest risk
    2Unused runtime deps, orphaned internal filesFix this pass after confirming no dynamic references
    3Anything reachable via public API, plugin system, dynamic require, reflection, or configGated / Defer — high false-positive risk

    Safety Rule: Anything in Wave 3, or anything a tool flags that you cannot prove is dead, must be confirmed with a human or deferred. Never auto-remove these.

  4. Understand the Absolute Upgrade risk ranking (TRIAGE)

    main

    To ensure stability, absolute-upgrade organizes updates into three distinct waves based on the semantic versioning (semver) jump type:

    WaveJump TypeStrategy
    1patch (x.y.Z)Batch together and apply immediately.
    2minor (x.Y.z)Batch by package family and apply immediately.
    3major (X.y.z) / pre-1.0 minorGated/Solo: Apply one at a time. Must read changelogs/migration guides and list breaking changes before applying.

    For major bumps, the skill identifies breaking changes (via CHANGELOG or release notes), inventories affected call sites, and performs the necessary code migrations in the same wave to ensure the project remains functional.

  5. Use OKLCH for Perceptually Uniform Colors

    main

    OKLCH is a modern color format (oklch(lightness chroma hue)) that provides perceptually uniform lightness steps, unlike HSL. This makes it ideal for generating shade ramps and fine-tuning contrast.

    Parameters:

    • Lightness: 0 (black) to 1 (white).
    • Chroma: 0 (gray) to ~0.4 (max saturation). For UI work, keep this between 0 and 0.2.
    • Hue: 0 to 360.

    Use OKLCH when generating shade ramps, fine-tuning contrast, or working with Tailwind v4+.

    /* Neutral palette in OKLCH */
    --bg-dark:    oklch(0.15 0 0);   /* base layer */
    --bg-mid:     oklch(0.20 0 0);   /* cards, surfaces */
    --bg-light:   oklch(0.25 0 0);   /* raised elements */
    --text-primary:   oklch(0.90 0 0);   /* headings */
    --text-secondary: oklch(0.65 0 0);   /* body text */
    
    /* Adding brand hue */
    --bg-dark:    oklch(0.15 0.01 250);  /* barely tinted */
    --primary:    oklch(0.55 0.18 250);  /* full brand color */
    --accent:     oklch(0.70 0.15 30);   /* warm accent */
  6. Simplify CSS Selectors

    main

    Optimize selectors while maintaining specificity:

    • Over-qualified selectors: Drop tag qualifiers (e.g., ul.nav $\rightarrow$ .nav or div.card $\rightarrow$ .card) if the class is unique and the tag is not needed for specificity or disambiguation.
    • Descendant chains: Avoid shortening chains like .card .body .title to .card-title unless it is guaranteed not to change which elements match. If unsure, flag the chain instead of changing it.
    • Specificity Warning: Never lower specificity if another rule relies on that higher specificity to win.
  7. The .absolute-work/board.md specification

    main

    The .absolute-work/board.md file serves as the single source of truth for an Absolute Work run. It is a local, machine-parseable, and human-readable file that tracks the state of a project, enabling features like session resumption, auditing, and handoff.

    File Location: {project-root}/.absolute-work/board.md

    Directory Structure:

    • .absolute-work/board.md: The active main board.
    • .absolute-work/archive/board-{timestamp}.md: Completed or superseded boards.

    Persistence Strategy: Users decide during the intake phase if the .absolute-work/ directory should be:

    • Git-tracked: Provides an audit trail and allows resuming work across different machines.
    • Gitignored: Keeps the work state strictly local to the current environment.
    {project-root}/.absolute-work/
    ├── board.md
    └── archive/
        └── board-1717400000.md
  8. Understand the Absolute Work lifecycle

    main

    Absolute Work is an end-to-end, phase-gated Software Development Lifecycle (SDLC) designed for AI coding agents. It transforms fuzzy intent into verified code through a structured, six-phase process. A critical rule of this workflow is the Phase Gate Rule: the process STOPS at the end of every phase and requires explicit user approval before advancing to the next.

    The 6 Phases:

    1. INTAKE & BRAINSTORM: A relentless design interview to reach shared understanding.
    2. SPEC: Writing a formal design specification.
    3. DECOMPOSE & PLAN: Creating a dependency-graphed task board.
    4. EXECUTE: Implementing tasks one 'safe wave' at a time.
    5. VERIFY: Ensuring code meets requirements via test-first verification.
    6. CONVERGE: Finalizing and closing the work.

    The Phase Gate Flow: INTAKE & BRAINSTORM ─┃ gate ┃─ SPEC ─┃ gate ┃─ DECOMPOSE & PLAN ─┃ gate ┃─ EXECUTE ─┃ gate per wave ┃─ VERIFY ─┃ gate ┃─ CONVERGE

  9. Use the Minimal Type Scale Alternative

    main

    For simpler UIs, you can build hierarchy using weight and color instead of multiple font sizes. Pick a base size (14px or 16px) and only increase size for page titles or hero headings.

    Hierarchy via weight/color:

    • Heading: 16px + weight: 700 + white color
    • Secondary: 16px + weight: 400 + 60% opacity/gray
    • Link: 16px + weight: 500 + brand color
    :root {
      --text-sm: 0.875rem;   /* 14px - when you need smaller */
      --text-base: 1rem;     /* 16px - default everything */
      --text-lg: 1.125rem;   /* 18px - titles, emphasis */
      --text-display: 1.5rem; /* 24px+ - page titles only */
    }
  10. Implement Loading State for buttons

    main

    When a button is in a loading state:

    1. Maintain Width: Replace text with a spinner but keep the button the same width (use min-width) to prevent layout shifts.
    2. Disable Interaction: Set disabled and disable pointer events.
    3. Spinner Sizing: Use 16px for sm/md and 20px for lg.
    4. Pattern: Keep the original label visible, add the spinner to the left, and hide the icon if one was present.
    <!-- Default -->
    <button class="btn-primary">
      <SaveIcon size={16} />
      Save changes
    </button>
    
    <!-- Loading -->
    <button class="btn-primary" disabled>
      <Spinner size={16} />
      Save changes
    </button>