Establish the AI-first base for tesote/seven_zip_ruby - #2
developerz-ai[bot] wants to merge 1 commit into
Conversation
Dz-Task-Id: tsk_70b5f5f18bc9150c721795cb6d2479c5
🟡 Reviewed5 actionable comment(s) · 1 refuted by verification · 10 suppressed (anti-noise) · grounded on your code ⏱ 3m 32s wall clock · 🤖 developerz.ai — automated review, running on your model and your box. |
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
There was a problem hiding this comment.
Review summary — 18 file(s), 5 finding(s).
Critical 0 · Major 1 · Minor 4 · Nit 0
agent-tooling-and-config
Agent-tooling scaffolding for the gem; bin/setup has a set -e bug that aborts install when mise is absent, and the PR's own gate (bin/check) is red at head, so nothing is proven.
concern-api-contract
No public API or stored contract changes; one internal contract mismatch — bin/check does not honor the exit-75 convention the new verify-change skill documents for it.
concern-style-nits
The added docs/scripts are consistent except that verify-change/SKILL.md asserts a pre-commit hook and an exit-75 precondition contract that bin/check and the opt-in hook never implement.
agent-tooling-and-config (handoff)
Onboarding scaffolding is mostly consistent, but bin/setup aborts under set -e on boxes without mise, and the verify-change skill documents exit-code behavior bin/check does not implement; the gate itself is recorded red at head.
No findings from: concern-security (nothing to review: The diff is documentation, workflow scripts and agent configuration. The only credential references (.mcp.json SENTRY_ACCESS_TOKEN, DEVELOPERZ_API_KEY) are env-variable placeholders, not embedded secrets; no executable code touches untrusted input, auth, or privileged operations.), concern-tests.
| File | Findings |
|---|---|
.claude/skills/verify-change/SKILL.md |
3 minor |
.dz/onboarding/scorecard.md |
1 minor |
bin/setup |
1 major |
1 candidate finding(s) refuted by verification (each was judged against the diff and did not hold).
10 lower-signal comment(s) suppressed (anti-noise: 8 duplicate, 1 restated across files, 1 below floor).
Config notes
- test files were not shown to the reviewer — this diff touched no path recognised as a test, so no assertion was available to read the change against
🤖 developerz.ai review — automated, running on your model and your box. What is this?
Reviewed by openrouter/z-ai/glm-5.3-flash on box Azure Mole — 504k in / 13.8k out over 25 calls, ~$0.08 on your key (estimate: list price x reported tokens).
| `bin/check` is the gate. CI runs it and the pre-commit hook runs it, so a change that | ||
| passes it locally passes everywhere. |
There was a problem hiding this comment.
minor · docs This claims 'the pre-commit hook runs it', but the hook in .githooks/pre-commit only runs after git config core.hooksPath .githooks, which a fresh clone has not done — so a change passing locally does not automatically pass a hook everywhere. Say the hook must be activated per clone.
grounded: .claude/skills/verify-change/SKILL.md, ext/p7zip/CPP/Common/TextConfig.cpp:124, ext/p7zip/CPP/Common/TextConfig.cpp … · 🤖 developerz.ai review — automated, what is this?
| red. Exit 1 cannot carry that difference, so one code is reserved: | ||
|
|
||
| | Exit | Means | What the platform does | | ||
| |------|-------|------------------------| | ||
| | 0 | the change passes | commit it | | ||
| | 75 | a resource the gate NEEDS is unreachable (a database, a service, a credential) — it refused to grade | refuse the commit, and blame the environment, never the change | | ||
| | any other non-zero | the gate ran and the change is red | refuse the commit, and blame the change | |
There was a problem hiding this comment.
minor · docs The skill mandates bin/check reserve exit 75 for unreachable resources and guard preconditions first, but bin/check (bin/check:3-5) is plain set -euo pipefail with no 75 path, so the documented contract is unimplemented. Either add the guard to bin/check or reword the skill as aspirational. Also at .claude/skills/verify-change/SKILL.md:26.
grounded: ext/p7zip/CPP/7zip/Archive/7z/7zIn.h:61, ext/p7zip/CPP/7zip/Archive/7z/7zIn.cpp:1068, ext/p7zip/CPP/Common/MyVector.cpp:36 … · 🤖 developerz.ai review — automated, what is this?
| | 75 | a resource the gate NEEDS is unreachable (a database, a service, a credential) — it refused to grade | refuse the commit, and blame the environment, never the change | | ||
| | any other non-zero | the gate ran and the change is red | refuse the commit, and blame the change | | ||
|
|
||
| - Guard preconditions FIRST and `exit 75` when one is unmet. `exit 1` there tells the |
There was a problem hiding this comment.
minor · docs The skill mandates that bin/check exit 75 on unmet preconditions, but bin/check (lines 1-5) has no precondition guard and can only exit 0 or the failing command's code, so the documented contract is never met. Either add the guard to bin/check or drop the 75 row from this table.
grounded: .claude/skills/verify-change/SKILL.md, ext/p7zip/CPP/7zip/Common/StreamBinder.cpp:24, ext/p7zip/CPP/7zip/Common/StreamBinder.cpp … · 🤖 developerz.ai review — automated, what is this?
| ## `gate_proved` — unprovable | ||
|
|
||
| - ./bin/check at head: red, exit 1 (70.6s) |
There was a problem hiding this comment.
minor · completeness This PR merges the repo's onboarding config while its own scorecard records gate_proved: unprovable — bin/check exited 1 at head (spec aborted with 'Interrupted'), so the gate these files declare is not proven green. Per reviewer.md the multi_thread timing spec is a known flake; re-run bin/check and update the scorecard (or note the flake as the cause) so the merged record is accurate.
grounded: .dz/onboarding/scorecard.md, ext/p7zip/CPP/Common/MyWindows.h:70, ext/p7zip/CPP/7zip/Archive/Zip/ZipHandlerOut.cpp … · 🤖 developerz.ai review — automated, what is this?
| # one-command setup — established by dz-runner setup mode. One command; adjust as the repo grows. | ||
| set -euo pipefail | ||
| cd "$(dirname "$0")/.." | ||
| command -v mise >/dev/null && mise install |
There was a problem hiding this comment.
major · bug With set -e, the line command -v mise >/dev/null && mise install exits the script non-zero when mise is absent, so bundle install never runs on machines without mise — the very case the guard is for. Make it an if-statement so mise being missing is a no-op.
| command -v mise >/dev/null && mise install | |
| if command -v mise >/dev/null; then | |
| mise install | |
| fi | |
| bundle install |
grounded: ext/p7zip/CPP/7zip/Archive/7z/7zIn.cpp:157, ext/p7zip/CPP/7zip/Archive/7z/7zIn.cpp, ext/p7zip/CPP/7zip/Archive/Udf/UdfIn.cpp … · 🤖 developerz.ai review — automated, what is this?
This pull request establishes the base an AI coding agent needs to work well in
tesote/seven_zip_ruby.Stack
Detected Ruby + Bundler from the repository's own files.
Established
bin/setup— 4. scripts that workbin/dev— 4. scripts that workbin/check— 4. scripts that workCLAUDE.md— 1. a brain.claude/agents/native-glue.md— 2. a specialist roster.claude/agents/archive-api.md— 2. a specialist roster.claude/skills/verify-change/SKILL.md— 3. project skills.claude/skills/build-native-extension/SKILL.md— 3. project skillsAGENTS.mddocs/README.md.claude/commands/planx.md— 9. workflow commands.claude/commands/feature.md— 9. workflow commands.githooks/pre-commit— 4. scripts that work.mcp.json— 5. agent wiring.dz/maintainer/maintainer.yml— 0. the repo policy.dz/maintainer/reviewer.md— 0. the repo policy.dz/onboarding/scorecard.mdLeft alone
These already existed and are yours — nothing here was rewritten, reordered or reflowed:
.github/workflows/ci.yml— 4. scripts that work.gitignoreVerification
The gate this pull request declares, run on the box that wrote it:
bin/setupthenbin/check, before these changes (base) and after them (head).Proof: unprovable —
bin/checkdid not run green at head on this box. Nothing in the repository’s own code was changed to force it; the excerpt below is the record.Scorecard
10 of 15 items ok. The whole card, with every piece of evidence, is
.dz/onboarding/scorecard.md.policy— ok — .dz/maintainer/maintainer.yml establishedbrain— ok — CLAUDE.md establishedroster— ok — .claude/agents/native-glue.md establishedskills— ok — .claude/skills/verify-change/SKILL.md establishedscripts— ok — bin/setup establishedwiring— ok — .mcp.json establishedcommands— ok — .claude/commands/planx.md establishedaccess— gap — asked for 0 credentialslayout— gap — migration to the house layout filed as taskssmoke_test— unprovable — spec/seven_zip_ruby_spec.rb in the repositoryenv_example— gap — nothing recordedagents_md— ok — AGENTS.md establishedper_workspace_brains— ok — single-package repository: 0 workspacesdocs_readme— ok — docs/README.md establishedgate_proved— unprovable — ./bin/check at head: red, exit 1 (70.6s)First tasks
Queued from what this pass found, and none of them runs before this merges:
Merging
This rewrites how agents read your repo, on a repo the platform has not worked before,
so it is yours to merge — not the bot's. Merging it is also what marks the repo
onboarded; until then coding tasks on it are held (issue triage, PR review and
report-only tasks are unaffected).
🤖 Opened by developerz.ai for task
tsk_70b5f5f18bc9150c721795cb6d2479c5on tesote/seven_zip_ruby.Raised automatically by the
repo-onboardinglane, from an interactive repository setup session.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.