---
status: resolved
parent: "[[031-slice-skill-map]]"
blocked-by: []
claimed-by: "019fbb2a-dbcd-79d2-ae72-c5bcdd1d714e"
claimed-at: "2026-07-31T22:58:59-04:00"
tags:
  - ticket/research
---

# Slice skill Wayfinder contract research

## Question

What Wayfinder artifact rules must `slice` follow when creating implementation task tickets?

## Findings

Wayfinder normally plans rather than implements.
It creates a durable map of questions whose resolutions are decisions, findings, prototypes, or completed prerequisites, and says implementing the destination usually marks the edge of the map and the handoff point.
`slice` therefore needs an explicit contract that it creates implementation handoff tickets only when invoked, rather than silently turning unresolved planning fog into destination work.
Source: `/home/alexion/.pi/agent/skills/wayfinder/SKILL.md`.

The user-facing reference rule is human-readable artifact titles through the destination's link style, not bare identifiers or slugs.
`slice` should present proposed and written artifacts by wikilink title such as `[[034-slice-skill-source-task]]`, not by an unlinked filename stem or numeric identifier alone.
Source: `/home/alexion/.pi/agent/skills/wayfinder/SKILL.md`.

Artifact destinations are resolved before naming files.
When a caller provides a destination directory, it must be used exactly.
Otherwise the default is `$(xdg-user-dir DOCUMENTS)/ai-artifacts/projects/<project>` when the AI-artifacts vault exists, falling back to `./docs` in the current project.
`slice` must read the destination's `AGENTS.md` before writing artifacts.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

This vault's project artifact convention is flat and identifier-bearing.
Project Markdown artifacts are named `<NNN>-<scope-slug>[-<subject-slug>]-<artifact-type>.md`, with identifiers allocated by incrementing the vault root `.counter` before artifact creation.
The creating skill chooses the artifact-type slug, but Wayfinder ticket filenames use `research`, `prototype`, `grill`, or `task`, and maps should use the normal `map` artifact-type suffix.
Sources: `/home/alexion/Documents/ai-artifacts/AGENTS.md`, `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

Wayfinder maps are route summaries, not stores for detailed ticket results.
Only the Frontier links to tickets or other artifacts, Decisions so far contains concise plain-language decisions without links, and map status is open while live tickets or fog remain.
`slice` should not store implementation slice bodies in the map.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

Wayfinder tickets are self-resolving artifacts with authoritative metadata.
A new ticket has `status: open`, a singular `parent` wikilink, `blocked-by: []`, and one ticket tag.
Task tickets use `ticket/task/afk` or `ticket/task/human`.
`slice` should create one implementation slice per Wayfinder task ticket and choose AFK when an agent can complete it without live human input, or human when the task's execution or validation requires the user.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

`parent` and `blocked-by` mean different things.
`parent` records provenance, while `blocked-by` records upstream artifacts that must resolve before the ticket becomes actionable.
A ticket is on the Frontier when it is open, every blocker is satisfied, and it has no claim.
`slice` should put the source artifact or map in `parent`, and put prerequisite slices or unresolved prerequisite artifacts in `blocked-by`.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

Claims are part of the execution protocol and should not be pre-created by `slice`.
A ticket is claimed only when an agent is about to work it, by setting `status: claimed`, `claimed-by`, and `claimed-at` before doing work.
`slice` should create open unclaimed task tickets, then recompute the map Frontier.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

Research and prototype tickets have called-skill completion contracts, while task tickets perform prerequisite work where possible or give the human a checklist.
Because `slice` output is implementation work, it should not create research, prototype, or grill tickets unless slicing reveals a precise unresolved planning question instead of an implementation slice.
Source: `/home/alexion/.pi/agent/skills/wayfinder/SKILL.md`.

The existing full map in the dotfiles project shows the artifact style in practice: a map artifact `[[002-pi-subagents-map]]`, decision summaries in the map, task tickets such as `[[026-pi-subagents-dotfiles-deployment-task]]` and `[[027-pi-subagents-implementation-spec-task]]`, and detailed task results living in those task artifacts rather than in the map.
Some completed historical tickets use `status: done`, but the current Wayfinder artifact contract lists `resolved` as the resolved ticket status, so `slice` should follow the current contract rather than copying that older status spelling.
Sources: `/home/alexion/Documents/ai-artifacts/projects/dotfiles/002-pi-subagents-map.md`, `/home/alexion/Documents/ai-artifacts/projects/dotfiles/026-pi-subagents-dotfiles-deployment-task.md`, `/home/alexion/Documents/ai-artifacts/projects/dotfiles/027-pi-subagents-implementation-spec-task.md`, `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

Concurrent writes require re-reading shared artifacts immediately before editing them and reconciling duplicate identifiers or filenames after parallel creation.
`slice` should allocate artifact identifiers sequentially, create approved task artifacts, then re-read and repair the map Frontier after the files exist.
Source: `/home/alexion/.pi/agent/skills/wayfinder/ARTIFACTS.md`.

## Conclusion

`slice` must write open, unclaimed Wayfinder task tickets in the resolved artifact destination, using destination naming, identifier, wikilink, parent, blocker, status, claim, and Frontier rules.
It should keep implementation slice detail in each task artifact, not the map, and it should treat research, prototype, and grill tickets as planning work rather than implementation slices.
