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.
File GitHub issues for the claude-lens project with the right shape for the work type — plan tasks from specs/claude-lens-plan.md, Phase 4 page tasks, spikes, bugs, enhancements, chores.
$ npx skills add foyzulkarim/claude-lens --skill create-issue -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install foyzulkarim/claude-lens create-issue --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/foyzulkarim/claude-lens.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/create-issue .claude/skills/create-issue && 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 "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .claude/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issueType 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 foyzulkarim/claude-lens --skill create-issue -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install foyzulkarim/claude-lens create-issue --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/create-issue .agents/skills/create-issue && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .agents/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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 foyzulkarim/claude-lens --skill create-issue -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install foyzulkarim/claude-lens create-issue --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/create-issue .cursor/skills/create-issue && 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 "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .cursor/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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/foyzulkarim/claude-lens.git --path .claude/skills/create-issue--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 foyzulkarim/claude-lens --skill create-issue -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install foyzulkarim/claude-lens create-issue --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/create-issue .gemini/skills/create-issue && 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 "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .gemini/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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 foyzulkarim/claude-lens create-issueInstalls 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 foyzulkarim/claude-lens --skill create-issue -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/create-issue .github/skills/create-issue && 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 "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .github/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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 foyzulkarim/claude-lens --skill create-issue -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install foyzulkarim/claude-lens create-issue --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/create-issue .opencode/skills/create-issue && 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 "create-issue" agent skill from https://github.com/foyzulkarim/claude-lens/tree/main/.claude/skills/create-issue into .opencode/skills/create-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-issue", 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.
create-issueFile GitHub issues for the claude-lens project with the right shape for the work type — plan tasks from specs/claude-lens-plan.md, Phase 4 page tasks, spikes, bugs, enhancements, chores.
Create Issue is an agent skill from foyzulkarim/claude-lens. File GitHub issues for the claude-lens project with the right shape for the work type — plan tasks from specs/claude-lens-plan.md, Phase 4 page tasks, spikes, bugs, enhancements, chores. Use this whenever the user asks to create/file/open an issue, turn a plan task (e.g. "P2-3") into an issue, scaffold issues for a phase, log a bug, or propose a spike/investigation — even if they don't say the word "issue" (e.g. "let's get P1 into GitHub", "track this as a task").
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/publish.sh`).
It sits in Product & Project Management. It works with GitHub. The repository describes itself as: A local dashboard for visualizing your Claude Code usage — sessions, token costs, cache performance, tool calls, and daily breakdowns. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7937ea1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
ghbashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, 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.
Create Issue loads about 2.4k tokens when it runs. Until then it costs about 121 tokens; SKILL.md has 1,016 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); the scripts in this folder are not scanned.
The full file from foyzulkarim/claude-lens at commit 7937ea1, republished under its MIT licence (© foyzulkarim). 1,016 words, ~2,411 tokens.
.claude/skills/create-issue/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Issues in this repo come in different shapes because the work does: a plan task carries acceptance criteria written months in advance; a bug carries a repro; a spike carries a question and a timebox. One rigid template can't serve all of these, so this skill generates the right body per type and files it with gh issue create.
The specs are the source of truth. Never invent scope or acceptance criteria — pull them from the docs, and if a plan task is missing something, flag the gap to the user instead of papering over it.
| Type | Signals |
|---|---|
| plan-task | A task ID like #P2-3, or "file the Phase 1 issues" — anything that maps to a checkbox in specs/claude-lens-plan.md |
| page | A plan-task that is one of the 11 Phase 4 page tasks (#P4-2, 4–10, 14–16). Same as plan-task plus extra page-specific content (see Step 2) |
| spike | Open question, investigation, "figure out whether…", timeboxed research. Not in the plan doc |
| bug | Something built is behaving wrongly |
| enhancement | New feature/improvement idea that is not in the plan doc. If it belongs in the plan, suggest adding it there first — the plan is the backlog of record |
| chore | Repo/tooling/docs upkeep with no user-facing behavior |
If the request maps to several plan tasks (e.g. a whole phase), file one issue per task, sequentially in plan order.
plan-task / page: Read the task's entry in specs/claude-lens-plan.md — the task body is the scope, and the Acceptance: line must be copied verbatim into the issue (plan-doc rule). Follow the task's spec references before writing the body:
docs/claude-lens-architecture.mdspecs/claude-lens-pages.mdspecs/gates.mdspecs/pages/<page>.htmlDerive Depends on / Unblocks from plan order: phases 0–3 are strictly sequential; within Phase 4 the plan's ordering notes apply. Reference dependencies by task ID — don't hit GitHub during drafting; if a dependency was already filed, its issue number is in its own draft's frontmatter under specs/issues/.
page (extra): The issue must also carry:
claude-lens-pages.md (spec wins over mockup).specs/pages/X.html) as visual reference, not exhaustive contract.spike / bug / enhancement / chore: Content comes from the conversation. Before filing, make sure you have: for a bug, a repro and expected-vs-actual; for a spike, the question, why it matters now, and a timebox/exit criterion. If these are missing, ask — a bug without a repro or a spike without an exit criterion is not worth filing.
enhancement, when it's more than a one-liner: first check specs/requirements/ for a REQ doc covering it. If one exists, source the issue from it exactly as plan tasks are sourced from the plan doc — summary from its problem statement, acceptance criteria copied verbatim, REQ path linked under References. If none exists and the scope is fuzzy (multiple behaviors, unstated edge cases, no verifiable done-signal), pause and suggest the user run /plan-requirements first — it's their user-invocable interview skill (you cannot invoke it yourself) and produces the REQ doc this issue should be derived from. Only file straight from conversation when the enhancement is small enough that its acceptance line is obvious. This keeps one rule across all issue types: issues cite a requirements source; they never invent one.
| Type | Title | Labels | Milestone |
|---|---|---|---|
| plan-task / page | #P<phase>-<n> — <task title from plan> | phase-<N> | Phase <N> — <name> |
| spike | spike: <question in one line> | spike + phase-<N> if it blocks a phase | phase milestone if applicable |
| bug | bug: <symptom> | bug + phase-<N> of the affected area | current phase |
| enhancement | feat: <capability> | enhancement | usually none until planned |
| chore | chore: <what> | documentation/none as fits | usually none |
Phase labels (phase-0…phase-5) and the six phase milestones already exist. The spike label may not — create it on first use: gh label create spike --description "Timeboxed investigation" --color 1d76db.
Shapes below; drop sections that would be empty rather than leaving placeholders. Reference dependencies by task ID — GitHub issue numbers usually don't exist yet at drafting time (a filed dependency's number is in its own draft's frontmatter if you need it).
plan-task / page
Task **#P<X>-<Y>** from [specs/claude-lens-plan.md](../blob/main/specs/claude-lens-plan.md) — Phase <X>.
## Summary
<one or two sentences: what this delivers and why it's in this phase>
## Scope
<bullets pulled from the task body; spec section refs inline, e.g. "per architecture §4">
## Acceptance criteria
<the plan doc's *Acceptance:* line, verbatim, as bullets>
## Dependencies
- Depends on: <task IDs / #issue numbers, or "none — first in phase">
- Unblocks: <next task(s)>
## References
<spec sections, mockup path, decisions-log rows that constrain this task>For page tasks, add between Acceptance and Dependencies:
## Page contract (pages spec §<N>)
<the section table rows: section → data dep → tier behavior → drill target>
Spec-vs-mockup gaps to implement from the spec table: <the relevant items, or "none for this page">
## Definition of done (Phase 4 standing rules)
- [ ] Cypress smoke spec: route renders key sections from fixtures; one drill-link lands filtered
- [ ] Component states covered in Storybook (not Cypress)
- [ ] Manual visual sign-off vs `specs/pages/<page>.html` on real data; plan checkbox flippedspike
## Question
<the single question this spike answers>
## Why now
<what decision or task is blocked on the answer>
## Approach
<how to investigate — prototype, measurement, reading; keep it cheap>
## Timebox & exit criterion
<e.g. "1 day; exits with a decisions-log row + recommendation, regardless of outcome">bug
## Symptom
<what happens, where — page/route/module>
## Repro
<numbered steps, or the fixture/data that triggers it>
## Expected vs actual
<one line each>
## Suspected area
<file/module if known; omit if not>enhancement / chore
## What & why
<the capability or upkeep, and the motivation>
## Acceptance
<how we'll know it's done — verifiable, in the spirit of the plan doc's acceptance lines;
copied verbatim from the REQ doc when one exists>
## References
<`specs/requirements/REQ-<slug>.md` if the issue was derived from one>Issues are drafted as local files first so the user can edit them until happy, then published to GitHub in one batch — not one HTTP round-trip per revision. Write each draft to specs/issues/<ID>-<slug>.md (e.g. P0-2-move-v1-into-legacy.md; for ad-hoc types use bug-<slug>.md, spike-<slug>.md, …):
---
title: "#P0-2 — Move V1 app into legacy/"
labels: phase-0
milestone: Phase 0 — Spec closure & repo prep
status: draft
---
<issue body per Step 4>Frontmatter rules: labels comma-separated; omit milestone if none; status is the lifecycle:
draft — being edited. The user owns drafts once written: before regenerating or updating one, re-read it — their manual edits must survive, so never overwrite except on their explicit ask.ready — user has approved it for publishing. Flip drafts to ready only when the user says they're final ("publish these", "file them", "looks good, ship it").filed — on GitHub; issue: and url: lines were added by the publish script. Filed drafts are frozen local records — GitHub is the source of truth from then on; don't edit them.When the user says the drafts are final, flip the approved ones to status: ready, then run the bundled script from the repo root:
bash .claude/skills/create-issue/scripts/publish.shIt files every ready draft sequentially in natural-sort order (P0-2 before P0-10) via gh issue create, marks each filed with its issue number and URL, and paces requests to respect GitHub rate limits. Afterwards, report the URLs.
[ ] to [~] only if the user says work is starting now.gh fails mid-run (auth, missing label/milestone), already-filed drafts are safely marked filed — fix the cause (e.g. gh label create spike …), rerun the script, and it resumes with the remaining ready drafts.© foyzulkarim, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .claude/skills/create-issue of foyzulkarim/claude-lens.
Open the folder on GitHubat commit 7937ea1
Create Issue 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 |
|---|---|---|---|---|---|---|
| Create Issue this skillfoyzulkarim/claude-lens | 250 | — | ~2.4k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Release ValidationMesh-LLM/mesh-llm | 3.5k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Final Release Reviewopenai/openai-agents-python | 30k | — | ~5.4k | Automated safety check: Pass | MIT | |
| Ouroboros PM InterviewQ00/ouroboros | 6.2k | — | ~5.7k | Automated safety check: Pass | MIT | |
| Project Managerpwrdrvr/openclaw-codex-app-server | 265 | — | ~1.5k | Automated safety check: Pass | MIT |
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.
Mesh-LLM/mesh-llm
A skill your agent uses when validating a MeshLLM release candidate or current HEAD against the last GitHub release, assembling the canonical feature/fix/modification inventory, testing locally…
openai/openai-agents-python
Assess a Python SDK release candidate or release plan against the previous release and recommend ship or block.
Q00/ouroboros
Runs a guided product-manager interview that classifies each question automatically and produces a Product Requirements Document.
pwrdrvr/openclaw-codex-app-server
Manage GitHub issues and the GitHub Project board for the current repository, while keeping the local tracker in sync.
tradingstrategy-ai/frontend
Creates a new GitHub issue with structured user story format, acceptance criteria, and project integration.
foyzulkarim/claude-lens
Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's…
foyzulkarim/claude-lens
After /start-task: park the current clean, pushed feature branch in its own issue-numbered nested worktree (.worktrees/<issue) and return the primary checkout to current main, so the next parallel…
Works with
Categories
File GitHub issues for the claude-lens project with the right shape for the work type — plan tasks from specs/claude-lens-plan.md, Phase 4 page tasks, spikes, bugs, enhancements, chores. Create Issue is an agent skill from foyzulkarim/claude-lens.md, Phase 4 page tasks, spikes, bugs, enhancements, chores.
Create Issue fits situations like: asks to create/file/open an issue; turn a plan task (e.g.
Run `npx skills add foyzulkarim/claude-lens --skill create-issue -a claude-code`. Or copy the skill folder (.claude/skills/create-issue in foyzulkarim/claude-lens) into .claude/skills/create-issue in your project. Claude Code loads it when a task matches its description.
Run `npx skills add foyzulkarim/claude-lens --skill create-issue -a codex`. Or copy the skill folder (.claude/skills/create-issue in foyzulkarim/claude-lens) into .agents/skills/create-issue 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 foyzulkarim/claude-lens --skill create-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-issue, .gemini/skills/create-issue, .github/skills/create-issue and .opencode/skills/create-issue in your project.
Going by SKILL.md and its folder, Create Issue needs a shell for the scripts in its folder and the command-line tools its instructions call (gh and bash). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use gh, 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Create Issue is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k 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 Create Issue: CCPM Project Management (automazeio/ccpm, 8.4k stars), Release Validation (Mesh-LLM/mesh-llm, 3.5k stars), Final Release Review (openai/openai-agents-python, 30k stars) and Ouroboros PM Interview (Q00/ouroboros, 6.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
foyzulkarim (a GitHub user) maintains it in foyzulkarim/claude-lens, which has 250 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 5, 2026.
Source: foyzulkarim/claude-lens on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.