CCPM Project Management
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Archive completed plans and roadmap milestones. An agent skill from unxed/f4.
$ npx skills add unxed/f4 --skill aif-archive -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install unxed/f4 aif-archive --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/aif-archive .claude/skills/aif-archive && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .claude/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/unxed/f4/tree/main/.agents/skills/aif-archiveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add unxed/f4 --skill aif-archive -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install unxed/f4 aif-archive --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/aif-archive .agents/skills/aif-archive && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .agents/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unxed/f4 --skill aif-archive -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install unxed/f4 aif-archive --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/aif-archive .cursor/skills/aif-archive && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .cursor/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/unxed/f4.git --path .agents/skills/aif-archive--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add unxed/f4 --skill aif-archive -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install unxed/f4 aif-archive --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/aif-archive .gemini/skills/aif-archive && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .gemini/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install unxed/f4 aif-archiveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add unxed/f4 --skill aif-archive -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/aif-archive .github/skills/aif-archive && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .github/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unxed/f4 --skill aif-archive -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install unxed/f4 aif-archive --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/aif-archive .opencode/skills/aif-archive && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "aif-archive" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-archive into .opencode/skills/aif-archive/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-archive", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
aif-archiveArchive completed plans and roadmap milestones. An agent skill from unxed/f4.
Aif Archive is an agent skill from unxed/f4. Archive completed plans and roadmap milestones. Moves finished plans to the archive directory and optionally trims closed milestones from ROADMAP.md. Use when user says "archive plans", "clean up plans", "archive completed", or "trim roadmap".
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Product & Project Management, covering Project management. The repository describes itself as: dual pane like a charm. The licence is BSD-3-Clause.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 772edc7. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBash(mv *)Bash(mkdir *)Bash(git *)AskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Aif Archive loads about 3.2k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,237 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from unxed/f4 at commit 772edc7, republished under its BSD-3-Clause licence (© unxed). 1,237 words, ~3,238 tokens.
.claude/skills/aif-archive/SKILL.md (or your agent's skills folder).Archive completed single-file plans and ultra bundle directories from
paths.plans/ into paths.archive/plans/ and
optionally trim closed milestones from ROADMAP.md into dated snapshots
under paths.archive/roadmap/.
Read .ai-factory/config.yaml if it exists to resolve:
paths.plans (default: .ai-factory/plans/)paths.archive (default: .ai-factory/archive/)paths.plan (default: .ai-factory/PLAN.md)paths.fix_plan (default: .ai-factory/FIX_PLAN.md)paths.roadmap (default: .ai-factory/ROADMAP.md)workflow.plan_id_format (default: slug) — active values: slug and
sequential. timestamp and uuid are reserved and behave like slug.
Treat any unknown value as slug.language.ui for user-facing promptsIf config doesn't exist, use defaults listed above.
Read .ai-factory/skill-context/aif-archive/SKILL.md if it exists —
project-specific overrides take priority over general instructions.
Extract mode from arguments:
(no args) → interactive mode: scan, show completable plans, ask which to archive
list → show archive contents, then STOP
--roadmap → trim closed milestones from ROADMAP.md into a snapshot
--all → archive ALL completed plans (ask confirmation first)
<plan-name> → archive a specific plan by filename or partial stem matchParsing rules:
list and --roadmap are mutually exclusive with <plan-name> and --all<plan-name> can be:0005_feature-auth.md0005_feature-auth or 0005_feature-auth/index.md0005_feature-authfeature-auth (must match exactly one plan)paths.plans/ for root *.md files and direct child */index.md
candidates using Glob. Exclude the resolved paths.plan and
paths.fix_plan; count a directory only when its entrypoint declares
<!-- aif:plan-mode:ultra -->. Do not treat phase files or unrelated directories as plans.## Tasks section.- [x]. Plans with any - [ ] are incomplete.No completed plans found in <paths.plans/>.Completed plans ready to archive:
1. 0001_feature-alpha.md (completed 2026-05-20)
2. 0003_feature-gamma.md (completed 2026-05-24)
Incomplete plans (skipped):
- 0005_feature-delta.md (3/7 tasks done)AskUserQuestion: Which plans to archive?
Options:
1. All completed plans listed above
2. Select specific plans (enter numbers)
3. Cancellist<paths.archive>/plans/ exists.Archive is empty. No plans have been archived yet. → STOP.<paths.archive>/plans/*.md files and direct child
<paths.archive>/plans/*/index.md entrypoints containing exactly one
<!-- aif:plan-mode:ultra -->.<!-- aif:archived:YYYY-MM-DD --> immediately after the ultra
marker (index.md).Archived plans (<paths.archive>/plans/):
1. 0001_feature-alpha.md (archived: 2026-05-20)
2. 0003_feature-gamma.md (archived: 2026-05-24)
Total: 2 archived plans<paths.archive>/roadmap/ for snapshots and list them if present:Roadmap snapshots (<paths.archive>/roadmap/):
1. 2026-05-20_roadmap-snapshot.md (3 milestones)<plan-name><plan-name> to one artifact in paths.plans/:*/index.md match.md extension appendedPlan not found: <plan-name> with suggestions → STOP.<!-- aif:plan-mode:ultra -->;
otherwise it is not an archivable AI Factory plan.Plan <filename> is not completed (5/8 tasks done).
Only completed plans can be archived.--allpaths.plans/ for completed plans (same logic as interactive mode).AskUserQuestion: Archive ALL completed plans?
1. 0001_feature-alpha.md
2. 0003_feature-gamma.md
Options:
1. Yes, archive all 2 plans
2. Cancel--roadmappaths.roadmap file.No ROADMAP.md found at <path>. → STOP.- [x] checkbox (completed milestones).No closed milestones to archive. → STOP.Closed milestones found in ROADMAP.md:
- [x] MVP Launch — core features shipped
- [x] Beta Testing — user feedback round
AskUserQuestion: Trim these milestones from ROADMAP.md into a snapshot?
Options:
1. Yes, create snapshot and trim
2. Cancelmkdir -p <paths.archive>/roadmap/YYYY-MM-DD_roadmap-snapshot.mdRead <paths.archive>/roadmap/YYYY-MM-DD_roadmap-snapshot.mdYYYY-MM-DD_roadmap-snapshot-2.md, YYYY-MM-DD_roadmap-snapshot-3.md, etc.
Check each candidate until a free name is found.# Roadmap Snapshot — YYYY-MM-DD
Archived from: <paths.roadmap>
## Archived Milestones
- [x] MVP Launch — core features shipped
- [x] Beta Testing — user feedback roundpaths.roadmap: remove the archived - [x] lines from the
## Milestones section. Keep the ## Completed table if it exists.
Do NOT edit paths.roadmap unless the snapshot write in step 6 succeeded.INFO [aif-archive] roadmap snapshot: <resolved-path> (<N> milestones archived)For each plan artifact to archive:
mkdir -p <paths.archive>/plans/
Collision check. Before moving, verify the destination does not already exist:
Read <paths.archive>/plans/<original-name> # full plan
Read <paths.archive>/plans/<original-name>/index.md # ultra bundleIf the file exists:
<plan-name>): STOP with an error:ERROR [aif-archive] destination already exists: <paths.archive>/plans/<filename>
A previously archived plan has the same filename. This can happen when
sequential numbering reuses a freed number after archiving.
To resolve: rename the existing archive file, or delete it if it is no
longer needed.--all): SKIP this plan with a warning, continue to the next:WARN [aif-archive] skipped: <filename> — destination already existsDo NOT overwrite in either case.
Validate an ultra bundle before moving it. Read index.md and require:
<!-- aif:plan-mode:ultra -->, as the first line or immediately
after an optional first-line <!-- handoff:task:<id> -->;## Phase Index;A malformed bundle is not safe to archive. STOP for a single plan, or emit
WARN [aif-archive] skipped malformed ultra bundle: <filename> and continue
in --all mode.
Move the complete source artifact into the archive path first:
mv <paths.plans>/<name> <paths.archive>/plans/<name>For ultra, <name> is the whole directory, so all linked phase files move
together. This atomically removes the plan from active discovery.
Add archive metadata to the moved entrypoint using Edit (index.md for
ultra, the moved plan file otherwise).
For ultra, preserve the canonical header and insert this comment immediately
after <!-- aif:plan-mode:ultra -->:
<!-- aif:archived:YYYY-MM-DD -->Never prepend YAML or move the ultra marker: it must remain the first line or immediately after an optional first-line Handoff annotation.
For a full plan, if the file already has YAML frontmatter (between ---
markers at the top):
Edit to add archived: YYYY-MM-DD field inside the existing frontmatter block.If the full plan has no YAML frontmatter:
Edit to prepend a minimal frontmatter block before the first line:---
archived: YYYY-MM-DD
---The original filename or directory name is preserved exactly, including any
sequential NNNN_ prefix.
Logging: INFO [aif-archive] archived: <filename> -> <paths.archive>/plans/<filename>
After all plans are processed, display summary:
## Archive Complete
Archived N plan(s) to <paths.archive>/plans/:
- 0001_feature-alpha.md
- 0003_feature-gamma.md
Skipped: K (destination already exists)
- 0002_feature-beta.md
Plans directory: <paths.plans/> (M plans remaining)Omit the "Skipped" section when K is 0.
A plan is completed when:
## Tasks section (case-insensitive header match).- [x] or - [ ] within the Tasks section
(and its subsections) are checked: every checkbox is - [x].Edge cases:
## Tasks (e.g., in ## Settings or ## Commit Plan)
are NOT counted for completion. - [x]) ARE counted.## Tasks are not archivable — emit
WARN [aif-archive] <name> has no ## Tasks section; skipping.When displaying "completed" dates in interactive mode:
completed field — use if present.git log -1 --format=%ai -- <plan-file> to get last
modification date.- [x]--all and --roadmap operationsNNNN_ prefix<!-- aif:archived:YYYY-MM-DD --> comment after the ultra marker for bundlespaths.plan) or fix plans (paths.fix_plan) —
those are single-file artifacts managed by /aif-implement and /aif-fixpaths.archive/plans/, not paths.plans/, so /aif-plan
sequential scan does not include thempaths.archive/plans/*.md, archived ultra bundle directories, and paths.archive/roadmap/*.mdpaths.plans/*.md, direct child ultra */index.md + linked phases, and paths.roadmappaths.roadmap (only with --roadmap, only after confirmation)paths.plan, paths.fix_plan, paths.description,
paths.architecture, paths.rules_file© unxed, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/aif-archive of unxed/f4.
Open the folder on GitHubat commit 772edc7
Aif Archive next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Aif Archive this skillunxed/f4 | 243 | — | ~3.2k | Automated safety check: Pass | BSD-3-Clause | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Uvastral-sh/claude-code-plugins | 313 | 2 repos | ~980 | Automated safety check: Pass | Apache-2.0 | |
| Project Managementkunchenguid/firstmate | 7.8k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Hivemind Goalsactiveloopai/hivemind | 1.6k | — | ~1.7k | Automated safety check: Notes | Apache-2.0 | |
| Ichartjswanghetommy/ichartjs | 352 | — | ~4.3k | Automated safety check: Pass | Apache-2.0 |
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
astral-sh/claude-code-plugins
Guide for using uv, the Python package and project manager. An agent skill from astral-sh/claude-code-plugins.
kunchenguid/firstmate
Agent-only procedure for Firstmate project management. An agent skill from kunchenguid/firstmate.
activeloopai/hivemind
Create, track and update team goals via the Deeplake virtual filesystem at memory/goal/.
wanghetommy/ichartjs
Plan, validate, render, explain, and safely edit iChart.js visualizations from tabular, project, or diagram data.
activeloopai/hivemind
Create, track and update team goals in Hivemind via the hivemind CLI.
unxed/f4
Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt.
unxed/f4
Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt.
unxed/f4
Comprehensive guide for Go database access — parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context…
unxed/f4
Security audit checklist based on OWASP Top 10 and best practices.
unxed/f4
Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and…
unxed/f4
Golang concurrency design — goroutine lifecycle and leak prevention, channels and select, channel ownership and direction, sync.Mutex/RWMutex/sync.Map/sync.Once/atomics, errgroup, singleflight…
Categories
Archive completed plans and roadmap milestones. An agent skill from unxed/f4. Aif Archive is an agent skill from unxed/f4. Archive completed plans and roadmap milestones.
Aif Archive fits situations like: user says archive plans; archive completed.
Run `npx skills add unxed/f4 --skill aif-archive -a claude-code`. Or copy the skill folder (.agents/skills/aif-archive in unxed/f4) into .claude/skills/aif-archive in your project. Claude Code loads it when a task matches its description.
Run `npx skills add unxed/f4 --skill aif-archive -a codex`. Or copy the skill folder (.agents/skills/aif-archive in unxed/f4) into .agents/skills/aif-archive in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add unxed/f4 --skill aif-archive -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aif-archive, .gemini/skills/aif-archive, .github/skills/aif-archive and .opencode/skills/aif-archive in your project.
Going by SKILL.md and its folder, Aif Archive needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash(mv *), Bash(mkdir *), Bash(git *), AskUserQuestion.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Aif Archive is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Aif Archive: CCPM Project Management (automazeio/ccpm, 8.4k stars), Uv (astral-sh/claude-code-plugins, 313 stars), Project Management (kunchenguid/firstmate, 7.8k stars) and Hivemind Goals (activeloopai/hivemind, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
unxed (a GitHub user) maintains it in unxed/f4, which has 243 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 10, 2026.
Source: unxed/f4 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.