git push no-mistakes
This report summarizes scanner evidence for kunchenguid/no-mistakes, a Go project with 9,070 GitHub stars. SynthScan examined 384,740 lines of code across 1251 source files, recording 675 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 538 finding(s).
Are imports declared and package/API names verified? 132 finding(s).
Are wrappers, guards, and repeated structures necessary? 6 finding(s).
Which changes need focused human review? 675 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 675 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | workflow_ci_windows_leg_test.go | 21 | // thousands of git.exe invocations, and Defender real-time scanning taxes every | COMMENT |
| LOW | workflow_no_mistakes_required_test.go | 21 | "github.com/kunchenguid/no-mistakes/internal/types" | COMMENT |
| LOW | workflow_no_mistakes_required_test.go | 41 | COMMENT | |
| LOW | workflow_no_mistakes_required_test.go | 141 | COMMENT | |
| LOW | workflow_no_mistakes_required_test.go | 481 | COMMENT | |
| LOW | .no-mistakes.yaml | 1 | # no-mistakes' own dogfood config. | COMMENT |
| LOW | cmd/genskill/main.go | 1 | // Command genskill renders the canonical no-mistakes SKILL.md from the | COMMENT |
| LOW | cmd/fakeagent/conversation.go | 1 | package main | COMMENT |
| LOW | cmd/fakeagent/scenario.go | 21 | type Scenario struct { | COMMENT |
| LOW | cmd/fakeagent/scenario.go | 41 | StructuredRaw string `yaml:"structured_raw,omitempty"` | COMMENT |
| LOW | cmd/fakeagent/scenario.go | 61 | COMMENT | |
| LOW | cmd/fakeagent/main.go | 1 | // fakeagent is a deterministic stand-in for the real Claude, Codex, Grok, | COMMENT |
| LOW | cmd/recordfixture/opencode.go | 21 | // the same way no-mistakes does: open SSE, POST /session, POST a message, | COMMENT |
| LOW | cmd/recordfixture/main.go | 1 | // recordfixture captures real agent CLI output as fixture files for the | COMMENT |
| LOW | cmd/genwinres/main.go | 1 | // Command genwinres renders the Windows resource objects that embed the | COMMENT |
| LOW | internal/cimonitor/cimonitor.go | 1 | // Package cimonitor is the single source of truth for the CI monitor's | COMMENT |
| LOW | internal/cimonitor/cimonitor.go | 21 | // ChecksPassedMsg is logged when every CI check has passed but the PR is | COMMENT |
| LOW | internal/cimonitor/cimonitor.go | 41 | // the run then finishes like any other green run. | COMMENT |
| LOW | internal/pipeline/agent_run.go | 121 | return result, nil | COMMENT |
| LOW | internal/pipeline/agent_run.go | 141 | // one of them: launching proves the binary ran, not that it is doing | COMMENT |
| LOW | internal/pipeline/gate_response.go | 21 | Fixed []string | COMMENT |
| LOW | internal/pipeline/gate_response.go | 101 | // Declines are explicit: every finding the gate shows must appear in | COMMENT |
| LOW | internal/pipeline/findings.go | 561 | // the round's own output (thisRoundRaw) neither re-reports the defect nor | COMMENT |
| LOW | internal/pipeline/findings.go | 661 | // mergeOutstandingFindingsJSON merges one review round's output into the | COMMENT |
| LOW | internal/pipeline/findings.go | 821 | // It is the one narrow exception to the append-only rule the rest of this file | COMMENT |
| LOW | internal/pipeline/findings.go | 881 | // nothing - it used to clear any carried finding whose file the finalize turn | COMMENT |
| LOW | internal/pipeline/sessions.go | 21 | COMMENT | |
| LOW | internal/pipeline/executor_answer_trigger_test.go | 121 | COMMENT | |
| LOW | internal/pipeline/executor_answer_trigger_test.go | 161 | t.Fatalf("run status = %s, want %s: an out-of-scope answer must fail closed", got.Status, types.RunFailed) | COMMENT |
| LOW | internal/pipeline/decisions.go | 1 | package pipeline | COMMENT |
| LOW | internal/pipeline/decisions.go | 41 | // BindPreviousRunReviewRounds loads the review rounds of the most recent other | COMMENT |
| LOW | internal/pipeline/pipeline.go | 41 | DB *db.DB | COMMENT |
| LOW | internal/pipeline/pipeline.go | 61 | // Fixing, and both answer paths do set both: a question may be asked by a | COMMENT |
| LOW | internal/pipeline/pipeline.go | 81 | // started the current fix round. Only then do DeferredFindings hold | COMMENT |
| LOW | internal/pipeline/pipeline.go | 101 | // IntentSource records the provenance of UserIntent so steps can weigh | COMMENT |
| LOW | internal/pipeline/pipeline.go | 121 | // user made about this branch keeps standing until the branch's run history | COMMENT |
| LOW | internal/pipeline/pipeline.go | 141 | CIReadinessChanged func(ready, declaredNoCI bool) | COMMENT |
| LOW | internal/pipeline/pipeline.go | 161 | // never fix. | COMMENT |
| LOW | internal/pipeline/pipeline.go | 221 | // DurationOverrideMS, when positive, replaces the wall-clock duration | COMMENT |
| LOW | internal/pipeline/pipeline.go | 241 | // result completes the step through the normal success path; false or an error | COMMENT |
| LOW | internal/pipeline/pipeline.go | 261 | // fail closed, and must be certain the action belongs to THIS gate: a gate | COMMENT |
| LOW | internal/pipeline/review_carry_forward_test.go | 701 | // TestExecutor_ReviewCarryForward_AnAnswerRoundWithdrawsByName covers the round | COMMENT |
| LOW | internal/pipeline/review_carry_forward_test.go | 1021 | if kept == nil || kept.File != "service.go" { | COMMENT |
| LOW | internal/pipeline/review_carry_forward_test.go | 1201 | // TestExecutor_ReviewCarryForward_AnAnswerRoundDoesNotCarryItsOwnQuestions | COMMENT |
| LOW | internal/pipeline/review_carry_forward_test.go | 1441 | // stamped onto the payload it persists, and a later round that retracted | COMMENT |
| LOW | internal/pipeline/helpers_test.go | 61 | } | COMMENT |
| LOW | internal/pipeline/shared.go | 1 | package pipeline | COMMENT |
| LOW | internal/pipeline/protected_paths.go | 61 | // true of `axi` and false of the TUI. A shared predicate is what makes a third | COMMENT |
| LOW | internal/pipeline/executor.go | 261 | _, err := e.RespondWithOverrides(step, action, findingIDs, nil, nil, nil, "") | COMMENT |
| LOW | internal/pipeline/executor.go | 281 | // | COMMENT |
| LOW | internal/pipeline/executor.go | 681 | fixing bool | COMMENT |
| LOW | internal/pipeline/executor.go | 961 | state.coverageRound = response.coverageRound | COMMENT |
| LOW | internal/pipeline/executor.go | 1361 | // roundNum is shared with the perf wrapper's round closure below: an | COMMENT |
| LOW | internal/pipeline/executor.go | 1381 | outstandingFindings = state.outstandingFindings | COMMENT |
| LOW | internal/pipeline/executor.go | 1521 | // Every step, not just review: the steps that used to re-apply a declined | COMMENT |
| LOW | internal/pipeline/executor.go | 1621 | // roundFindings is this round's own output, used for the auto-fix | COMMENT |
| LOW | internal/pipeline/executor.go | 2021 | if stepName == types.StepCI && !stepSkipped && ciReadyNoCIOnCompletion != nil { | COMMENT |
| LOW | internal/pipeline/executor.go | 2121 | // round comes back parked on the same round with the decision recorded and | COMMENT |
| LOW | internal/pipeline/executor.go | 2221 | // | COMMENT |
| LOW | internal/pipeline/executor.go | 2581 | COMMENT | |
| 465 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/pipeline/helpers_test.go | 355 | execGit(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/push_test.go | 306 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/push_test.go | 364 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/push_test.go | 492 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_bitbucket_test.go | 204 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_bitbucket_test.go | 276 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_bitbucket_test.go | 358 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 26 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 98 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 310 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 390 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 463 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 517 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 584 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_commit_test.go | 646 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/review_base_branch_test.go | 25 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | …ernal/pipeline/steps/ci_carry_review_on_replay_test.go | 364 | gitCmd(t, other, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/memory_files_test.go | 92 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/memory_files_test.go | 219 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/memory_files_test.go | 286 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/memory_files_test.go | 362 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/ci_decision_history_test.go | 57 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 27 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 105 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 167 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 269 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 334 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 388 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 448 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 505 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 580 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 627 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_test.go | 680 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 85 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 101 | gitCmd(t, updater, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 166 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 179 | gitCmd(t, workDir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 242 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 253 | gitCmd(t, workDir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 321 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/upstream_test.go | 334 | gitCmd(t, replay, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 68 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 93 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 115 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 132 | gitCmd(t, updater, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 174 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 192 | gitCmd(t, updater, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 227 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 240 | gitCmd(t, workDir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 273 | gitCmd(t, seed, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/common_test.go | 290 | gitCmd(t, updater, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_local_default_test.go | 31 | gitCmd(t, working, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_local_default_test.go | 52 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_local_default_test.go | 122 | gitCmd(t, working, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_local_default_test.go | 138 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/rebase_local_default_test.go | 184 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/evidence_publish_test.go | 33 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/forcepush_decision_test.go | 23 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/pr_test.go | 319 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| LOW | internal/pipeline/steps/pr_test.go | 2429 | gitCmd(t, dir, "config", "user.email", "test@test.com") | CODE |
| 71 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/config/config.go | 1689 | # only). no-mistakes maps these down to whatever the harness actually uses: | COMMENT |
| MEDIUM | internal/config/config.go | 1694 | # minimal, low, medium, high, xhigh, max; a harness rejects any level it does not | COMMENT |
| MEDIUM | internal/agent/codex.go | 243 | // anyway) but completes the contract and is robust to future sandbox | COMMENT |
| MEDIUM | internal/cli/attach.go | 102 | // seamless rather than flashing the pre-wizard terminal. | COMMENT |
| MEDIUM | internal/cli/wizard.go | 30 | // alt screen and the handoff to the attach TUI is seamless. | COMMENT |
| MEDIUM | internal/daemon/service_launchd.go | 112 | // progress". Match both exit status and message text so we remain robust | COMMENT |
| MEDIUM | internal/scm/gitea/gitea_test.go | 283 | // `tea pulls create` has no --output json flag; the robust path is to | COMMENT |
| MEDIUM | internal/scm/gitea/gitea.go | 316 | // tea 0.x's pulls create has no --output json flag, so the robust path is | COMMENT |
| MEDIUM | docs/package-lock.json | 7601 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | internal/e2e/testdata/tui_yolo_driver.py | 47 | except ProcessLookupError: | CODE |
| HIGH | .github/actions/require-no-mistakes/verify.py | 175 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/tui/box.go | 17 | // Per DESIGN.md Diff View: ╰──── ↓ 23 more lines (j/k) ─────────────╯ | COMMENT |
| MEDIUM | internal/tui/box.go | 77 | // ╰──── footer ─────╯ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/config/config.go | 1651 | # Set false to force every agent invocation cold. | COMMENT |
| LOW | internal/config/config.go | 1903 | # Set max_cases to 0 to keep every case. diversified_size caps the official | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/src/content/docs/reference/repo-config.md | 55 | # For orchestration repos whose project instructions would misidentify gate agents. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …src/content/docs/reference/provider-plugin-protocol.md | 403 | except Exception as exc: # every failure exits non-zero | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/actions/require-no-mistakes/verify.py | 343 | def check_test_command_override(facts: Facts, payload: dict) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/actions/require-no-mistakes/verify.py | 61 | CODE |