* feat(tool): switch create-readme support link to /contacts
* feat(scripts): warn on deprecated support link in readme check
* feat(templates): switch cookiecutter readme support links to contacts
* docs(skill): drop removed validate mode from repo-readme docs
* test(status): cover contacts link warn/fail/ok cases
* fix(ci): shorten lines to satisfy ruff
* fix(ci): apply ruff format
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(infra): fullstack _api_dirs_for includes package name in path
* test(infra): fullstack thin-routes check coverage for issue #259
* fix(ci): reformat assert in test_project_status for ruff
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(infra): add check_pyproject and --repo flag to project-status
* feat(infra): add repo flag to project-status ts wrapper
* test(infra): add check_pyproject and repo flag tests
* fix(infra): accept packages=["src"] as valid hatchling wheel config
* fix(ci): apply ruff format to project-status.py and tests
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(spec): add project-template skill init and check flow
* refactor(spec): remove repo-init migrate references to project-template
* test(spec): structural tests for project-template skill and command
* fix(test): wrap long lines and use non_templated var in project template tests
* fix(ci): reformat test_project_template_skill.py for ruff format
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(permissions): deny gh api DELETE and repo transfer
* feat(permissions): ask on force push and tag delete
* test(permissions): cover hardened bash deny/ask rules
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* refactor(run-pipeline): drop Template B and handoff refs for 6-phase
* refactor(agents): switch reviewer and memory-syncer to PR body
* refactor(docs): update pipeline to 6 phases and drop DOCS refs
* fix(docs): update RU pipeline row and memory-syncer description
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* test(pipeline): remove adr and project-map test files
* refactor(pipeline): remove DOCS phase from pipeline-status
* test(pipeline): update tests for 6-phase pipeline
* docs(handoff): add handoff and ADR for remove-docs-phase
* docs(handoff): set PR number
* fix(pipeline): parse PR body via json.loads in check_implement
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(create-pr): enforce Watch out and Pending headings
* test(create-pr): cover Watch out and Pending headings
* docs(handoff): add handoff and ADR for PR #207
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* refactor(draw-image): add tests/fixtures/cover.svg and loadFixture helper
* feat(draw-image): add --template-dir flag to cli for test isolation
* refactor(draw-image): switch tests from templates/cover to fixtures
* chore(draw-image): simplify production cover.svg now decoupled from tests
* docs(handoff): add handoff + ADR for issue #196
* docs(handoff): set PR number
* docs(project-map): update after structural changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(draw-image): per-process output TMP in integration tests
* fix(draw-image): per-process output TMP in e2e tests
* fix(draw-image): per-process output TMP in cleanup test
* docs(handoff): add handoff and ADR for beforeAll output TMP fix
* docs(handoff): set PR number
* docs(handoff): set PR number 186
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(draw-image): per-process temp dir in renderToPng test helpers
* docs(handoff): add handoff and ADR for renderToPng temp dir fix
* docs(project-map): note per-process temp dir fix in renderToPng helpers
* docs(handoff): set PR number
* docs(handoff): replace PR number placeholder in frontmatter
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(scripts): compute next ADR as max+1 not count+1 in scaffold
* docs(handoff): add handoff and ADR-079 for ADR numbering fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(run-pipeline): replace origin/master with origin/HEAD in templates B and C
* docs(handoff): add handoff and ADR for run-pipeline origin/HEAD fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(draw-image): use pid-based tmp svg and cleanup in finally
* test(draw-image): decouple e2e.optional from leftover tmp svg
* test(draw-image): add cleanup unit test for tmp svg lifecycle
* docs(draw-image): add handoff and ADR for tmp svg race fix
* docs(handoff): set PR number
* docs(project-map): update after structural changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(create-readme): resolve file_path against context.worktree
* test(loader): support fs imports and extended TS stripping
* test(create-readme): add regression tests for local overwrite
* docs(repo-readme): note file_path resolves against worktree
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(telegram): add CLI project with Bot API client
* feat(telegram): add telegram-send plugin-tool
* test(telegram): add unit tests for markdown, config, api
* chore(env): add TELEGRAM_CHAT_ID to .env.example
* docs(handoff): add handoff and ADR for telegram-send
* docs(handoff): set PR number 174
* docs: update project map for telegram-send tool
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(agents): allow echo and fix paths in docs-reviewer
* fix(agents): allow echo and load memory skill in memory-syncer
* fix(agents): fix skills path and load code-standards in reviewer
* fix(pipeline): remove checkout master from template E
* fix(scripts): update scaffold path in pipeline-status error
* docs(handoff): add handoff and ADR for prompt contradictions fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>