Skip to content

v0.1.0 (preview)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 13:05
· 24 commits to main since this release

Serving image: ghcr.io/professor3333/triggermap@sha256:0b9e2f30c328959d0ed8fe82677757b6276bef89ce322ebcc6b0d07ffce9adac (also in release-image.json).

A preview release, not a quality-gated one. The acceptance gates in
docs/targets.md are judged on hand-labelled test records. Only 4 exist,
because every annotation batch after the pilot was submitted from model drafts. No gate has
been evaluated, and the test split has not been read
(docs/test-access-log.md has no entries).

What is in it

  • Serving image: built by release.yml from this tag with EXTRAS="serve baselines", so it
    serves both the rules model and the CRF. Its digest is in the attached release-image.json.
  • Default model: crf-batches-01-02, a CRF tagger with logistic-regression category, role and
    group classifiers. Its bundle weights SHA-256 is
    d1f8cb5a94b0ba4540c585d902543e13e8b4252b9c21891f29bf6381b0c07056.
    • Trained on 239 train-split records: 7 hand-labelled, 232 model drafts.
    • Preprocessing version 1.
  • Review policy: review-policy-0, uncalibrated, so every prediction is flagged
    Review required
    . Thresholds fitted on model drafts measure agreement, not accuracy, so
    none is applied.

What was measured (dev split only)

  • Agreement with model drafts, held-out half (61 documents; not accuracy):
    • CRF typed F1 0.127 [0.054, 0.201];
    • DeBERTa-v3-small 0.185 [0.145, 0.235]; the paired difference is not clear.
  • Hand-labelled accuracy (10 dev documents): CRF typed F1 0.370 [0.000, 0.640].
  • Why the CRF, not DeBERTa: after calibration DeBERTa keeps more agreeing conditions at the
    same precision. It is not clearly more precise, and it does not invent fewer prerequisites,
    which was the pre-set condition for switching
    (reports/calibration/).
  • Deployment checks, local Docker on 2026-11-06:
    • the container smoke test passed;
    • app verify passed: ready check against the manifest, extraction, idempotent review save,
      retrieval and export;
    • the rollback drill r1 (rules) → v0.1.0 (CRF) → r1 passed in 15 seconds, with
      reviews kept.
  • Not measured: the 2 vCPU / 4 GB target-host benchmarks.

Model bundle

crf-batches-01-02.tgz (attached to the release) holds the bundle directory
crf-batches-01-02/, with tagger.crfsuite, classifiers.joblib and metadata.json.

  • Archive SHA-256: 65677a7413e02a8da4ba3b920ac7eb8e02a8cba874876d93810d4ae5fc76d29a.
  • Bundle weights digest: d1f8cb5a…07056, which release.json records and the app checks
    at start-up.
  • Trust: classifiers.joblib is a pickle, so load it only from this release, after
    checking the SHA-256.
  • License: the CRF's feature vocabulary is derived from GitHub Advisory Database text and
    the TriggerMap annotations (CC BY 4.0, modified). Attribution and licence details are in
    annotations/README.md.

Deploying it

Follow docs/deployment.md with the image digest from
release-image.json:

gh release download v0.1.0 --pattern crf-batches-01-02.tgz
shasum -a 256 crf-batches-01-02.tgz      # must match the SHA-256 above
tar -xzf crf-batches-01-02.tgz
uv run triggermap release create v0.1.0 --image ghcr.io/professor3333/triggermap@sha256:<digest> \
    --model crf --model-dir crf-batches-01-02