Skip to content

Record only the project's tools' runs, list a format's answers, say test kinds once - #177

Merged
lefticus merged 1 commit into
cpp-best-practices:mainfrom
leftibot:housekeeping
Nov 13, 2026
Merged

lefticus merged 1 commit into
cpp-best-practices:mainfrom
leftibot:housekeeping

Conversation

@leftibot

Copy link
Copy Markdown
Contributor

Housekeeping after the roadmap stack (#176): two snapshot-hygiene issues, a listing gap, and the docs.

Only the project's tools record runs (#142)

A shared tool is one Tool per profile that adopts it (kcov for Zig and Shell, prettier for JavaScript and JSON Schema, the misconfiguration scanners for Terraform, Docker, Kubernetes and Ansible), so one command became one ToolRun fact per profile, and every fixture's facts grew with each profile that shared a tool it ran. The tool-run stage now asks only the tools of the project's own languages and formats: a run of another language's tool answers nothing a question asks (questions are asked of the project's languages only). The facts snapshots lose those runs, about 17,000 lines across the fixtures; no result changes. The issue's first option, one Tool per program with the union of languages, remains available, but the churn it describes is gone. Four tests that built a project from a CI file alone and looked for a Go, JavaScript, Ruby or C tool's run now give that project a source of the language; one that listed the facts of a YAML-only project no longer expects ctest's run.

A format's answers in --answers

The tool-based questions a format is asked (tests, formatting, analysis, security, audit, outputs, schema validation) have kinds=EVERY_KIND, and --answers lists a format's answer only where some unit has one a tool could give. So a Dockerfile's static analysis, a chart's tests and a notebook's formatting are listed, and the YAML every project holds, which nothing tests or scans, adds no line. Languages are listed as before.

The test kinds said once (#144)

tests-run's "no tests found" message joined each runner's description, so runners sharing kinds repeated them (Erlang's bare fixture listed EUnit and Common Test twice, and differently for Elixir and Erlang). A Definition carries its kinds beside its joined description, KnownTool passes them on, and the testing and fuzzing policies join the set of kinds once, with either ("A, B or C"). The BEAM and SQL bare fixtures' messages move accordingly, and Elixir's and Erlang's, now the same, are said once.

Docs

The README's recognition list gains source_names and a probe that returns formats; the architecture document's structure, roles, tools and questions paragraphs say what the roadmap added (recognition by name and by content, the template role, which tool runs are recorded, which answers are listed); the history gains the roadmap stack as its twelfth step.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ByTXNqDWdM7HzezrFtEvQt

…est kinds once

A shared tool is one Tool per profile that adopts it, so one command
became one ToolRun fact per profile and every fixture's facts grew with
each profile sharing a tool it ran (cpp-best-practices#142). The tool-run stage now asks
only the tools of the project's own languages and formats: a run of
another language's tool answers nothing a question asks. The facts
snapshots lose those runs; no result changes.

--answers lists a format's answers to the tool-based questions it is
asked (tests, formatting, analysis, security, audit, outputs, schema
validation) where some tool could give one, so the YAML every project
holds adds no line.

tests-run's "no tests found" message joined each runner's description,
so runners sharing kinds repeated them (cpp-best-practices#144); a Definition carries its
kinds, and the testing and fuzzing policies say each kind once.

The README, architecture and history documents say what the roadmap
stack added.

Closes cpp-best-practices#142. Closes cpp-best-practices#144.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ByTXNqDWdM7HzezrFtEvQt
@codecov

codecov Bot commented Nov 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.76%. Comparing base (f9dcaff) to head (cb480d7).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #177   +/-   ##
=======================================
  Coverage   99.76%   99.76%           
=======================================
  Files         251      251           
  Lines       13266    13276   +10     
  Branches     1474     1475    +1     
=======================================
+ Hits        13235    13245   +10     
  Misses         31       31           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lefticus
lefticus merged commit 28bdbbc into cpp-best-practices:main Nov 13, 2026
20 checks passed
@leftibot
leftibot deleted the housekeeping branch November 13, 2026 04:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants