feat: analyze all dataset categories and actual PR diffs - #95
Merged
Merged
Conversation
This was referenced Sep 26, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TechEngineBot now analyzes all 12 seed categories instead of eight, applies structural integrity checks to every category, and compares changed records against the actual PR base. Develop PRs count only their own changes; develop-to-main release PRs include the release diff. PRs changing
site/public/v1also parse every changed JSON and compare each collection's manifest/index counts and index result length with seed record counts.Laptop, monitor, software and website receive required-field, slug/file and source assessment; absent domain consistency rules earn zero credit and cannot produce green. Both validation comments and verification comments disclose category coverage, current record count and the PR base branch/SHA. Missing dispatch base fields are resolved from the PR API for backward compatibility.
The verifier recomputes reports if its local scores cache is absent, and the scheduled network workflow no longer writes that cache before committing data changes.
Validation: all 441 tests pass with
TECHAPI_DATA_DIR=C:/Users/29/Desktop/TechAPI/dataandpython -m pytest tests -q --basetemp=C:/tmp/techengine-full-coverage-final;python -m mypy appandpython -m ruff check app testspass. All 14 new coverage tests also pass independently. The full integrity scan reads 191,797 records across 12 categories and reports 18 preexisting CPU anomalies, with none in the newly covered categories. Workflow YAML and embedded Python syntax were checked. The change is 480 added/deleted lines, within one focused PR.TechAPI-side changes required
.github/workflows/request-engine-pr-validation.yml: addbase_ref: context.payload.pull_request.base.refandbase_sha: context.payload.pull_request.base.shato thetechapi-pr-validatedispatchclient_payload(use equivalentgithub.event.pull_request.base.ref/shaexpressions if building JSON in shell)..github/workflows/verify-report.yml: add the samebase_refandbase_shafields to thetechapi-verifydispatch payload. Addsite/public/v1/**to its pull-request paths if dump-only PRs should also receive the Tier 0 report; the existing validation relay already checks dump changes..github/workflows/verify-command.yml: when fetching the target PR for/verify, addbase_ref: pr.base.refandbase_sha: pr.base.shato the dispatch payload..gitignore: add/data/_verify/state/; rungit rm --cached data/_verify/state/scores.jsonlto untrack the existing 43.5 MB generated cache while keeping local copies. Untrack other cache files in that directory if tracked; retain the promotion ledger outsidestate/.No TechAPI checkout or submodule pointer is changed by this PR. The structural gate may now reveal preexisting anomalies in previously omitted categories; its baseline comparison blocks only newly introduced hard anomalies. Full-domain scoring rules for the four new categories remain future work, explicitly disclosed in reports.
Refs GetTechAPI/TechAPI#1