Skip to content
Back to skills

Act Issue

ASecurity

Use when asked to "show issues", "show my open stories", "show issue 42", to create, comment on or close a GitHub or GitLab issue, or to "start work on issue 42". Covers issues and stories on the repo host. Not for pull or merge requests - use act-pr.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added October 8, 2026
developmentpythongogit

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add wrufeger/agentic-coding-template --skill act-issue --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Act Issue?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Act Issue
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wrufeger-act-issue/badge)](https://www.skillsdirectory.com/skills/wrufeger-act-issue)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: act-issue
description: Use when asked to "show issues", "show my open stories", "show issue 42", to create, comment on or close a GitHub or GitLab issue, or to "start work on issue 42". Covers issues and stories on the repo host. Not for pull or merge requests - use act-pr.
---

# Issues and stories

Sentences instead of subcommands, in three parts. Runs in the main session. Only GitHub and GitLab
(also self-hosted) work; Jira, YouTrack and Linear are not supported yet (trackers without Git). Before the first
call: `python .act/scripts/integrations.py status` — exit 3 (missing or stale) means
`act-integrations` first. Everything that writes follows `R-safe-approval` and the rule section
"Repo host and issue tracker" in `.act/rules/topics/live-systems.md`. Never show or ask for a
token in chat.

## 1. Read — free, no approval

"show issues", "my open stories", "show issue 42":

- `python .act/scripts/forge.py issues [--state open|closed|all] [--mine] [--label <name>]
  [--limit <n>]` — show a table of at most 15 rows (number, title, labels, assignee); more rows
  are offered, not dumped.
- `python .act/scripts/forge.py issue <number>` — title, state, labels, text.
- `forge.py prs` lists pull/merge requests the same way.

## 2. Create, comment, close — only after "yes"

1. Draft the text to a file under `.act-local/` (a title; a body with what, why, how to check).
2. **Preview:** `forge.py create-issue --title "<title>" --body-file <file> [--label <name>]`,
   `forge.py comment <number> --body-file <file>` or `forge.py close-issue <number>` — without
   `--apply` nothing is sent, the preview shows what would be.
3. Show it; on the human's "yes" for exactly this preview, run the same command with `--apply`.
4. **Verify independently:** `forge.py issue <number>` (or `forge.py issues`) shows the result;
   show the link.
5. Record the link, the date and the "yes" given in the chat (date, what was approved) in the
   journal (`entries.py`). No backup is needed — nothing is overwritten. The way back is closing
   (`forge.py close-issue`), never deleting; for a comment it is a correcting comment (or editing it
   in the web interface), not closing.

`forge.py` stops with the hint to set `forge-host` when the host is self-hosted and not yet released
for the token: run `act-integrations` (the human confirms the host), then continue.

Writing back into an issue while working (a comment, a status change) follows the same steps:
preview, "yes", `--apply`, never on its own initiative.

## 3. Start work — "start work on issue 42"

1. `forge.py issue 42` — read it; summarize it in a few lines and name what is unclear.
2. `python .act/scripts/forge.py target-branch`, then `git fetch <remote> <target>` and the branch
   name from `forge.py branch-name 42` (`feature|bugfix/<number>-<short-title>`). Create it
   **locally** from the remote's target branch (`git switch -c <name> --no-track <remote>/<target>`,
   tree clean first); no push.
3. Show the summary and the working assignment (goal, scope, acceptance) and wait for the human's
   OK.
4. Then the flow of `act-prepare`: what exists already, cut into tasks (`entries.py new task
   <title>`), each task gets the header field `issue: <URL>`; everything open goes into **one**
   question block; tasks for the developer only once they are executable.
5. Bring backlog and docs up to date (`docs/ai/work/backlog/`, `docs/project/`).
6. Close with the hint: when the work is done, `act-pr` creates the pull/merge request (it reads
   `issue:` from the task and links the issue).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.