Commit graph

38 commits

Author SHA1 Message Date
opencode-agent
93e7843438 feat(tools): add Forgejo backend with gh CLI fallback
All checks were successful
CI / bootstrap (push) Successful in 7s
CI / lint (push) Successful in 17s
CI / typecheck (push) Successful in 25s
CI / test (3.12) (push) Successful in 2m48s
CI / test (3.13) (push) Successful in 1m41s
CI / test (3.14) (push) Successful in 1m34s
CI / complexity (push) Successful in 21s
2026-08-06 15:02:20 +00:00
Sergey
9459e47567
feat(spec): mobile-first silent enforcement in STACK_REQUIRED + CI e2e (#281)
Some checks failed
CI / bootstrap (push) Successful in 52s
CI / lint (push) Successful in 2m2s
CI / typecheck (push) Successful in 27s
CI / test (3.12) (push) Failing after 2m53s
CI / test (3.13) (push) Failing after 2m0s
CI / test (3.14) (push) Failing after 1m48s
CI / complexity (push) Successful in 23s
* feat(spec): mobile-first silent enforcement in STACK_REQUIRED + Template C

* feat(ci): frontend-e2e job with Playwright in fullstack cookiecutter

* docs(skills): mention mobile-first in audit, code-standards, project-status tool

* fix(ci): use npm install instead of npm ci + add e2e regression test

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-05 07:05:14 +03:00
Sergey
43975cb593
refactor(scripts): project-status all-WARN non-blocking contract (#277)
* refactor(scripts): project-status all-WARN non-blocking contract

* refactor(skills): parse WARN instead of FAIL in audit and project-template

* test(scripts): update project-status asserts FAIL to WARN, exit code always 0

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-05 06:10:06 +03:00
Sergey
70b8203704
feat(readme): switch support link to /contacts (#270)
* 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>
2026-08-05 03:54:59 +03:00
Sergey
feea1b58d9
feat(skills): feature-spec impact analysis + 8th SDD section (#254)
* feat(skills): feature-spec impact analysis + 8th SDD section

* feat(tools): validate 8th SDD section in create-issue

* test(tools): cover 8th SDD section in create-issue tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-04 13:05:37 +03:00
Sergey
baf6b30547
fix(infra): AST route imports + check_tests structure + check_readme full port (#248)
* feat(infra): AST route imports check in project-status

* feat(infra): check_tests structure + AST stub-detector

* feat(infra): check_readme full port from validateReadme

* refactor(infra): drop validate mode from create-readme tool

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 20:50:04 +03:00
Sergey
1e9ee49a1d
feat(infra): check_pyproject and --repo flag in project-status (#240)
* 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>
2026-08-03 18:36:18 +03:00
Sergey
42c8e2d31e
feat(infra): project-status check oracle and ts wrapper (#233)
* feat(infra): project-status python oracle

* feat(infra): project-status ts wrapper

* feat(infra): project-status deny rules and config

* test(infra): project-status oracle and tool tests

* fix(ci): ruff format project-status.py and tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 15:31:42 +03:00
Sergey
b2329210d5
chore(cleanup): delete docs-reviewer infrastructure (#210)
* chore(cleanup): remove docs-reviewer agent and post-docs-review tool

* chore(cleanup): remove scaffold-handoff, adr-refs check, CI and tests

* chore(cleanup): remove docs/project-map directory

* chore(cleanup): drop docs-reviewer entry and post_docs_review keys from opencode.json

* chore(cleanup): drop docs-reviewer refs from tests, skills and shared tools comment

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-01 04:15:41 +03:00
Sergey
0c1e3e7d39
feat(create-pr): enforce Watch out and Pending headings in PR body (#207)
* 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>
2026-08-01 03:28:35 +03:00
Sergey
4258621def
fix(repo-readme): create mode does not overwrite existing local README (#175)
* 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>
2026-07-31 21:10:29 +03:00
Sergey
1bc8b8ed05
feat(telegram): add telegram-send plugin-tool for Bot API messaging (#174)
* 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>
2026-07-31 20:42:33 +03:00
Sergey
c491b5fad1
fix(issue): align headings with create-issue validation and add SDD sections (#169)
* fix(issue): align headings with create-issue validation and add SDD sections

* docs(issue): add handoff, ADR, and fix CI for SDD validation

* docs(pr-169): fix handoff sections

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 19:42:14 +03:00
Sergey
d2cef94ac9
feat(create-readme): add cover image reference to template and validation (#158)
* feat(create-readme): add cover image reference to template and validation

* feat(repo-readme): extend skill with cover generation + add command

* chore(assets): add opencode brand logo and cover.png

* docs(handoff): scaffold cover-pipeline PR notes

* docs(handoff): set PR number

* docs(project-map): update after cover pipeline structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 23:15:12 +03:00
Sergey
556a5b57eb
fix(create-readme): validate EN switcher anchor symmetrically (#155)
* fix(create-readme): validate EN switcher anchor symmetrically

* docs(handoff): add handoff and ADR for switcher validation

* docs(handoff): set PR number

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 19:57:46 +03:00
Sergey
7330f05055
feat(create-readme): block manual License section and align repo README tagline (#153)
* feat(create-readme): flag manual License section as ERROR

* fix(readme): wrap tagline delimiters and remove License section

* docs(repo-readme): document License check in SKILL.md

* docs(handoff): add handoff and ADR for license-block PR

* docs(handoff): set PR number

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 18:06:15 +03:00
Sergey
6c80eb8458
feat(create-readme): add bilingual tagline and repo_name validation (#151)
* feat(create-readme): add bilingual tagline and repo_name validation

* docs(repo-readme): bilingual tagline + repo_name validation rules

* docs(handoff): add handoff and ADR-064 for bilingual tagline

* docs(handoff): set PR number

* docs(project-map): update after PR#151 bilingual tagline changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 04:50:50 +03:00
Sergey
4bb504a604
fix(create-readme): allow empty quick_start with steps-only Quick Start (#149)
* fix(create-readme): allow empty quick_start with steps-only Quick Start

* docs(handoff): add handoff + ADR for empty-quick-start

* docs(handoff): set PR number

* docs(project-map): update create-readme.ts role for PR#149

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 04:06:52 +03:00
Sergey
8308de0981
feat(create-readme): add clickable steps to Quick Start (#146)
* feat(create-readme): add clickable steps and conditional bash block

* docs(repo-readme): document clickable steps params and example

* docs(handoff): add handoff and ADR for clickable-steps

* docs(handoff): set PR number

* docs(project-map): update create-readme params after PR#146

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 03:07:09 +03:00
Sergey
56b67d2d5c
feat(draw-image): SVG template renderer for on-brand covers (#134)
* feat(draw-image): add SVG template render engine

* feat(draw-image): add opencode plugin and tool tests

* test(draw-image): add vitest unit integration e2e suite

* chore(draw-image): wire CI dependabot docs and ADR

* docs(handoff): set PR number

* docs(handoff): fix PR number placeholder in frontmatter

* fix(ci): use tempfile and trailing newline in draw-image tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 23:42:50 +03:00
Sergey
2a6d6eee2a
feat(create-readme): optional git clone, development block, remove telegram (#130)
* feat(create-readme): add include_clone, development_en/ru, remove telegram

* docs(readme): update SKILL.md template and params for optional clone and development

* docs(readme): add ADR-058, handoff, project map

* docs(handoff): set PR number

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 20:50:52 +03:00
Sergey
1bd089936e
fix(readme): replace GB flag with US flag for English section (#126)
* fix(readme): replace GB flag with US flag for English section

* fix(create-readme): validate US English flag header in validateReadme

* docs(handoff): set PR number

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 18:09:10 +03:00
Sergey
7249f1fcb5
fix(memory): keyword search out-of-box + doctor gaps + tests (#124)
* fix(docker): add system ripgrep via apt for keyword search fallback

* fix(ci): install ripgrep and npm deps for keyword search in CI

* fix(memory-search): warn when ripgrep not resolvable instead of silent skip

* fix(memory-doctor): check rg status, arch mismatch, and require errors

* test(memory): add keyword search and doctor unit tests

* test(memory): unskip e2e keyword tests without RUN_LIVE

* docs(handoff): add handoff and ADR for keyword search fix

* test(memory): remove unused var in keyword search test

* docs(handoff): set PR number to 124

* docs(project-map): update after structural changes (PR#124)

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 17:20:59 +03:00
Sergey
4e926a43a7
fix(readme): russian heading, simplified support, access_url, env username (#118)
* fix(readme): russian heading, simplified support, access_url, env username

* fix(ci): wrap long assert to satisfy ruff E501 in test_permissions.py

* docs(project-map): add PR#118 tags (create-readme, repo-readme, .env.example)

* fix(ci): format test_permissions.py for ruff format check

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 04:56:35 +03:00
Sergey
464fa6ec83
feat(readme): new bilingual standard v2 with features table (#116)
* feat(readme): new bilingual standard v2 with features table

* docs(handoff): rename handoff and ADR to PR number convention

* docs(review): fix ADR-051 section name and add PR#116 refs

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 03:22:28 +03:00
Sergey
7ea12b982d
feat(skills): add repo-readme skill and create-readme tool (#112)
* feat(tools): add create-readme tool

* feat(skills): add repo-readme skill

* docs(handoff): add handoff and ADR

* docs(handoff): set PR number

* docs(project-map): update after structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 01:04:51 +03:00
Sergey
4cf149cb02
docs(memory): reindex + update SKILL.md (#104)
* feat(memory): add OPENAI_EMBEDDING_BATCH_DELAY support

* docs(memory): update SKILL.md for progressive enhancement and auto-setup

* docs(memory): update AGENTS.md tool usage policy

* docs(memory): fix stale snake_case tool references in skills, agents, tools

* docs(handoff): add handoff + ADR for reindex-skill-update

* docs(handoff): set PR number

* refactor(memory): extract _embed_in_batches to satisfy xenon rank A

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 02:08:35 +03:00
Sergey
9d654a2201
chore(memory): remove plugin + setup-memory.sh + Rust artifacts (#103)
* chore(memory): remove plugin block from opencode.json

* chore(memory): remove setup-memory.sh and memory-setup.ts

* chore(memory): remove opencode-memory from Dockerfile

* docs(memory): update AGENTS.md and SKILL.md for new tools

* test(memory): drop tests for removed setup-memory.sh and memory-setup.ts

* docs(handoff): add handoff and ADR-045 for plugin/rust removal

* docs(handoff): set PR number

* docs(project-map): update after plugin/rust removal

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 01:47:26 +03:00
Sergey
45bbdc50f3
feat(memory): 5 TS tools with auto-setup and fallback (#101)
* feat(memory): memory-save tool with auto-setup

* feat(memory): memory-search with keyword and semantic fallback

* feat(memory): memory-list and memory-access tools

* feat(memory): memory-doctor diagnostic tool

* docs(handoff): add handoff and ADR for ts memory tools

* docs(handoff): set PR number

* docs(handoff): finalize pr-101 frontmatter and pending

* docs(project-map): add 5 memory TS tools after PR#101

* refactor(memory): extract shared helpers to _memory-shared.ts

* refactor(memory): split oversized execute functions

* fix(memory): handle git checkout and catch blocks

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 01:12:51 +03:00
Sergey
15fc7d014d
refactor(tools): add repo parameter + shared module + tunnel tests (#65)
* refactor(tools): extract shared module for gh spawnSync logic

* feat(tools): add repo parameter to 5 GitHub tools

* test(tools): add tunnel tool tests

* test(tools): add repo parameter test cases for 5 tools

* docs(handoff): scaffold handoff and ADR for PR

* docs(handoff): set PR number

* docs(project-map): update after PR#65 structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 19:19:19 +03:00
Sergey
f96acaaa75
fix(tools): drop hardcoded --repo in post-review/post-docs-review (#61)
* fix(tools): drop hardcoded --repo in post-review/post-docs-review

* fix(skills): sync run-pipeline templates to use review tools

* fix(agents): add tool failure handling to reviewer/docs-reviewer

* docs(adr): supersede ADR-019 with hardcoded repo removal note

* docs(handoff): scaffold handoff and ADR for PR

* docs(handoff): set PR number

* fix(ci): reformat post-review/post-docs-review test asserts for ruff format

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 03:55:50 +03:00
Sergey
1acac5229f
feat(tools): deterministic review posting tools (post-review, post-docs-review) (#46)
* feat(tools): add post-review and post-docs-review tools

* refactor(agents): use post-review/post-docs-review tools in reviewer and docs-reviewer

* feat(permissions): add post_review and post_docs_review to agent.tools map

* test(tools): add tests for post-review and post-docs-review tools

* docs(handoff): add handoff ADR and project-map for review posting tools

* docs(handoff): set PR number

* docs: fix PR#45→PR#46 refs in project map

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 18:26:48 +03:00
Sergey
1db2c800d4
feat(tools): add commit, create-pr, create-issue tools (#38)
* feat(tools): add commit tool with validation

* feat(tools): add create-pr tool with validation

* feat(tools): add create-issue tool with validation

* test(tools): add tests for validation tools

* docs(handoff): add handoff and ADR for validation tools

* docs(handoff): set PR number

* docs: update project map + fix ADR-015 typo

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 04:17:44 +03:00
Sergey
2b9ee23b49
feat(memory): add memory-setup tool with deterministic init (#36)
* feat(memory): add memory-setup tool and rewrite script

* fix(memory): correct OPENCODE_MEMORY_DIR in docker-compose

* test(memory): add setup-memory tests with mock remote

* docs(memory): add ADR and handoff

* docs(handoff): set PR number

* fix(docs): correct handoff and ADR filenames to PR number

* docs: update project map + handoff + ADR

* fix(memory): address code review comments

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 03:26:16 +03:00
Sergey
efc0827226
feat(tunnel): add cloudflare tunnel toggle tool (#34)
* feat(tunnel): add toggle tool and bash script

* feat(tunnel): add cloudflared to Dockerfile

* docs(tunnel): add ADR and handoff

* docs(handoff): set PR number

* docs: update project map + handoff + ADR

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 02:11:29 +03:00
Sergey
6911a251d3
feat: pipeline-driver rewrite + merge_pr tool (#30)
* feat(tools): add merge_pr TS tool wrapper

* refactor(run-pipeline): replace raw gh pr merge with merge_pr tool

* fix(scripts): update pipeline-status MERGE NEXT action

* docs(handoff): add pr-16 handoff + ADR-010

* fix(handoff): remove dangling ADR-012/ADR-016 references

* docs(handoff): set PR number 30

* docs(project-map): add merge-pr.ts tool (PR#30)

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 00:59:27 +03:00
Sergey
1bd541f172
refactor: commands rename /run-pipeline + /spec (#29)
* refactor: rename /pipeline-driver to /run-pipeline + /spec-driver to /spec

- Rename command + skill dir + skill() ref for both
- Update cross-references in .opencode/ .md files
- pipeline_status / spec_status tool names unchanged (independent)
- Update project-map README

* docs(handoff): add pr-14 handoff + ADR-009

* docs(handoff): set PR number 29

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 00:46:00 +03:00
Sergey
a8f9aa0bc6
feat: migrate .opencode/ config from opencode (#23)
* feat: migrate .opencode/ config from opencode

* refactor: rename repo refs and sanitize for public

* docs(handoff): add pr-7 handoff + ADR-002

* docs(handoff): fix PR number

* docs: update project map with .opencode/ structure

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-23 22:57:39 +03:00