Skip to content

Add issue templates and CONTRIBUTING.md #36

@arcavenai

Description

@arcavenai

Problem or motivation

ArcavenAE/forestage currently has no issue templates, no .github/ISSUE_TEMPLATE/ directory, and no CONTRIBUTING.md. Reports come in as free-form issues, which makes triage harder and means environment details (OS, terminal, forestage version, tmux version, Claude Code version, mode — TUI vs --mode claude vs --streaming) are routinely missing from bug reports.

forestage wraps a fast-moving dependency (Claude Code) through a headless subprocess protocol that is itself evolving. Knowing which forestage version, against which Claude Code version, in which mode, on which terminal, is load-bearing for every bug report — guessing is expensive.

Proposed solution

Adopt the issue-template structure already in use at ArcavenAE/ThreeDoors, adapted for forestage's surface area. ThreeDoors ships:

  • .github/ISSUE_TEMPLATE/bug-report.yml
  • .github/ISSUE_TEMPLATE/feature-request.yml
  • .github/ISSUE_TEMPLATE/question.yml
  • .github/ISSUE_TEMPLATE/config.yml (disables blank issues, links to docs)
  • .github/PULL_REQUEST_TEMPLATE.md
  • CONTRIBUTING.md

Adapt the fields for forestage:

Bug report — add:

  • Mode dropdown: forestage (custom TUI), claude (native Claude Code TUI passthrough), --streaming (NDJSON), -p (one-shot prompt)
  • Terminal emulator input: e.g. WezTerm 20240203, Ghostty 1.0.1, Kitty 0.34, iTerm2 3.5, Alacritty 0.13, tmux 3.5a inside Ghostty
  • Claude Code version input: from claude --version
  • forestage version input: from forestage --version
  • tmux version (if using sessions): from tmux -V
  • OS dropdown: macOS (Apple Silicon), macOS (Intel), Linux (x86_64), Linux (aarch64), Other
  • Existing fields: what happened, expected, steps to reproduce, logs

Feature request — adapt ThreeDoors' structure:

  • Problem / motivation
  • Proposed solution
  • Alternatives considered
  • Area dropdown: TUI, session management, persona/themes, portraits, config, distribution/install, NDJSON protocol, Claude Code integration, docs, other
  • Philosophy check: link to `SOUL.md` and check that the proposal aligns with BYOA / composability / user sovereignty

Question — copy ThreeDoors' verbatim, swap topic options to match forestage surface area.

config.yml — `blank_issues_enabled: false` + contact link to the charter and `docs/`.

CONTRIBUTING.md — adapt ThreeDoors' contributing guide with forestage-specific notes: gitflow (`develop` as default, stable from `main` via `v*` tags), `just lint` / `just ci` before pushing, conventional commits, no AI attribution per `.claude/rules/git-commits.md`.

Alternatives considered

  • Keep free-form issues. Works for a single-user project; breaks down as soon as external bug reports arrive. Session-010 already demonstrated the cost of missing environment detail in bug reports (five fix attempts on a tmux platform bug because the reporter's environment was ambiguous).
  • Markdown templates instead of YAML forms. Markdown templates don't enforce required fields, so reporters skip the fields that matter most. The YAML `issue-forms` format gates submission on required inputs.
  • Copy from `charmbracelet/bubbletea` or similar TUI project. ThreeDoors is already an Arcaven project with a matching philosophy and an existing template set that's been in use — lower adaptation cost.

Reference

This issue itself is filed before the template exists and will be the first and last free-form issue before the templates land.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions