refactor: Forgejo-only task suite; drop taskpy #10

Merged
jerome merged 10 commits from refactor/fj-only into main 2026-06-26 13:26:02 +03:00
Owner

Goal: Make these skills specific to the homelab Forgejo setup -- one task suite, Forgejo-only, with no skill or reference file over 500 lines.

Value: med
Effort: half-day


Why

Every repo here is on Forgejo (fj), so the cross-forge machinery (GitHub gh / Forgejo detection + paired command branches) in the task suites was dead weight. The taskpy suite was a verbose near-duplicate of task -- which is already language-agnostic (it reads a ## Toolchain block from CLAUDE.md/AGENTS.md). Consolidated to one Forgejo-only task suite, moved the genuinely Python-specific bits into a per-language reference, capped every file at 500 lines, and -- per review feedback -- name the forgejo-cli skill once per file with intent-based steps.


Steps

  • Drop the taskpy plugin; fold Python specifics into task-implement/languages/python.md (per-language reference; other languages get a sibling file). Point the marketplace registry + README at task.
  • Wire the task skills to the per-language reference (the Toolchain-scaffold step in task-implement).
  • Make the task suite Forgejo-only: remove forge-detection, the gh command branches, GitHub-only concepts (--draft, gh auth, the GitLab/Bitbucket "manual" fallbacks), and the forge/forge_cli fields. Files: task-new, task-implement (SKILL + flow + worktree-and-branches), task-orchestrate (SKILL + test-fix-loop), task-review.
  • Name the forgejo-cli skill once per file; the steps express intent (not fj commands), including auth.
  • Reword the lone gh api aside in forgejo-cli/agents/fj-worker.md.
  • Update the task plugin.json + registry descriptions to Forgejo-only.
  • Every skill + reference file <= 500 lines (task-orchestrate 518 -> 493); ASCII-only; no gh / GitHub anywhere.

Notes

Review-driven refinements (from the inline PR comments): python.md points at the repo's own config (pyproject.toml / README / CLAUDE.md) instead of prescribing a package manager or commands; the forgejo-cli skill is named once per skill with intent-based steps rather than on every operation; fj auth is folded into "the forgejo-cli skill owns the fj mechanics (including auth)."

Out of scope: no gh_write.py (GitHub dropped entirely); no test framework (matches repo posture).

**Goal:** Make these skills specific to the homelab Forgejo setup -- one task suite, Forgejo-only, with no skill or reference file over 500 lines. **Value:** med **Effort:** half-day --- ## Why Every repo here is on Forgejo (`fj`), so the cross-forge machinery (GitHub `gh` / Forgejo detection + paired command branches) in the task suites was dead weight. The `taskpy` suite was a verbose near-duplicate of `task` -- which is already language-agnostic (it reads a `## Toolchain` block from CLAUDE.md/AGENTS.md). Consolidated to one Forgejo-only `task` suite, moved the genuinely Python-specific bits into a per-language reference, capped every file at 500 lines, and -- per review feedback -- name the forgejo-cli skill once per file with intent-based steps. --- ## Steps - [x] Drop the `taskpy` plugin; fold Python specifics into `task-implement/languages/python.md` (per-language reference; other languages get a sibling file). Point the marketplace registry + README at `task`. - [x] Wire the `task` skills to the per-language reference (the Toolchain-scaffold step in task-implement). - [x] Make the `task` suite Forgejo-only: remove forge-detection, the `gh` command branches, GitHub-only concepts (`--draft`, `gh auth`, the GitLab/Bitbucket "manual" fallbacks), and the `forge`/`forge_cli` fields. Files: task-new, task-implement (SKILL + flow + worktree-and-branches), task-orchestrate (SKILL + test-fix-loop), task-review. - [x] Name the `forgejo-cli` skill once per file; the steps express intent (not `fj` commands), including auth. - [x] Reword the lone `gh api` aside in `forgejo-cli/agents/fj-worker.md`. - [x] Update the `task` plugin.json + registry descriptions to Forgejo-only. - [x] Every skill + reference file <= 500 lines (task-orchestrate 518 -> 493); ASCII-only; no `gh` / GitHub anywhere. --- ## Notes Review-driven refinements (from the inline PR comments): `python.md` points at the repo's own config (pyproject.toml / README / CLAUDE.md) instead of prescribing a package manager or commands; the `forgejo-cli` skill is named once per skill with intent-based steps rather than on every operation; `fj` auth is folded into "the forgejo-cli skill owns the `fj` mechanics (including auth)." Out of scope: no `gh_write.py` (GitHub dropped entirely); no test framework (matches repo posture).
refactor: drop the taskpy plugin; fold Python into task languages/python.md
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
359f6ca27d
The task suite is already language-agnostic (it reads a ## Toolchain block
from CLAUDE.md/AGENTS.md). taskpy duplicated that flow more verbosely. Move
the genuinely Python-specific bits -- package-manager detection, toolchain
defaults, and per-phase gotchas -- into task-implement/languages/python.md, a
per-language reference (other languages get a sibling file), and delete the
taskpy plugin. Point the marketplace registry + README at task, not taskpy.
Wiring the reference into the task skills follows in later commits.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor: make task-new Forgejo-only
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
b306e0da99
Drop the forge-detection table, the gh command branches, and GitHub-only concepts (--draft, gh auth, manual/other-forge fallbacks). Every PR/issue read/write goes through the forgejo-cli skill (fj_read.py / fj_write.py).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jerome force-pushed refactor/fj-only from b306e0da99
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
to 8fa1da238d
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
2026-06-26 12:48:08 +03:00
Compare
docs(python ref): read the toolchain from the repo, don't prescribe it
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
99b50178a9
Drop the hardcoded package-manager + command tables. The repo declares its own toolchain (## Toolchain block in CLAUDE.md/AGENTS.md, pyproject.toml, tox/nox/Makefile, README); the reference now points there and keeps only the Python behavioral gotchas (read-only implement, venv isolation, lockfile churn).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ -392,3 +330,1 @@
write the appended body to a tmp file and edit it with `fj_write.py
issue-body <umbrella> --body-file <path>`). Don't duplicate a row that
already lists this slug (resuming).
<PR title>` to `## Linked PRs`, write it back: invoke the `forgejo-cli`
Author
Owner

forgejo cli is mentioned toooo many times in this file, just mention the skill once, it should not be needed this many times, just call the skill in an agent with what you want to do, and the rest should come from the skill

forgejo cli is mentioned toooo many times in this file, just mention the skill once, it should not be needed this many times, just call the skill in an agent with what you want to do, and the rest should come from the skill
refactor: make task-implement Forgejo-only; wire languages/python.md
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
858820db5f
Drop forge detection, the gh command branches, and the manual/other-forge fallbacks; every PR/issue op goes through the forgejo-cli skill. The Toolchain-scaffold step now points at languages/<lang>.md for where a language declares its toolchain + per-language gotchas. Drop the forge/forge_cli fields from IMPLEMENT_TASK_RESULT (always Forgejo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(task-new): name the forgejo-cli skill once; steps express intent
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
00f104b98e
Per review feedback: the skill was named on nearly every PR/issue step. State once (Step 1) that all PR/issue ops go through the forgejo-cli skill, then have the steps describe intent (add the label, open the draft PR, rewrite the body) and let that skill own the fj mechanics.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(task-implement): Forgejo-only + name the forgejo-cli skill once
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
fb04415e6f
Drop forge detection, the gh branches, manual fallbacks, and the per-step forgejo-cli mentions. Step 1d states once that all PR/issue ops go through the forgejo-cli skill; the steps + flow nodes now express intent. Wire languages/python.md for toolchain scaffolding.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove every GitHub branch (gh commands, GitHub:/Forgejo: line pairs,
--draft) and the forge_cli field; the repo is always Forgejo. State the
forgejo-cli skill once per file as the canonical Forge note and let the
steps express intent only. The human-merge command stays concrete
(fj pr merge ... for the human to run).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor(task-review): Forgejo-only; name the forgejo-cli skill once
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
cf90279ade
Drop the forge-detection step and every GitHub branch (gh commands,
GitHub:/Forgejo: line pairs, gh pr ready). State the forgejo-cli skill
once as the canonical Forge note in Inputs; the steps now express intent
only. Step numbering 1-11 preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor: fold fj auth into the forgejo-cli skill
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
a35945a5c5
Auth is an fj mechanic too, so the task skills shouldn't spell out fj whoami / fj auth add-key. The canonical Forge note now says the forgejo-cli skill owns the fj mechanics including auth; drop the explicit auth commands and the stale manual-fallback mistake row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor: Forgejo-only task plugin description; drop gh-api aside
All checks were successful
gitleaks / gitleaks (pull_request) Successful in 4s
4efe6997fc
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jerome changed title from WIP: refactor: Forgejo-only task suite; drop taskpy to refactor: Forgejo-only task suite; drop taskpy 2026-06-26 13:16:21 +03:00
Author
Owner

Forgejo-only refactor complete and marked ready.

  • Deleted the taskpy plugin; one task suite remains. Python specifics moved to task-implement/languages/python.md -- a per-language reference that points at the repo's own pyproject / README / CLAUDE.md rather than prescribing a package manager or commands.
  • The task suite is Forgejo-only: no gh, no forge-detection, no --draft / forge_cli / manual fallbacks.
  • The forgejo-cli skill is named once per file; every step expresses intent (including auth), not fj commands.
  • Every skill + reference file is <= 500 lines (task-orchestrate 518 -> 493); ASCII-only; registry + README + plugin.json updated.

Verified clean: no gh / GitHub anywhere, marketplace + plugin JSON valid. Ready for review + merge.

Forgejo-only refactor complete and marked ready. - Deleted the `taskpy` plugin; one `task` suite remains. Python specifics moved to `task-implement/languages/python.md` -- a per-language reference that points at the repo's own pyproject / README / CLAUDE.md rather than prescribing a package manager or commands. - The `task` suite is Forgejo-only: no `gh`, no forge-detection, no `--draft` / `forge_cli` / manual fallbacks. - The `forgejo-cli` skill is named once per file; every step expresses intent (including auth), not `fj` commands. - Every skill + reference file is <= 500 lines (task-orchestrate 518 -> 493); ASCII-only; registry + README + plugin.json updated. Verified clean: no `gh` / GitHub anywhere, marketplace + plugin JSON valid. Ready for review + merge.
jerome merged commit ee4599106b into main 2026-06-26 13:26:02 +03:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
public/chiche-plugins!10
No description provided.