Skip to main content

Issue Workflow

OpenRegister uses a markdown-based issue workflow that allows developers and AI assistants to create GitHub Issues by adding markdown files to the repository.

Overview

The issues/ folder in the repository contains markdown files that represent tasks, bugs, and feature requests. When these files are pushed to the repository, a GitHub Action automatically creates corresponding GitHub Issues.

Benefits

  • Version Controlled: Issues are tracked in git history
  • Offline Friendly: Create issues without internet access
  • Review Process: Issues can be reviewed in PRs before creation
  • AI-Friendly: Claude and other AI tools can easily create follow-up tasks
  • Batch Creation: Multiple issues can be created in a single commit

Creating Issues

Method 1: Frontmatter Format (Auto-Created)

Create a markdown file with YAML frontmatter for automatic issue creation:

---
title: "Add user authentication"
labels: ["enhancement", "security"]
assignees: ["username"]
milestone: "v1.0"
---

## Description

Description of the feature or bug.

## Acceptance Criteria

- [ ] Criterion 1
- [ ] Criterion 2

## Technical Details

Implementation notes here.

When this file is pushed to main, master, or development, the GitHub Action will:

  1. Parse the frontmatter
  2. Create a GitHub Issue with the title, labels, and assignees
  3. Delete the markdown file from the repository

Method 2: Numbered Format (Manual Tracking)

For issues that need to be tracked locally before conversion:

issues/006-feature-name.md

These files use a more detailed template with status tracking:

# Issue Title

**Status:** 📋 Open
**Priority:** 🟡 Medium
**Effort:** ⏱️ 4-6h

## Problem Statement

What needs to be solved?

## Proposed Solution

How can we fix it?

## Implementation Plan

1. Step 1
2. Step 2

File Naming Conventions

PatternPurpose
feature-*.mdNew features
bug-*.mdBug fixes
enhancement-*.mdImprovements
docs-*.mdDocumentation
NNN-*.mdNumbered issues (manual tracking)

Workflow Integration

With Claude/AI Assistants

When working with AI assistants like Claude, they can create follow-up tasks by:

  1. Identifying work that needs to be done later
  2. Creating a markdown file in the issues/ folder
  3. Including all necessary context and acceptance criteria

Example prompt:

"Create an issue for implementing the UI for the new security endpoints"

The AI will create a file like issues/feature-security-ui.md with all the details.

In Pull Requests

Issues can be created as part of a PR:

  1. Add issue markdown files to your branch
  2. Include them in your PR for review
  3. When merged, issues are automatically created

GitHub Action

The workflow file is located at .github/workflows/issues-from-markdown.yml.

Triggers

The action runs when:

  • Files are added to issues/*.md
  • Push is to main, master, or development branches
  • Files are not README.md or .template.md

Process

  1. Detect Changes: Find new markdown files in issues/
  2. Parse Frontmatter: Extract title, labels, assignees
  3. Check Duplicates: Skip if issue with same title exists
  4. Create Issue: Call GitHub API to create issue
  5. Cleanup: Delete processed markdown files

Permissions Required

The workflow needs:

  • issues: write - To create issues
  • contents: write - To delete processed files

Labels

Common labels used:

LabelDescription
bugSomething isn't working
enhancementNew feature or request
documentationDocumentation improvements
frontendFrontend/UI related
backendBackend/API related
securitySecurity related
good first issueGood for newcomers

Best Practices

  1. Be Specific: Include clear acceptance criteria
  2. Add Context: Reference related files and documentation
  3. Use Labels: Help with issue triage and filtering
  4. Link Related Work: Reference PRs, issues, or docs
  5. Include Technical Details: Help implementers understand the scope

Template File

A template is available at issues/.template.md:

---
title: "Issue Title Here"
labels: ["enhancement"]
assignees: []
milestone: ""
---

## Description

A clear description of the feature, bug, or task.

## Acceptance Criteria

- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3

## Technical Details

Any technical notes, implementation hints, or related files.

## Related

- Related issues or PRs
- Links to documentation

Troubleshooting

Issue Not Created

  • Check that frontmatter is valid YAML
  • Ensure file is in issues/ folder
  • Verify branch is main, master, or development
  • Check GitHub Actions logs for errors

Duplicate Issues

The workflow skips files if an issue with the same title already exists. Check existing issues if your file wasn't processed.

Labels Not Applied

Labels must exist in the repository before they can be applied. Create missing labels in GitHub first.