Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,10 @@ jobs:
Fix every item (a conflict with main: `git merge origin/main`, resolve). An item you judge wrong: skip it and say why.
Never edit `.github/workflows/` (the CI token may not push it): skip such items, "needs a human: workflow file".
Then `python3 -m unittest discover -s tests` and `python3 tools/metrics.py --check` green, commit (CI pushes).
Title or body at fault: `gh pr edit ${{ env.PR }} --title/--body` (English, CLAUDE.md).
Finally `gh pr comment ${{ env.PR }}` — one line per item: fixed / skipped and why (never start it with `VERDICT:`).
claude_args: >-
--allowedTools "Read,Edit,Write,Glob,Grep,Bash(python3 -m unittest:*),Bash(python3 tools/metrics.py:*),Bash(git add:*),Bash(git commit:*),Bash(git diff:*),Bash(git status:*),Bash(git log:*),Bash(git merge:*),Bash(git fetch:*),Bash(ls:*),Bash(wc:*),Bash(gh pr diff:*),Bash(gh pr comment:*)"
--allowedTools "Read,Edit,Write,Glob,Grep,Bash(python3 -m unittest:*),Bash(python3 tools/metrics.py:*),Bash(git add:*),Bash(git commit:*),Bash(git diff:*),Bash(git status:*),Bash(git log:*),Bash(git merge:*),Bash(git fetch:*),Bash(ls:*),Bash(wc:*),Bash(gh pr diff:*),Bash(gh pr comment:*),Bash(gh pr edit:*)"
- name: bundle the new commits
id: bundle
if: steps.gate.outputs.branch != ''
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Changelog

## 44
- `harness-retro` writes friction titles and `--why` in English, because `contribute` sends them to the public hub as PR titles and bodies (a PR arrived in Russian). The CI rework agent may fix a PR's title and body (`gh pr edit`). The `code_lines` and `prompt_tokens` budgets are re-based to main's measured values (6024 and 7035). Main had drifted to the edge of the 2% tolerance, so every PR crossed it and rework argued over the budget.

## 42
- When main changes `.github/workflows`, open PRs no longer stall waiting for their authors. With an owner-made `DPCLI_PUSH_TOKEN` secret (`workflows` scope), `tools/sync.py` pushes the merge of main itself. Without it, the PR goes back to its author as before.

Expand Down
2 changes: 1 addition & 1 deletion lib/dpcli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
else in the current copy. Exit codes: 0 ok, 1 error/check failed, 2 arguments.
"""

VERSION = 42 # bump on every change: older copies re-exec from the main copy (reexec.maybe_reexec)
VERSION = 44 # bump on every change: older copies re-exec from the main copy (reexec.maybe_reexec)
2 changes: 1 addition & 1 deletion skills/harness-retro/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: "Review the {{project}} process (harness) — cluster frictions wit
Cheap: one session, no subagents, only the commands below. Don't read project code.

1. **State.** `{{cli}} update --prs-only`, `{{cli}} feedback` — clusters F-n (open / fixed, `⚠N after fix` = the fix did not work) and unclustered frictions by topic. `{{cli}} stats` — rework rounds, created→accepted, slow checks. `python3 .claude/skills/harness-retro/cost.py --since <YYYY-MM-DD>` — tokens: alarming if the main session's average context > 200k or Opus runs outside the models table.
2. **Cluster.** For a recurring topic (≥ 2) read `{{cli}} feedback show <topic>`, then `{{cli}} feedback new "<anonymized title>" --match "<regex>" --scope project|dpcli --why "<one line>"`. Scope `project` — specific to this codebase or team (fixed in `.dpcli-local/`); `dpcli` — would hurt any project (fixed in dpcli itself). Titles never contain project names, paths or quotes.
2. **Cluster.** For a recurring topic (≥ 2) read `{{cli}} feedback show <topic>`, then `{{cli}} feedback new "<anonymized title>" --match "<regex>" --scope project|dpcli --why "<one line>"`. Scope `project` — specific to this codebase or team (fixed in `.dpcli-local/`); `dpcli` — would hurt any project (fixed in dpcli itself). Titles and `--why` in English (dpcli ones reach the public hub), never with project names, paths or quotes.
3. **Pick** ≤ 3, most frequent/expensive first: `F-n ×count [scope] → change (file) → gain/cost`.
4. **Apply.**
- project: edit `.dpcli-local/` (`workflow.md`, `claude-md.md`, `agents/<name>.append.md`, `skills/`), `{{cli}} init`, commit `.dpcli-local/ .claude/ CLAUDE.md`, then `{{cli}} feedback fix F-n --where .dpcli-local/<file>`;
Expand Down
4 changes: 2 additions & 2 deletions tools/budgets.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"code_lines": 5906,
"prompt_tokens": 6898,
"code_lines": 6024,
"prompt_tokens": 7035,
"prompt_max": 3236,
"duplicate_windows": 0,
"risky": {
Expand Down
Loading