agentsclimarketplace

Config

Skill patforna/auto-task/skills/config

An opinionated agentic workflow to turn well-defined units of work into shippable code with minimal human input.

Install
npx -y skills add patforna/auto-task --skill config

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill to resolve auto-task settings. It owns the procedure that merges the shipped defaults file with project and local config, per-leaf, plus the resolved-block contract consumers read. Run it standalone to inspect the resolved settings and where each value came from.

SKILL.md

10.6 KB, as published. Nobody here has run it

Config

Usage

/at:config — inspect the resolved settings for the current repo, with each value's origin (see § Inspect).

Setting-consuming skills don't call this as a command. They follow § Resolve — via their mandatory Step 0 — to obtain a resolved block, then read settings.* from it. Every setting's canonical default lives in the shipped defaults file (§ Resolve layer 1) and nowhere else, so a skill never restates a default: change it there and every consumer follows.

Scope This Slice

This slice populates only the settings /at:create-task consumes: settings.task_store.* and settings.feedback_snapshots.* — their defaults live in the shipped auto-task.config.defaults.md (§ Resolve layer 1). Both are static (no environment detection), so § Detection is an empty stub for now.

The other settings still live inline in their own skills and migrate in later slices. Their config-file headings are already recognised here (see § Heading → Setting Map) so an existing full config raises no false warnings during migration — they just don't resolve to live settings yet.

Settings

The settings /at:config owns this slice. Their default values live in the shipped auto-task.config.defaults.md (§ Resolve layer 1), not here — this section maps each setting to its meaning and its override label.

SettingMeaningResolved byOverride (heading → label)
settings.task_store.locationwhere task files livestatic## Task Storelocation:
settings.task_store.createhow a new task file is createdstatic## Task Storecreate:
settings.task_store.statushow a task's status changesstatic## Task Storestatus:
settings.feedback_snapshots.dirout-of-repo dir for post-clarify snapshotsstatic## Feedback Snapshotsdir:
settings.feedback_snapshots.exemplarcalibration exemplar read before writing a taskstatic## Feedback Snapshotsexemplar:

A task's attachments live in {settings.task_store.location}/attachments/{NNN}/ (derived from location, not a separate setting).

An override supplies only the leaves it names (e.g. a ## Task Store giving just location: leaves create and status at their defaults). See § Resolve for the per-leaf merge.

Heading → Setting Map

The nine canonical config-file headings and the settings they map to. All nine are recognised (never warn); only Task Store and Feedback Snapshots resolve to live settings this slice — the rest are recognised-but-inert until their owning skill migrates.

Config headingSetting(s)Live this slice?
## Task Storelocation: / create: / status:yes
## Verificationsettings.verifyno
## Worktreespath: / init:no
## Reviewsettings.review_contextno
## Design Reviewsettings.design_review_serverno
## Modelsimplementer: / adversarial: / panel:no
## Conventionssuffix: / merge:no
## Transcript Capturesettings.transcript_captureno
## Feedback Snapshotsdir: / exemplar:yes

A heading outside this set is unrecognised → warn (see § Inspect). Never guess a near-miss to a canonical heading.

Detection

No-op this slice. Nothing is detected: both live settings (settings.task_store.*, settings.feedback_snapshots.*) are static, so the resolver runs no environment probes. Real detection (codex presence, a check recipe/script, Chrome DevTools MCP) arrives in Slice 2, when it will resolve only leaves left at auto and never clobber an explicit override.

Resolve

Produce a resolved block for the current repo. Standalone path only this slice (orchestrator injection and resolve-from-primary-before-worktree arrive in Slice 2).

The config chain is three files of identical format## Heading sections with labelled sub-lines — read and merged the same way at every layer:

  1. Determine the repo root (the current working repo's top level).
  2. Layer 1 — defaults. Read the shipped auto-task.config.defaults.md at the plugin root (${CLAUDE_PLUGIN_ROOT} — two levels up from this skill's skills/config/ directory). Every setting's default value lives here.
  3. Layer 2 — project. If .claude/auto-task.config.md exists at the repo root, read it. Skip silently if absent.
  4. Layer 3 — local. If .claude/auto-task.config.local.md exists at the repo root, read it. Skip silently if absent.
  5. Merge per-leaf — local beats project beats defaults, each leaf independently. Parse all three files the same way: map each ## heading to its setting group via § Heading → Setting Map, and each labelled sub-line to a leaf. A layer supplies only the leaves it names; unnamed leaves keep the lower layer's value. Never replace a whole section wholesale — that would erase sub-defaults in compound settings. A leaf's provenance is the layer its final value came from: default (defaults file), project, or local.
  6. Detection: none this slice (see § Detection).
  7. Emit the resolved block per § Resolved-block Grammar. The run: field is the passed-in task id if one was given, else standalone; the source: field is the absolute repo-root path.
  8. Report the repo-root path and which of the three config files were found vs absent.

Resolved-block Grammar

The v1 contract. LOCKED — later slices reproduce it exactly; the v1 tag gates any future format change. Do not "improve" it without bumping past v1.

Header line, then one entry per leaf:

Resolved auto-task settings v1 (run: standalone; source: /abs/path/to/repo)
- settings.task_store.location: tasks/ [default]
- settings.task_store.create: [default]
  ```text
  Create {location}/{NNN}-{slug}.md — {NNN} = max existing task number + 1, zero-padded to three digits; {slug} = kebab-case title; frontmatter + body.
  ```
- settings.task_store.status: edit the task file's `status:` frontmatter field in place [default]
- settings.feedback_snapshots.dir: skipped [default]
- settings.feedback_snapshots.exemplar: skipped [default]

Worked example — mixed provenance. Project config sets only dir:, local config sets only exemplar:; each leaf resolves independently and carries its own tag (no wholesale replacement drops the other):

Resolved auto-task settings v1 (run: standalone; source: /abs/path/to/repo)
- settings.task_store.location: tasks/ [default]
- settings.task_store.create: [default]
  ```text
  Create {location}/{NNN}-{slug}.md — {NNN} = max existing task number + 1, zero-padded to three digits; {slug} = kebab-case title; frontmatter + body.
  ```
- settings.task_store.status: edit the task file's `status:` frontmatter field in place [default]
- settings.feedback_snapshots.dir: ~/snaps/ [project]
- settings.feedback_snapshots.exemplar: ~/snaps/x-after.md [local]

Rules:

  • Header: Resolved auto-task settings v1 (run: <task-id or standalone>; source: <abs repo-root path>).
  • One leaf per line for scalars: - settings.x: <value> [provenance].
  • Commands are backticked (e.g. `just create-task "<title>"`).
  • Provenance — every leaf carries a [provenance] tag from the closed vocabulary default | detected | project | local, naming the layer its value came from (default = the shipped defaults file). detected may append the fact (e.g. [detected: codex on PATH]) — unused this slice.
  • Single-line values (a path, command, or short phrase) render inline: - settings.x: <value> [provenance]. Multi-line / compound values render as a fenced ```text sub-block indented under the leaf line (which ends with just its [provenance] tag). This slice: settings.task_store.create fences (multi-line); settings.task_store.status and the two feedback-snapshot paths render inline.
  • Empty prose renders inline as settings.x: "" [default] (no fenced block). No Slice-1 leaf is empty-prose, but the rule is part of v1.
  • Skipped feedback snapshots render inline per leaf as settings.feedback_snapshots.dir: skipped [default] and settings.feedback_snapshots.exemplar: skipped [default].
  • Only the five Slice-1 leaves (settings.task_store.location, settings.task_store.create, settings.task_store.status, settings.feedback_snapshots.dir, settings.feedback_snapshots.exemplar) ever appear this slice.

Inspect

Run on /at:config with no arguments:

  1. Follow § Resolve for the current repo (run: standalone).
  2. Print the resolved block, including the source: path, so each leaf shows its origin ([default] / [project] / [local]).
  3. Lint headings. For each ## heading in the project and local config files, if it is not one of the nine canonical headings (§ Heading → Setting Map), warn: unrecognised heading "<heading>" — ignored. A full nine-section config raises zero warnings; a heading outside the nine warns. Never guess a near-miss to a canonical heading.

Copied-default detection (warning when an override just restates today's default) needs fixtures and arrives in Slice 4.

Step 0 (for Consumers)

Every setting-consuming skill embeds this block at the top of its steps:

Step 0 — Resolve config (mandatory). If a Resolved auto-task settings v1 block was passed in, use it verbatim and do NOT re-run detection. Otherwise resolve now by following /at:config § Resolve. Do not proceed without a resolved block. At each reference site read settings.* from the block; never restate a default.

Gives 0 of the 12 instructions most project setup skills give

Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-06

  • ask one question at a timein 29 of 999, across 28 files
  • detect the package manager from lockfilesin 28 of 999, across 9 files
  • present findings to the userin 25 of 999, across 4 files
  • explore current repo statein 24 of 999, across 3 files
  • update the agent skills block in place if it existsin 24 of 999, across 3 files
  • install husky lint-staged and prettierin 23 of 999, across 4 files
  • create the lintstagedrc filein 22 of 999, across 3 files
  • commit all changed filesin 22 of 999, across 3 files
  • run lint-staged to verify it worksin 22 of 999, across 3 files
  • initialize huskyin 21 of 999, across 2 files
  • create the husky pre-commit filein 21 of 999, across 2 files
  • create a prettierrc file if missingin 21 of 999, across 2 files

Said here and by no other author read

  • read the shipped defaults file for default values
  • read project config if present at repo root
  • merge config per-leaf with local overriding project
  • warn on unrecognised config headings
  • never guess a near-miss heading
  • never replace a whole config section wholesale

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.