ThatAIguyA world of ideas

THE CONSCIOUSNESS ATLAS
Read. Experiment. Follow the evidence.

ConsciousnessLearn · Explore · Joseph Anady

Janady13/missionmatch / docs/AI_GROUNDING_PROGRAM.md

Source identity, revision, and recovered contents.

GitHub sourceSource text recovered

Source identity

FieldRecorded value
Source typeGitHub source
Original recordJanady13/missionmatch / docs/AI_GROUNDING_PROGRAM.md
DateNot specified in source
RepositoryJanady13/missionmatch
Revision720d47fae476b0d38477ae4401697d372b1ea2bc
Branchfeature/opportunity-to-outcome
Path or archive memberdocs/AI_GROUNDING_PROGRAM.md
Original SHA-256d29097b2f7f3ca9df3eb43acf5eb649d684918aa70e87085e197d76ab38b059f
Git blob SHA85d5277648a5d1ce4e1968ea84ec8b196cb7cfe5
Reading-copy SHA-256bc5083f605acb58f2a86d0e1a6cb723f21cb237a522a5bb35749eaa4a459944e

Original source ↗

Recovered source transcript

Credential-bearing and unrelated personal details were removed from this reading copy. The source identity and original checksum remain recorded.

# AI Grounding Program, design spec (missionMATCH) Date: 2026-06-29. Status: draft for owner review. Scope approved: full program, Phases 1 to 3. ## 1. Goal Make the missionMATCH AI perform well on the cleared GovCon job BEFORE a live customer, so the platform demonstrably works on day one for Galapagos Federal (8a, Air Force and Space Force, Hawaii and New Mexico, mission lanes SIGINT, GEOINT, Satellite C2, Cross Domain Solutions, cyber, intel). This is a grounding, evaluation, and feedback program built entirely in Go, SQL, and bash over the free federal data sources we already pull. It is NOT model weight training. ## 2. The reframe (why this is grounding, not training) Two things in this product are deliberately frozen and are NOT trained: 1. The deterministic scoring engine. Fixed weights (Clearance 0.25, Skills 0.25, Certifications 0.15, Customer Experience 0.15, Experience 0.10, Location 0.10), enforced byte for byte by the golden and frozen tests. Its immutability is the AEDT compliance asset. We do not touch it. 2. The embedding model. Domain fine tuning of bge-small-en-v1.5 is ruled out by our own constraints: no Python anywhere, cleared resumes are CUI and must not leave the self hosted plane, FIPS (GOFIPS140=v1.0.0, CGO_ENABLED=0), and both cloud portability. The map confirmed every fine tune path (LoRA, continued pretraining, managed Bedrock or Azure OpenAI tuning) violates at least one hard rule, and an in place checkpoint change would silently corrupt every stored vector. So "train the AI on this job" means: give the AI a rich, domain grounded knowledge layer it can reason over deterministically, prove and calibrate it against labeled data, and let curated human feedback improve that layer over time. The engine stays the floor; the AI narrates and retrieves on top of it. ## 3. Guardrails (every workstream inherits these) - AEDT: every match stays explainable with a per component trace. A human approves or rejects every slate decision. Nothing auto rejects. The deterministic engine stays the floor. - EEO: protected attributes and close proxies are never a matching input. The matching and ontology code never references the eeo schema. New skill, alias, and mission fields are screened so none is a demographic proxy. - Tenancy: tenant scoped tables keep RLS forced with organization_id leading every composite index. The skills, alias, relationship, and mission reference tables are GLOBAL (outside RLS), read only to the app role, written only by the migrator role, exactly like the existing skills table. - FIPS and tooling: all new binaries build CGO_ENABLED=0 GOFIPS140=v1.0.0, verify the stamp after every build. No Python. Go commands under cmd/, bash for orchestration, SQL via migrations only. - Both cloud: stays 384 dimension so the vector columns and HNSW indexes survive a provider swap. No cloud specific primitive in the core path. External data fetchers sit behind a source interface. - Vector integrity: any new embedded column obeys the DEPLOY_PLAN B2 rule, query vectors and stored vectors share one model, enforced by the existing VectorGuard gate. ## 4. Current state (from the 2026-06-29 capability map) - Ontology is a stub: 13 real skills in production, 32 in the seed, 8 flat free text categories, no hierarchy, no mission vocabulary. A SIGINT or Intel Analyst requirement cannot be expressed today. - No alias or synonym table exists. SIGINT to Signals Intelligence is provably unreachable by any single cosine threshold and is routed to an alias layer that was designed but never built. - Adjacency runs live as raw k nearest neighbor over skills.embedding but nothing is curated or stored, no strength, no requires, no stronger than, no deprecation edges. - Clearance granularity is a static text rule. The generic embedding treats Secret and TS/SCI as similar. Compartments (SCI, SAP), poly type (CI versus full scope), and reciprocity are not modeled. - The teaching and federated learning path is built and privacy scrubbed but DISABLED and non persistent. The gateway returns 202 and discards every signal. Nothing improves from a reviewer action. - There is no GovCon benchmark. Accuracy is proven internally consistent (formula, determinism, threshold calibration on 12 plus 12 pairs) but never proven correct against real cleared hire judgment. The four fifths adverse impact report has architecture but no sample data. - Rich federal signal sits unparsed: incumbent staffing mix and mission keywords live in award and opportunity descriptions and raw JSON in object storage, never extracted. BLS OEWS covers only 5 hardcoded occupations. O*NET, GSA CALC, and FPDS are entirely unintegrated. - The generated RRF hybrid retrieval SQL is not mounted on any live path, and the production reranker is a cosine baseline rather than a cross encoder. ## 5. Architecture of the grounded knowledge layer ``` FREE FEDERAL SOURCES GLOBAL KNOWLEDGE LAYER (new, outside RLS) O*NET SOC skills ─┐ ┌─► skills (enriched: + mission_area, source, soc_code) GSA CALC labor rates ├─ ingest ┼─► skill_aliases (acronym and synonym to canonical skill) FPDS / USASpending ─┤ (Go ├─► skill_relationships (requires, substitutes_for, broader_than) SAM raw JSON / CLINs │ cmds) ├─► clearance_levels (compartments, poly, reciprocity) curated IC overlay ─┘ └─► mission_areas (SIGINT, GEOINT, Satellite C2, CDS, ...) │ ▼ DETERMINISTIC ENGINE (frozen weights) exact match → alias match → relationship credit → semantic ≥ 0.62 │ ▼ BRAIN (retrieval + memory + faithfulness, narrates only) RRF hybrid + reranker, mission filtered, incumbent intelligence │ ▼ EVALUATION HARNESS ──► calibrates threshold, proves bands, four fifths ▲ BOUNDED FEEDBACK LOOP ───┘ scrubbed reviewer outcomes become CURATION proposals for humans, never auto mutate scoring ``` The new tables are global reference data, the same class as skills today. The engine consults the alias and relationship layer deterministically before falling back to semantic similarity, so domain knowledge is encoded as auditable rows, not as opaque model weights. ## 6. Phase 1 — grounding (the load bearing core) ### WS1. GovCon skill ontology Build a real cleared workforce ontology, hundreds of skills with meaningful categories and a mission area dimension. - Schema: add to the global skills table the columns source (text, for provenance), soc_code (text, nullable), mission_area (text, nullable, FK to mission_areas.code), and last_verified_at. Keep the existing id, name, category, embedding. A new mission_areas table holds the controlled mission vocabulary (code, name, description) for SIGINT, GEOINT, HUMINT, MASINT, Satellite C2, Cross Domain Solutions, COMSEC, EW, cyber operations, intel analysis, space systems, and the rest of the Galapagos lanes. - Sourcing strategy (verified 2026-06-29 against live sources): auto pull the breadth, curate only the small IC spine. A new Go command cmd/ontology-sync (CGO_ENABLED=0, FIPS) with an OntologySource interface (Name, Fetch) and six named adapters, mirroring the existing cmd/opp-sync adapter pattern, using net/http with encoding/json, encoding/xml, and an xlsx reader (excelize). No Python, no new crypto. Adapters, in run order: 1. psc: the Product Service Code manual XLSX from acquisition.gov (no auth, fully enumerable), the procurement classification floor including AC National Defense R&D and the D series IT codes. 2. nice: the NICE Framework components JSON (NIST CPRT, no auth, public domain), pinned to a version, the cyber and IT skill backbone (work roles, competency areas, TKS statements with stable ids). 3. dcwf: the open DoD Cyber Workforce Framework factsheet and coding guide PDFs plus the NICE to DCWF crosswalk, projecting the cleared and IC cyber roles (Intelligence Cyberspace, Cyberspace Effects) onto the NICE backbone. KSAT detail is CAC gated, so we ingest the open publications plus crosswalk. 4. onet: O*NET Web Services v2.0 (JSON, X-API-Key header). Built but DORMANT behind a missing key, it logs a clear skip until ONET_API_KEY is [credential removed], so WS1 ships without it. 5. calc: GSA CALC ceiling rates (no auth), enumerating the federal labor category vocabulary by a bounded suggest sweep and dedupe (there is no catalog endpoint). 6. corpus: the differentiator, no external call. Mine our OWN retained text (sam_opportunities.raw, usaspending_awards.description and raw, opportunity_records via the storage.Storer) with the existing deterministic extractor gazetteers and the matching/intel.go labor classifier, emitting the actual skills, certs, clearances, and mission terms that Air Force and Space Force buyers in Hawaii and New Mexico use, then reconciling them against the reference vocabularies above and the curated mission spine. - Staging versus matching tables: external adapters write a reference vocabulary (ontology_terms, ontology_crosswalk) with provenance and a version; a curation step promotes selected, screened terms into the matching facing global skills table (and the WS2 alias and relationship tables). Promotion is human reviewed so the live ontology stays controlled. Each promoted skill gets a bge vector via the existing embed-backfill path so the HNSW index stays live and the VectorGuard gate still passes. - The IC mission spine is a small curated table, see decision 1 below, not an adapter. - Acceptance: the ontology expresses every Galapagos mission lane, an Intel Analyst and a SIGINT and a Satellite C2 requirement can each be authored and matched, and the embed gate (VectorGuard) still passes on the enriched table. ### WS2. Deterministic alias and relationship layer Encode the domain knowledge that embeddings provably cannot reach. - skill_aliases (global): alias_text, canonical skill_id, alias_type (acronym, synonym, vendor_term, legacy), source, confidence. Seeded with the load bearing GovCon acronyms (SIGINT to Signals Intelligence, COMSEC to Communications Security, ATO to Authority to Operate, CDS to Cross Domain Solution, RMF to Risk Management Framework, TS/SCI compartment expansions, and the rest). - skill_relationships (global): from_skill_id, to_skill_id, relation (requires, substitutes_for, broader_than, related_to), strength (decimal), source. Captures prerequisites (COMSEC requires cryptography), substitutions (one tool credits for an adjacent tool at a strength below 1.0), and hierarchy (a broader skill covers a narrower one). - Engine integration: extend the matchOne path so the order is exact match, then alias match (an alias hit is treated as an exact match, similarity 1.0, recorded as alias matched with the alias text in the trace), then relationship credit (a substitutes_for or broader_than edge contributes its strength as a partial match below 1.0, recorded), then the existing semantic similarity at or above 0.62. Every step records which candidate skill matched which required skill and by what mechanism, so the trace stays fully explainable. The fixed weights and band thresholds do not change. New behavior is additive and covered by new golden cases so the existing golden contract still holds for the existing inputs. - Curation: the alias and relationship rows are human authored or human approved. The Phase 3 feedback loop proposes new edges, it never writes them directly. - Acceptance: a candidate whose resume says Signals Intelligence matches a requirement that asks for SIGINT at similarity 1.0 with alias matched in the trace, and the calibration suite still shows zero false positives. ### WS3. Clearance and compartment modeling Make clearance granularity first class, because for an intel customer it is the whole game. - clearance_levels (global reference): level code, rank, requires_polygraph (none, CI, full_scope), compartments (SCI, SAP markers), and an explicit reciprocity matrix (which level satisfies which). This replaces the implicit hierarchy encoded in code with auditable reference rows. - Engine integration: the Clearance component (weight 0.25, unchanged) reads the reciprocity matrix instead of a hardcoded ladder. The rule stays deterministic and explainable, exact or higher satisfies, lower or expired or unknown scores zero, and a compartment requirement (TS/SCI with CI poly) is only satisfied by a clearance that carries it. The clearance value stays a self reported indicator labeled clearance intelligence, never verified, per the existing product rule. - Acceptance: a Secret clearance does not satisfy a TS/SCI requirement, a TS/SCI with CI poly satisfies a TS/SCI requirement, and every verdict carries a one line reason in the trace. ## 7. Phase 2 — prove and calibrate ### WS4. GovCon evaluation and benchmark harness Move accuracy from internally consistent to measured. - A labeled benchmark of realistic Air Force and Space Force requirements crossed with candidate profiles, each with an expected band (Green, Yellow, Red) and a short expected rationale. Authored as versioned fixtures under a new testdata tree, organized by mission lane. - Honest sourcing caveat: until Galapagos can label real outcomes, the expected bands are constructed by us from defensible domain rules, not from real hire decisions. This benchmark proves regression safety, threshold calibration, and band sanity. It is explicitly NOT a substitute for validation against real cleared hire outcomes, and the model card will say so. A later workstream swaps in customer labeled cases when they exist. - A new Go test target and a runnable cmd/eval that scores the benchmark and reports precision, recall, a confusion matrix over bands, and the per pair traces. The semantic threshold is recalibrated against the expanded labeled skill pair corpus (the current 12 plus 12 grows into the mission vocabulary), with the same hard guards (zero false positives, margin above the unrelated ceiling), and any change is registered as a new model version row, the same mechanism as the 0.62 calibration. - Acceptance: the harness runs green, produces a confusion matrix, and any threshold move is evidence backed and version registered. ### WS5. Adverse impact dry run Turn the empty AEDT deliverable into actual numbers. - Generate a sample of 500 or more scored decisions in a non production database, with segregated synthetic demographics in the eeo schema (synthetic, never real people, labeled demo data), then run the existing four fifths report to produce real selection rates and ratios. - This exercises the compliance reporting path end to end and gives a worked example for a FedRAMP or LL144 assessor. The matching code never sees the demographics, the report reads them only through the compliance role, exactly as the architecture already enforces. - Acceptance: the four fifths report produces ratios over the sample, and the EEO isolation tripwire tests stay green (matching still cannot reach the eeo schema). ## 8. Phase 3 — retrieval, federal signal, and the feedback loop ### WS6. Mount RRF hybrid retrieval and a real reranker - Wire the already generated RRF SQL (tsvector BM25 fused with pgvector HNSW by reciprocal rank fusion) into the live brain retrieval path, replacing or augmenting the current call. Add mission_area as a retrieval filter so the brain can answer mission scoped questions. - Upgrade the gateway reranker from the cosine baseline toward a cross encoder served by the self hosted plane, behind the existing rerank interface so the API contract does not change. If a FIPS clean, both cloud portable cross encoder is not readily self hostable, this stays the cosine baseline and the workstream documents that limit rather than reaching for a managed service. - Acceptance: a mission scoped brain query returns mission relevant evidence, and retrieval quality on the WS4 benchmark improves measurably against the pre RRF baseline. ### WS7. Federal labor and mission signal extraction - A Go extraction pass over the retained award and opportunity descriptions and the raw JSON and CLIN payloads already in object storage, pulling incumbent staffing mix (for example counts of ISSO, Cyber Engineer, SIGINT Analyst roles) and mission keywords into queryable columns. New fields hang off the existing usaspending_awards and opportunity_records tables, or a child table, with provenance. - A deterministic mission classifier (keyword and alias driven, reusing the WS2 alias layer) tags opportunities and awards with mission_area, so the Command Center can answer open SIGINT requirements and align bench to mission, the customer's core organizing dimension. - Extends the existing 8 keyword headline classifier in matching/intel.go into a shared, tested, ontology backed labor inference used by both candidates and opportunities. - Acceptance: the platform can list open requirements by mission area and surface incumbent staffing mix on a recompete, with each inference traceable to its source text. ### WS8. Bounded teaching and feedback loop Make the AI improve from reviewer judgment, within the privacy and AEDT boundary already designed. - Implement the gateway side aggregation and storage that is currently a discard. The enumerated, scrubbed TeachingSignal vocabulary already exists (adjacent_skill_substitution_outcome, clearance_gap_override_outcome, experience_shortfall_outcome, reranker_label_agreement) carrying only coarse band, outcome, counts, and model version, no identifiers, enforced by the two sided scrub boundary. The gateway aggregates these into counts per pattern. - The learning target is deterministic and human in the loop, never an auto model update. Aggregated signals produce CURATION PROPOSALS, for example a repeated adjacent_skill_substitution_outcome proposes a new skill_relationships substitutes_for edge for a human to approve, and a repeated clearance_gap_override_outcome flags a reciprocity rule for review. They also feed the WS4 recalibration as evidence. No signal ever mutates a score, a weight, or a threshold automatically, and the engine stays the floor. - Differential privacy aggregation, currently a comment, is implemented as bounded noise on the published counts so a single tenant's behavior cannot be inferred, keeping the cross tenant learning privacy preserving. Federated learning stays behind its flag and defaults off until reviewed. - Acceptance: a reviewer override produces a scrubbed signal, the gateway aggregates it, and a curation proposal appears for human approval, with an audit entry and zero PII. ### WS9. Bulk candidate skill ingestion - Use the existing extraction port to auto populate candidate_skills from cleared resumes at scale (CUI safe, server side extraction, no browser key, the path the W1 Mission Check already established), so a real bench exists to match against. Skills resolve through the WS1 ontology and the WS2 alias layer, so an extracted Signals Intelligence resolves to the SIGINT canonical skill. - Acceptance: a batch of resumes produces grounded candidate_skills rows resolved to canonical ontology skills, and the Command Center bench coverage reflects them. ## 9. Free data sources used Verified 2026-06-29 against live sources. | Source | Access now | What it grounds | Limit | Workstream | | --- | --- | --- | --- | --- | | PSC manual (acquisition.gov) | yes, public XLSX | product and service code taxonomy incl. defense codes | fully enumerable, annual refresh | WS1, WS7 | | NICE Framework (NIST CPRT) | yes, public JSON | cyber and IT skill backbone (roles, competencies, TKS) | pin a version | WS1 | | DoD DCWF | partial, open PDFs | cleared and IC cyber roles plus NICE crosswalk | KSAT detail is CAC gated, use crosswalk | WS1 | | O*NET Web Services v2.0 | KEY NEEDED (free) | civilian SOC skills, knowledge, abilities, tasks | manual approval, 5/sec, 50k/day, attribution | WS1 | | GSA CALC ceiling rates | yes, no auth | federal labor category vocabulary | no catalog, sweep and dedupe | WS1, WS7 | | FPDS-NG ATOM | yes, public | award transactions tagged by PSC and UEI | 10 records/request, paginate | WS7 | | USASpending | yes, keyless | incumbents by UEI, PSC and NAICS hierarchy | approx 10k/query, blurb text only | WS7 | | SAM.gov opportunities | yes, SAM_API_KEY held | the high value mine: PWS and SOW attachments carry real labor categories, clearances, certs, mission terms | 1000/day entity tier, 429 Retry-After | WS1, WS7 | | Our retained corpus | yes, in hand | already holds SAM and award raw text, mined locally | none external, deterministic, auditable | WS1, WS7 | | Curated IC mission spine | author in repo | SIGINT, GEOINT, Satellite C2, CDS, COMSEC vocabulary | not scrapeable, see decision 1 | WS1, WS2 | | BLS OEWS | yes, BLS_API_KEY held | wage baseline by SOC and area | widen beyond the 5 hardcoded rows | WS7 | ## 10. Schema and migration plan New global reference tables: mission_areas, skill_aliases, skill_relationships, clearance_levels. Enriched columns on skills (source, soc_code, mission_area, last_verified_at) and on the award and opportunity tables (incumbent mix, mission_area). All as additive goose migrations continuing from the current production head (v19 on the brain branch), with exact numbers assigned at implementation to avoid collision with the unmerged per tenant branch (which already claims 0020). Every new global table grants SELECT to the app role and INSERT and UPDATE to the migrator only, RLS not applicable (global), the same pattern as skills. Each migration ships a tested down. ## 11. Sequencing and dependencies 1. WS1 ontology is the root, everything matches against it, build first. 2. WS2 alias and relationship layer and WS3 clearance modeling depend on WS1, build next, in parallel. 3. WS4 benchmark and WS5 adverse impact depend on WS1 to WS3 (they measure them), build third. WS4 is the gate that proves Phase 1 worked. 4. WS6 retrieval, WS7 federal signal, WS9 bench ingestion depend on the grounded ontology and can run in parallel after Phase 1 is proven. 5. WS8 feedback loop is last in build order because its curation proposals target the WS2 and WS3 tables and its evidence feeds the WS4 recalibration, so those must exist first. Each workstream is its own branch, its own migration where needed, its own tests, reviewed and validated on M4 staging before any production step, mirroring the brain cutover discipline. Nothing in this program requires a production cutover except, optionally, deploying the enriched ontology and binary the same way the brain was deployed, gated and rollback ready. ## 12. Acceptance for the program The AI is considered grounded for go live when: every Galapagos mission lane is expressible and matchable in the ontology, the load bearing acronyms resolve through the alias layer at similarity 1.0, clearance and compartment rules are correct and explainable, the WS4 benchmark runs green with a published confusion matrix and an evidence backed threshold, a four fifths dry run exists, the brain answers mission scoped questions over RRF retrieval with incumbent intelligence, and a reviewer action produces a privacy scrubbed curation proposal for human approval. The deterministic engine is unchanged throughout and the EEO isolation tripwires stay green. ## 13. Out of scope (deferred) GraphRAG teaming graphs and the capture and foresight features (win probability, price to win, clearance timing) stay deferred. They return ErrScaffold today and need labeled historical outcome data this program does not generate. They become viable after the customer accrues real decisions, and get their own spec. ## 14. Open decisions for owner review 1. Ontology sourcing: RESOLVED 2026-06-29 by live source verification. We auto pull the breadth from five working no friction adapters (psc, nice, dcwf, calc, corpus) plus O*NET once its free key lands, and we CURATE the IC mission spine. The spine is not scrapeable: the terms live only as prose across three competing authorities (DoD Dictionary and Joint Pubs, ODNI, CNSSI 4009), the one machine readable IC artifact (the CVE/XSD enumerations) carries classification markings not mission terms, the target is tiny (roughly 150 to 400 terms, about a half day of curation), it barely changes (multi year doctrine cycles), and choosing the governing authority for a contested term needs a human. So scraping it would be more work, less reliable, and would still need hand reconciliation. Confirm this resolution. 2. Benchmark ground truth: pre customer labels are constructed by us from domain rules, not real hire outcomes, and the model card will state that limit. Confirm this is acceptable as the interim proof. 3. Teaching loop target: aggregated reviewer signals become human approved curation proposals and calibration evidence, never an automatic score or threshold change. Confirm this stays human in the loop by design even once federated learning is enabled.

Search equations, builds, manuscript text, and recovered sources.