Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / internal/modules/ai/safety_test.go |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 43d56387270ef4da4cabd794d97ca6a49909bc7d |
| Branch | w3-ai-staffing-recommendations |
| Path or archive member | internal/modules/ai/safety_test.go |
| Original SHA-256 | 95f8bacb59962ae5afc2dd3e8fa4443428ccdf0aeddf6427fe43ed55729e2fba |
| Git blob SHA | 30c27af6fb2918dd4c489622da571d4877734654 |
| Reading-copy SHA-256 | 95f8bacb59962ae5afc2dd3e8fa4443428ccdf0aeddf6427fe43ed55729e2fba |
Every recorded occurrence
These 21 records contain identical original source bytes. Their paths and revisions remain part of the archive.
| Original record | Branch or archive | Revision / identifier | Original location |
|---|---|---|---|
| Janady13/missionmatch / internal/modules/ai/safety_test.go | w3-ai-staffing-recommendations | 43d56387270ef4da4cabd794d97ca6a49909bc7d | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws3-clearance | 4b8e7ce594c068621867f9c9deed0ec64ae6c553 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws7-federal-signal | 6a9f6ce9cfb13345ffb47770d4960e7c2d9c17c2 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws6-retrieval | 6c56e29231ec05735927fa265c97d517499dfeaf | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | per-tenant-routing | 9bde0f9a74b89d01980fa658e5253acda7528d0c | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ai-brain-live | aac32fc49c878cc5bca099459307611562d0bac1 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws1-ontology-sync | b596f449a32a1016fbd403c36505cc00a1ac9ee6 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | deploy-and-ops | bdacd9d0b4d5998d25fc74bf4007f4c3ec538c7a | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws8-teaching-loop | c823f0fb6bb2aba0f39001eb6de96f4000d9321f | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | phase2-eval-fairness | d361af254701975fe239927656ababb56374655e | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws2-alias-relationship | e4dada4601c6eb101830f9d223a9655dfa120616 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | per-tenant-routing | 9bde0f9a74b89d01980fa658e5253acda7528d0c | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws6-retrieval | 6c56e29231ec05735927fa265c97d517499dfeaf | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws1-ontology-sync | b596f449a32a1016fbd403c36505cc00a1ac9ee6 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws8-teaching-loop | c823f0fb6bb2aba0f39001eb6de96f4000d9321f | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | w3-ai-staffing-recommendations | 43d56387270ef4da4cabd794d97ca6a49909bc7d | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws3-clearance | 4b8e7ce594c068621867f9c9deed0ec64ae6c553 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | phase2-eval-fairness | d361af254701975fe239927656ababb56374655e | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | deploy-and-ops | bdacd9d0b4d5998d25fc74bf4007f4c3ec538c7a | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ws7-federal-signal | 6a9f6ce9cfb13345ffb47770d4960e7c2d9c17c2 | Open original |
| Janady13/missionmatch / internal/modules/ai/safety_test.go | ai-brain-live | aac32fc49c878cc5bca099459307611562d0bac1 | Open original |
Recovered source transcript
Download complete source text ↓123 lines · 4.4 KB
package ai
import (
"errors"
"os"
"path/filepath"
"strings"
"testing"
)
func TestForbidEEORejectsDemographics(t *testing.T) {
bad := []string{
"SELECT * FROM eeo.candidate_demographics",
"select gender, race_ethnicity from eeo.candidate_demographics",
"join EEO.candidate_demographics on true",
"the candidate's veteran_status is",
}
for _, s := range bad {
if err := ForbidEEO(s); !errors.Is(err, ErrEEOForbidden) {
t.Errorf("ForbidEEO(%q) must refuse the eeo schema, got %v", s, err)
}
}
if err := ForbidEEO("SELECT full_name FROM candidates WHERE clearance_level='secret'"); err != nil {
t.Errorf("a clean query must pass: %v", err)
}
}
func TestGuardReadOnlyQuery(t *testing.T) {
bad := map[string]string{
"insert": "INSERT INTO candidates (full_name) VALUES ('x')",
"update": "UPDATE candidates SET available=true",
"delete": "DELETE FROM candidates",
"stacked": "SELECT 1 FROM candidates; DROP TABLE candidates",
"eeo read": "SELECT gender FROM eeo.candidate_demographics",
"hidden write in cte": "WITH x AS (DELETE FROM candidates RETURNING id) SELECT * FROM x",
"non allowlisted": "SELECT * FROM auth_credentials",
}
for name, sql := range bad {
if err := GuardReadOnlyQuery(sql, ReadAllowlist); err == nil {
t.Errorf("GuardReadOnlyQuery must refuse %q", name)
}
}
ok := []string{
"SELECT full_name, clearance_level FROM candidates WHERE available = true",
"WITH ranked AS (SELECT id FROM slate_members) SELECT count(*) FROM ranked",
"SELECT c.full_name FROM candidates c JOIN candidate_skills cs ON cs.candidate_id = c.id",
}
for _, sql := range ok {
if err := GuardReadOnlyQuery(sql, ReadAllowlist); err != nil {
t.Errorf("a clean allowlisted read must pass: %q: %v", sql, err)
}
}
}
// TestRegistryIsSafe asserts every curated TAG intent is read only, allowlisted, and eeo free, so an
// unsafe intent cannot ship even if added by mistake.
func TestRegistryIsSafe(t *testing.T) {
if err := ValidateRegistry(); err != nil {
t.Fatalf("a TAG intent is unsafe: %v", err)
}
if len(Registry) == 0 {
t.Fatal("the TAG registry is empty; the safety check is a no op")
}
}
// TestNoAIFileReferencesEEO is the required tripwire: it walks every Go file in the AI package AND in the
// W3 staffing recommendations package, and fails if any of them, other than the prohibition guard
// (safety.go) and the tests, names the eeo schema or a demographic column. No embedding, retrieval, graph,
// memory, generated query, prompt builder, classifier, optimizer, value function, or confidence function
// in either package may reach demographics; this test makes that hold by construction, not by review.
func TestNoAIFileReferencesEEO(t *testing.T) {
markers := []string{"eeo.", "candidate_demographics", "race_ethnicity", "veteran_status", "disability_status", "from eeo", "join eeo"}
dirs := []string{".", "../staffing"} // the AI layer and the W3 staffing recommendations layer
total := 0
for _, dir := range dirs {
total += scanDirForEEO(t, dir, markers)
}
if total == 0 {
t.Fatal("no source files were scanned; the tripwire is not actually running")
}
t.Logf("scanned %d AI and staffing source files, none reach eeo", total)
}
func scanDirForEEO(t *testing.T, dir string, markers []string) int {
entries, err := os.ReadDir(dir)
if err != nil {
t.Fatalf("read dir %s: %v", dir, err)
}
checked := 0
for _, e := range entries {
name := e.Name()
if !strings.HasSuffix(name, ".go") {
continue
}
// safety.go IS the prohibition guard (it must name eeo to forbid it); tests describe the rule.
if name == "safety.go" || strings.HasSuffix(name, "_test.go") {
continue
}
body, err := os.ReadFile(filepath.Join(dir, name))
if err != nil {
t.Fatalf("read %s/%s: %v", dir, name, err)
}
// A prohibition COMMENT may name eeo (the rule being documented); only a CODE reference is a reach.
// Drop comment lines, then scan the executable content.
var code strings.Builder
for _, line := range strings.Split(string(body), "\n") {
if strings.HasPrefix(strings.TrimSpace(line), "//") {
continue
}
code.WriteString(strings.ToLower(line))
code.WriteByte('\n')
}
lower := code.String()
for _, m := range markers {
if strings.Contains(lower, m) {
t.Errorf("EEO REACH: %s/%s contains %q in executable code; no AI or staffing path may name the eeo schema", dir, name, m)
}
}
checked++
}
return checked
}