TrueTag

Rule set 2026.07.1

Rule Catalog

Every TrueTag finding carries the identifier and version of the rule that produced it. This page lists the 84 statically defined rules and the dynamic rule families in the current release, so a verdict can always be traced to the exact checks that ran.

A scan reports only what these rules can observe within the disclosed scope. “No findings” means no configured rule matched — it is not a certification that an application is secure, accessible, or legally compliant, and it does not replace penetration testing, professional accessibility testing, or legal advice.

Published corpus metrics

Precision and recall from the adjudicated CI corpus (36 cases, generated 2026-07-26). Launch-blocking families must stay at ≥ 98% precision on this corpus. Regenerated by pnpm evaluate:rules.

FamilyCasesPrecisionRecallPromotion
Secrets25100.0%100.0%allowed
Dependencies20100.0%100.0%allowed
Configuration20100.0%100.0%allowed

Committed secrets

stable

Deterministic credential patterns with entropy and placeholder guards. Matched values are redacted before storage and are never sent to a model provider.

Rule IDSeverityWhat it detects
repo_secrets.aws_access_keycriticalCommitted AWS access key ID
repo_secrets.aws_secret_keycriticalCommitted AWS secret access key
repo_secrets.gcp_service_accountcriticalCommitted Google Cloud service-account key
repo_secrets.gcp_api_keyhighCommitted Google API key
repo_secrets.stripe_live_secretcriticalCommitted Stripe live secret key
repo_secrets.stripe_test_secretmediumCommitted Stripe test secret key
repo_secrets.stripe_webhook_secrethighCommitted Stripe webhook signing secret
repo_secrets.github_tokencriticalCommitted GitHub token
repo_secrets.github_pat_finecriticalCommitted GitHub fine-grained PAT
repo_secrets.openai_keyhighCommitted OpenAI API key
repo_secrets.anthropic_keyhighCommitted Anthropic API key
repo_secrets.slack_tokenhighCommitted Slack token
repo_secrets.sendgrid_keyhighCommitted SendGrid API key
repo_secrets.twilio_keyhighCommitted Twilio API key
repo_secrets.supabase_service_rolecriticalCommitted Supabase service-role JWT
repo_secrets.private_key_blockcriticalCommitted Private key material
repo_secrets.database_urlcriticalCommitted Database connection string with password
repo_secrets.jwt_secret_assignmenthighCommitted Hard-coded JWT/session secret
repo_secrets.generic_api_keyhighCommitted API key or token
repo_secrets.password_assignmenthighCommitted Hard-coded password
repo_secrets.smtp_credentialshighCommitted SMTP credentials
repo_secrets.vercel_tokenhighCommitted Vercel token
repo_secrets.firebase_fcm_keyhighCommitted Firebase Cloud Messaging server key
repo_secrets.bearer_tokenhighCommitted Hard-coded bearer token
repo_secrets.committed_env_filehighEnvironment file committed to the repository

Dependencies and SBOM

stable

Package inventory across npm and pip manifests, advisory matching against the GitHub Advisory Database and OSV, and CycloneDX SBOM generation.

Rule IDSeverityWhat it detects
repo_dependencies.vulnerable_packagevariesDependency version matched a published security advisory
repo_dependencies.unpinned_dependencylowDependency accepts any version
repo_dependencies.missing_lockfilemediumNo lockfile committed

Authentication and authorization

beta

Heuristic checks for unauthenticated admin or mutating routes, bypass flags, and weak credential handling.

Rule IDSeverityWhat it detects
repo_auth.admin_route_no_authcriticalAdmin route appears to lack an authentication check
repo_auth.mutating_route_no_authhighState-changing route without a recognized authentication check
repo_auth.hardcoded_email_checkmediumAuthorization decided by a hard-coded email comparison
repo_auth.auth_bypass_flaghighAuthentication bypass flag present in code
repo_auth.token_in_localstoragemediumAuth token stored in localStorage
repo_auth.weak_password_hashinghighPasswords hashed with a fast, unsalted algorithm

Configuration and backend services

stable

Deployment configuration, CORS, and Firebase/Supabase backend policy checks.

Rule IDSeverityWhat it detects
repo_config.debug_enabledhighDebug mode enabled in configuration
repo_config.cors_wildcardhighCORS allows any origin (severity rises when credentials are also allowed)
repo_config.localhost_in_configlowLocalhost URL in production-oriented configuration
repo_config.committed_source_mapslowProduction source maps committed to the repository
repo_config.firebase_open_rulescriticalFirebase rules allow public read or write access
repo_config.supabase_service_role_publiccriticalSupabase service-role key exposed with a public env prefix
repo_config.supabase_rls_disabledhighRow-level security disabled on a table
repo_config.supabase_permissive_policyhighSupabase policy uses USING (true)

Input and output handling

beta

Injection and unsafe-rendering checks across request handling and templating.

Rule IDSeverityWhat it detects
repo_input.dangerous_inner_htmlhighUnsanitized HTML rendered with dangerouslySetInnerHTML
repo_input.inner_html_assignmentmediumDynamic value assigned to innerHTML
repo_input.sql_injectionhighSQL query built by string concatenation
repo_input.command_injectionhighShell command built from interpolated input
repo_input.path_traversalhighFile path built from request input without containment check
repo_input.open_redirectmediumRedirect target taken directly from request input
repo_input.unrestricted_uploadmediumFile upload without visible size or type restrictions

Payments

beta

Stripe integration checks for webhook verification and trusted amount handling.

Rule IDSeverityWhat it detects
repo_payments.webhook_no_signaturecriticalStripe webhook handler does not verify the signature
repo_payments.client_amounthighPayment amount taken from the client request
repo_payments.secret_key_clientcriticalStripe secret key exposed to the frontend

AI system security

beta

Prompt-injection surfaces, unsafe model-output handling, agency limits, and AI system-graph checks aligned with the OWASP LLM Top 10.

Rule IDSeverityWhat it detects
ai_security.prompt_injection_surfacehighUser input concatenated directly into a model prompt
ai_security.unsafe_output_handlinghighModel output may be rendered as HTML or executed
ai_security.excessive_agencyhighAI agent can take high-impact actions without a human check
ai_security.secret_in_promptmediumA secret appears to be placed inside a model prompt
ai_graph.retrieval_tenant_scope_unverifiedhighRetrieval tenant isolation is not evident
ai_graph.high_impact_tool_without_approvalhighHigh-impact AI tool lacks a recognized approval gate
ai_graph.unvalidated_output_sinkhighModel output reaches a privileged sink without recognized validation
ai_graph.provider_disclosure_mismatchmediumDetected AI provider is missing from the disclosed provider list

artifact.tt-art-*Artifact Guard findings re-emitted for instruction and automation files found in the repository

Artifact Guard (pre-install)

stable

Deterministic checks applied to pasted or acquired AI skills, agent instructions, manifests, and tool definitions before installation.

Rule IDSeverityWhat it detects
TT-ART-001criticalInstruction hierarchy override
TT-ART-002criticalSecret or environment-variable harvesting
TT-ART-003criticalDownloaded content executed directly
TT-ART-004highUnrestricted command execution
TT-ART-005highInstall-time execution hook
TT-ART-006highInstruction to disclose protected context
TT-ART-007highHidden instruction in HTML comment
TT-ART-008highVisually concealed content
TT-ART-009mediumEncoded or obfuscated payload
TT-ART-010criticalDestructive filesystem command
TT-ART-011highInvisible Unicode control characters

Live-site transport, headers, cookies, and legal pages

stable

DNS-pinned, GET/HEAD-only probes of the running site: TLS, security headers, cookie flags, mixed content, exposed paths, and required legal pages.

Rule IDSeverityWhat it detects
live_site.no_httpshighSite served over plain HTTP
live_site.tls_invalidhighTLS certificate invalid
live_site.tls_expiringmediumTLS certificate close to expiry
live_site.header_framelowNo clickjacking protection (frame-ancestors or X-Frame-Options)
live_site.cookie_flagsmediumCookie set without recommended security flags
live_site.mixed_contentmediumHTTPS page loads active content over HTTP
live_site.exposed_sensitive_pathvariesA sensitive path responds publicly
live_site.header_cspmediumMissing Content-Security-Policy header
live_site.header_hstsmediumMissing Strict-Transport-Security header
live_site.header_xctolowMissing X-Content-Type-Options header
live_site.header_referrerlowMissing Referrer-Policy header
live_site.missing_privacy_policymediumNo Privacy Policy link found on the homepage
live_site.missing_termslowNo Terms link found on the homepage

Accessibility (WCAG 2.2 AA automation)

axe-core automated checks executed against the rendered page. Automated coverage is partial by nature; manual review remains necessary.

accessibility.<axe-rule-id>One finding per violated axe-core rule, carrying the upstream rule identifier and WCAG mapping

External engines

Pinned external scanners (Gitleaks, OSV-Scanner, Trivy, Semgrep CE, YARA, and ClamAV) whose results are normalized into the same evidence model. Engine versions are recorded on every scan.

TT-EXT-<ENGINE>-<rule>One finding per upstream engine rule hit, prefixed by the engine name