GitHub Issue Creation (ACE = Appforge Coding Engine)
Overview
Follow the ACE issue creation workflow to open issues and set project board status across repos.
Your Role
You are helping a human create issues that will be processed by an autonomous coding agent.
You must:
- Help the human plan well-formed issues.
- Present the proposed issues for human approval.
- After approval, use GitHub MCP to create/update issues.
- After creation, add issues to the your-org / your-project project board.
Workflow
- Locate the target repo by reading its
project_architecture.md to confirm where the issue belongs.
- Create a discrete, modular issue focused on a single task or goal.
- Capture dependencies in the issue description and use GitHub issue relationships to link them.
- For
your-terraform-repo update issues, add an explicit instruction to run the terraform-apply skill at the end of the work.
- When a new secret is added to Secret Manager via Terraform, create a follow-up issue assigned to
repo-owner to add the secret value as a version, including this command in the issue: printf %s \"$SECRET_VALUE\" | gcloud secrets versions add SECRET_NAME --data-file=-.
- If opening follow-up work from planning outputs, align issue boundaries with the generated
ISSUES.json entries and preserve dependency intent.
- If planning is expected to create issues automatically, confirm the session is in
plan_and_create_issues mode (not plan_only).
- For manual planning follow-up issues, include the same deterministic IDs and dependency order from
ISSUES.json (or preserve the blocker ordering explicitly in the body).
- Choose the execution label:
developer, agent:local, or agent:remote based on who/where the work must happen.
- Apply exactly one difficulty label:
difficulty:easy, difficulty:medium, or difficulty:hard.
- Present the issue(s) to the human for approval.
- After approval, create/update the issue(s) using
github-mcp.
- Set project status to
Backlog using appforge-mcp.
Issue Requirements
Every issue MUST include:
- Clear title (specific, actionable)
- Target repository (explicitly stated in body)
- Detailed description (what + why)
- Acceptance criteria (testable)
- Context (links, docs, background)
- Dependencies (blocked-by/depends-on) using issue IDs for
depends_on contracts when derived from planning payloads.
Planning Issue Payload Contract
When creating issues from planner outputs, these fields are expected in generated ISSUES.json:
issues array entries with:
id (string, stable, unique within session)
repo (string in owner/repo form)
title
- optional
description
- optional
depends_on (array of prior issue ids)
- Planner enforces acyclic dependencies.
- The issue writer runs dependencies topologically and attaches blocker references in body as
Blocked By.
- Session event checks for validation after running:
issues_written event with requested_count and created list
- final
done event with issue_created_count
- Lifecycle stage used by the worker is
planning_issue_writer.
When writing manual split issues from planning guidance, keep repo-scoped context high-signal, and preserve dependency intent in titles/body/links.
Choosing the Right Repository (Multi-Repo Guidance)
- Prefer one repo per issue. Split cross-repo work into sub-issues.
- Defaults by area:
- Infra/Cloud:
your-terraform-repo
- MCP/tools:
<project>-mcp
- Frontend:
<project>-web or <project>-frontend
- Orchestration/Backend: main service repo
- Data/DB migrations: owning service repo
Issue Format (Use This)
## Target Repository
[exact-repo-name]
## Description
[2-3 sentences describing what needs to be done]
[Additional context, background, or rationale]
## Acceptance Criteria
- [ ] Specific, testable requirement 1
- [ ] Specific, testable requirement 2
- [ ] Specific, testable requirement 3
- [ ] Code follows project conventions
- [ ] Tests pass (if applicable)
- [ ] No console errors or warnings
## Implementation Notes
[Optional: specific files to modify, patterns to follow, or constraints]
## Related Issues
[Links to related issues, PRs, or documentation]
Title Format
[Action] [What] [Where/Context]
Examples:
- "Add dark mode support to frontend-repo"
- "Fix authentication bug in auth-service"
- "Implement caching layer in api-gateway"
Agent Type Assessment
agent:remote (default): standard code changes, no local access needed
agent:local: needs local machine access (DB, files, device)
developer: human-only actions (DNS, vendor dashboards)
Difficulty Assessment
- Easy: small fixes/docs
- Medium: feature work/integrations
- Hard: architecture changes/complex work
Quality Checklist
- Title is clear and specific
- Target repo is named explicitly
- Description explains what + why
- Acceptance criteria are testable
- No ambiguous language
- Dependencies linked
- Implementation notes included if non-obvious
Common Mistakes to Avoid
- Missing target repo
- Vague acceptance criteria
- Multiple unrelated tasks in one issue
- Missing tests or verification steps
Example Issue
## Target Repository
frontend-repo
## Description
Implement dark mode support for the application. Users should be able to toggle between light and dark themes via a settings menu. The preference should persist across sessions.
## Acceptance Criteria
- [ ] Dark mode toggle added to settings menu (src/components/Settings.tsx)
- [ ] Theme variables defined in src/styles/theme.ts
- [ ] Preference persists in localStorage under key "theme"
- [ ] All tests pass: `npm test`
- [ ] No console errors or warnings
MCP Workflow (Must Follow)
- Plan issues.
- Present to human.
- Await explicit approval.
- Create/update via GitHub MCP.
- Add to project board + set status.
- Confirm back with links and labels applied.
Project Board Automation
- Workflow:
.github/workflows/add_issues_to_project.yml
- Trigger:
issues event (opened)
- Manual backfill:
workflow_dispatch with optional issue-number
- Project lookup: hardcoded to your-org / your-project by title
- Status updates: sets Status to Ready
- Required secret:
DITC_PROJECT_TOKEN
References
- Read
references/github_issue_creation_spec.md for the canonical ACE requirements and label rules.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: github-issue-creation-23description: Create GitHub issues using the Appforge Coding Engine (ACE) framework. Use when opening issues for ACE-managed repos, especially when you must choose the correct repo via project_architecture.md, create modular issues with dependency relationships, apply required labels, set difficulty, and put new issues in Backlog. Use when this capability is needed.4---56# GitHub Issue Creation (ACE = Appforge Coding Engine)78## Overview910Follow the ACE issue creation workflow to open issues and set project board status across repos.1112## Your Role1314You are helping a human create issues that will be processed by an autonomous coding agent.15You must:161. Help the human plan well-formed issues.172. Present the proposed issues for human approval.183. After approval, use GitHub MCP to create/update issues.194. After creation, add issues to the **your-org / your-project** project board.2021## Workflow22231. Locate the target repo by reading its `project_architecture.md` to confirm where the issue belongs.242. Create a discrete, modular issue focused on a single task or goal.253. Capture dependencies in the issue description and use GitHub issue relationships to link them.264. For `your-terraform-repo` update issues, add an explicit instruction to run the `terraform-apply` skill at the end of the work.275. When a new secret is added to Secret Manager via Terraform, create a follow-up issue assigned to `repo-owner` to add the secret value as a version, including this command in the issue: `printf %s \"$SECRET_VALUE\" | gcloud secrets versions add SECRET_NAME --data-file=-`.286. If opening follow-up work from planning outputs, align issue boundaries with the generated `ISSUES.json` entries and preserve dependency intent.297. If planning is expected to create issues automatically, confirm the session is in `plan_and_create_issues` mode (not `plan_only`).308. For manual planning follow-up issues, include the same deterministic IDs and dependency order from `ISSUES.json` (or preserve the blocker ordering explicitly in the body).319. Choose the execution label: `developer`, `agent:local`, or `agent:remote` based on who/where the work must happen.3210. Apply exactly one difficulty label: `difficulty:easy`, `difficulty:medium`, or `difficulty:hard`.3311. Present the issue(s) to the human for approval.3412. After approval, create/update the issue(s) using `github-mcp`.3513. Set project status to `Backlog` using `appforge-mcp`.3637## Issue Requirements3839Every issue MUST include:401. Clear title (specific, actionable)412. Target repository (explicitly stated in body)423. Detailed description (what + why)434. Acceptance criteria (testable)445. Context (links, docs, background)456. Dependencies (blocked-by/depends-on) using issue IDs for `depends_on` contracts when derived from planning payloads.4647## Planning Issue Payload Contract4849When creating issues from planner outputs, these fields are expected in generated `ISSUES.json`:50- `issues` array entries with:51 - `id` (string, stable, unique within session)52 - `repo` (string in `owner/repo` form)53 - `title`54 - optional `description`55 - optional `depends_on` (array of prior issue ids)56- Planner enforces acyclic dependencies.57- The issue writer runs dependencies topologically and attaches blocker references in body as `Blocked By`.58- Session event checks for validation after running:59 - `issues_written` event with `requested_count` and `created` list60 - final `done` event with `issue_created_count`61- Lifecycle stage used by the worker is `planning_issue_writer`.6263When writing manual split issues from planning guidance, keep repo-scoped context high-signal, and preserve dependency intent in titles/body/links.6465## Choosing the Right Repository (Multi-Repo Guidance)6667- Prefer one repo per issue. Split cross-repo work into sub-issues.68- Defaults by area:69 - Infra/Cloud: `your-terraform-repo`70 - MCP/tools: `<project>-mcp`71 - Frontend: `<project>-web` or `<project>-frontend`72 - Orchestration/Backend: main service repo73 - Data/DB migrations: owning service repo7475## Issue Format (Use This)7677```markdown78## Target Repository79[exact-repo-name]8081## Description82[2-3 sentences describing what needs to be done]8384[Additional context, background, or rationale]8586## Acceptance Criteria87- [ ] Specific, testable requirement 188- [ ] Specific, testable requirement 289- [ ] Specific, testable requirement 390- [ ] Code follows project conventions91- [ ] Tests pass (if applicable)92- [ ] No console errors or warnings9394## Implementation Notes95[Optional: specific files to modify, patterns to follow, or constraints]9697## Related Issues98[Links to related issues, PRs, or documentation]99```100101## Title Format102103`[Action] [What] [Where/Context]`104105Examples:106- "Add dark mode support to frontend-repo"107- "Fix authentication bug in auth-service"108- "Implement caching layer in api-gateway"109110## Agent Type Assessment111112- `agent:remote` (default): standard code changes, no local access needed113- `agent:local`: needs local machine access (DB, files, device)114- `developer`: human-only actions (DNS, vendor dashboards)115116## Difficulty Assessment117118- Easy: small fixes/docs119- Medium: feature work/integrations120- Hard: architecture changes/complex work121122## Quality Checklist123124- Title is clear and specific125- Target repo is named explicitly126- Description explains what + why127- Acceptance criteria are testable128- No ambiguous language129- Dependencies linked130- Implementation notes included if non-obvious131132## Common Mistakes to Avoid133134- Missing target repo135- Vague acceptance criteria136- Multiple unrelated tasks in one issue137- Missing tests or verification steps138139## Example Issue140141```markdown142## Target Repository143frontend-repo144145## Description146Implement dark mode support for the application. Users should be able to toggle between light and dark themes via a settings menu. The preference should persist across sessions.147148## Acceptance Criteria149- [ ] Dark mode toggle added to settings menu (src/components/Settings.tsx)150- [ ] Theme variables defined in src/styles/theme.ts151- [ ] Preference persists in localStorage under key "theme"152- [ ] All tests pass: `npm test`153- [ ] No console errors or warnings154```155156## MCP Workflow (Must Follow)1571581. Plan issues.1592. Present to human.1603. Await explicit approval.1614. Create/update via GitHub MCP.1625. Add to project board + set status.1636. Confirm back with links and labels applied.164165## Project Board Automation166167- Workflow: `.github/workflows/add_issues_to_project.yml`168- Trigger: `issues` event (`opened`)169- Manual backfill: `workflow_dispatch` with optional `issue-number`170- Project lookup: hardcoded to **your-org / your-project** by title171- Status updates: sets **Status** to **Ready**172- Required secret: `DITC_PROJECT_TOKEN`173174## References175176- Read `references/github_issue_creation_spec.md` for the canonical ACE requirements and label rules.177178---179> Converted and distributed by [TomeVault](https://tomevault.io/claim/day-in-the-country-llc) — claim your Tome and manage your conversions.180<!-- tomevault:4.0:skill_md:2026-04-14 -->