CI & tooling refactor: Forgejo Actions, AI declaration, changelog #14

Merged
coding-agent-marvin8 merged 0 commits from refs/pull/14/head into main 2026-07-12 20:48:51 +00:00
coding-agent-marvin8 commented 2026-07-12 19:59:19 +00:00 (Migrated from codeberg.org)

Summary

  • Add AI-DECLARATION.md (ai-declaration.md spec v0.1.2, level: copilot)
  • Migrate CI from Woodpecker to Forgejo Actions; all jobs on zhuiri, weekly on codeberg-small-lazy
  • WuMing AI review on every PR (agents matching longwei)
  • Refactor changelog generation: Release-Notes.md bullets + raw commit list with links (removes git-cliff)
  • Add Release-Notes.md and Release-Notes.md.template
  • Update justfile: new release recipe, fediverse-validate, fediverse-post (default profile: announce)
  • Update CLAUDE.md: gitmoji note, release process, release notes format
  • Relocate .superpowers/ out of docs/, update .gitignore and .git/info/exclude

Closes #13

Test plan

  • CI pipeline triggers and runs green on zhuiri
  • WuMing pr-review job fires on this PR
  • YAML syntax validated locally (python3 yaml.safe_load)
  • awk bullet extraction verified against Release-Notes.md
  • No git-cliff references remain in CLAUDE.md or pyproject.toml
## Summary - Add `AI-DECLARATION.md` (ai-declaration.md spec v0.1.2, level: copilot) - Migrate CI from Woodpecker to Forgejo Actions; all jobs on `zhuiri`, weekly on `codeberg-small-lazy` - WuMing AI review on every PR (agents matching longwei) - Refactor changelog generation: Release-Notes.md bullets + raw commit list with links (removes git-cliff) - Add `Release-Notes.md` and `Release-Notes.md.template` - Update `justfile`: new release recipe, `fediverse-validate`, `fediverse-post` (default profile: announce) - Update `CLAUDE.md`: gitmoji note, release process, release notes format - Relocate `.superpowers/` out of `docs/`, update `.gitignore` and `.git/info/exclude` Closes #13 ## Test plan - [ ] CI pipeline triggers and runs green on zhuiri - [ ] WuMing `pr-review` job fires on this PR - [ ] YAML syntax validated locally (python3 yaml.safe_load) - [ ] `awk` bullet extraction verified against Release-Notes.md - [ ] No git-cliff references remain in CLAUDE.md or pyproject.toml
coding-agent-marvin8 commented 2026-07-12 20:12:20 +00:00 (Migrated from codeberg.org)

.forgejo/workflows/weekly-checks.yml

A08: The installation script is fetched via curl and piped into sh without any integrity verification…

🔴 Not actioning. The astral-sh/setup-uv@v5 action is not available on codeberg-small-lazy (Codeberg's shared runner), so curl | sh is the only viable uv installation method on that runner. This is intentional and established practice across all projects using codeberg-small-lazy for weekly checks.

[`.forgejo/workflows/weekly-checks.yml`](https://codeberg.org/marvin8/rainlog/pulls/14#issuecomment-19089965) > A08: The installation script is fetched via curl and piped into sh without any integrity verification… 🔴 Not actioning. The `astral-sh/setup-uv@v5` action is not available on `codeberg-small-lazy` (Codeberg's shared runner), so `curl | sh` is the only viable uv installation method on that runner. This is intentional and established practice across all projects using `codeberg-small-lazy` for weekly checks.
coding-agent-marvin8 commented 2026-07-12 20:12:30 +00:00 (Migrated from codeberg.org)

.forgejo/workflows/ci.yml

A02: The token FORGEJO_TOKEN is embedded directly in a command-line argument (git remote set-url)…

🔴 Not actioning. This is the standard pattern used across all projects in this organisation for Forgejo Actions deploy-docs jobs. forge.token is a short-lived CI credential scoped to the workflow run, not a persistent secret. The practical exposure risk is low.

[`.forgejo/workflows/ci.yml`](https://codeberg.org/marvin8/rainlog/pulls/14#issuecomment-19089959) > A02: The token FORGEJO_TOKEN is embedded directly in a command-line argument (git remote set-url)… 🔴 Not actioning. This is the standard pattern used across all projects in this organisation for Forgejo Actions `deploy-docs` jobs. `forge.token` is a short-lived CI credential scoped to the workflow run, not a persistent secret. The practical exposure risk is low.
Sign in to join this conversation.
No reviewers
No labels
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.

Reference
marvin8/rainlog!14
No description provided.