Built-in Rule Catalog¶
This reference is generated from TrustWeave's immutable built-in rule registry. Regenerate it with
python scripts/generate_rule_catalog.py; do not edit the table manually.
TrustWeave finding identifiers are stable labels for review of supplied local declarations and evidence metadata. They do not establish a vulnerability, incident, runtime exploit path, deployed control state, or authorization outcome. User-supplied policy-rule identifiers are declarations and are not included in this catalog.
| Identifier | Evidence kind | Title | Local trigger / rationale | Reviewer action |
|---|---|---|---|---|
TW-CHAIN-001 |
declared_chain_configuration |
Declared untrusted path reaches an external action | The supplied graph propagates a sensitive classification from an explicitly untrusted source to a declared external action. | Confirm the declared graph, classification, boundary ownership, and policy intent. |
TW-CHAIN-002 |
declared_chain_configuration |
Declared sensitive path lacks scoped fail-closed approval | The supplied path reaches an external action without a fail-closed approval covering every propagated sensitive classification. | Confirm that approval is required and binds to the relevant declared scope. |
TW-CHAIN-003 |
declared_chain_configuration |
Declared sanitizer coverage is incomplete | A supplied sanitizer does not list coverage for every propagated sensitive classification, on a declared path where a sensitive classification still reaches the external action. | Review the sanitizer’s stated coverage and any residual classification. |
TW-CHAIN-004 |
declared_chain_configuration |
Declared chain analysis is incomplete | A configured local traversal budget was reached before the supplied graph could be fully reviewed. | Increase an explicit budget only after reviewing input scale; do not treat an incomplete review as clear. |
TW-CODE-001 |
analyzed_local_python_source |
Discovered tool has no resolvable implementation body | A tool was discovered in local source, but no body could be located to analyze, so no effect was observed. | Locate the implementation and declare the tool's action class by review. |
TW-CODE-002 |
analyzed_local_python_source |
Proposed action class differs from the declared manifest action class | Observed local call effects propose an action class other than the one the manifest declares. | Confirm which is correct; the proposal is evidence for review, never an authorization. |
TW-CODE-003 |
analyzed_local_python_source |
Tool found in code is absent from the declared manifest | A callable reachable as a tool in local source has no matching declaration in the supplied manifest. | Declare the tool or confirm it is unreachable in the deployed configuration. |
TW-CODE-004 |
analyzed_local_python_source |
Declared manifest tool was not found in the analyzed source | The manifest declares a tool that static review did not find in the analyzed source tree. | Confirm the tool still exists, or remove the stale declaration. |
TW-CODE-005 |
analyzed_local_python_source |
Action-class classification was refused | Evidence was ambiguous, so TrustWeave declined to propose an action class rather than guess. | Assign the action class by review; the refusal reasons name what blocked the analysis. |
TW-CODE-006 |
analyzed_local_python_source |
Local source analysis is incomplete | An analysis budget was reached before the reachable set was covered, so the result is partial. | Narrow the analyzed tree, or treat the affected tools as unclassified. |
TW-CODE-007 |
analyzed_local_python_source |
Wildcard import degrades local symbol resolution | A wildcard import prevents binding call targets to imported symbols in the affected module. | Replace the wildcard with explicit imports to restore resolution. |
TW-CODE-008 |
analyzed_local_python_source |
A local source file could not be parsed or decoded | A file in the analyzed tree could not be read as UTF-8 Python source and was not analyzed. | Confirm the file is source rather than data, and re-run once it parses. |
TW-CODE-009 |
analyzed_local_python_source |
Declared tool schema has no locatable implementation | A declared tool schema was found in local source with no implementation reachable from it. | Link the schema to its handler, or confirm the schema is unused. |
TW-CODE-010 |
analyzed_local_python_source |
One declared tool covers several parameter-selected effects | A single tool selects between effects of different action classes using its own parameters. | Split the tool, or declare it at the highest action class it can reach. |
TW-DIFF-001 |
declared_bundle_difference |
Sensitive or external tool declaration changed | A supplied bundle comparison adds or changes a sensitive or external declared tool. | Review the tool’s declared capabilities and policy coverage. |
TW-DIFF-002 |
declared_bundle_difference |
Untrusted high-impact path is not denied | The supplied head bundle includes an untrusted path to a sensitive or external tool without a deny decision. | Review the decision and human-control boundary. |
TW-DIFF-003 |
declared_bundle_difference |
Sensitive or external tool gained capability | A supplied bundle comparison shows new declared capabilities on a sensitive or external tool. | Review least-privilege scope and policy coverage. |
TW-DIFF-004 |
declared_bundle_difference |
Approval control changed from fail-closed to fail-open | A supplied policy-only delta weakens declared approval behavior even though current declared flow outcomes may remain unchanged. | Review approval-boundary enforcement before accepting the policy change. |
TW-DIFF-005 |
declared_bundle_difference |
Policy default decision changed to allow | A supplied policy-only delta changes unmatched declared paths from a non-allow default to allow. | Review every unmatched-path assumption and the intended human-control boundary. |
TW-DIFF-006 |
declared_bundle_difference |
Approval control removed | A supplied policy-only delta removes the declared approval control. | Review every require-approval boundary and restore an explicit scoped control if needed. |
TW-DIFF-007 |
declared_bundle_difference |
Approval control lost bindings | A supplied policy-only delta removes one or more declared approval binding fields. | Review whether approval remains bound to the required action context and timing. |
TW-DIFF-008 |
declared_bundle_difference |
Policy rule became less restrictive | A supplied policy-only delta changes a declared rule to a less restrictive decision. | Review the changed rule even if no current manifest flow exercises its boundary. |
TW-DIFF-009 |
declared_bundle_difference |
Policy rule lost required controls | A supplied policy-only delta removes one or more required controls from a declared rule. | Review the affected approval and fail-closed obligations before accepting the change. |
TW-DIFF-010 |
declared_bundle_difference |
Classification taxonomy changed | A supplied policy-only delta changes the declared classification taxonomy ordering or set. | Review classification bounds, coverage, and the intended protection ordering. |
TW-DIFF-011 |
declared_bundle_difference |
Structural policy rule boundary changed | A supplied policy-only delta adds, removes, reorders potentially overlapping rules, or changes matching predicates. The deterministic signal requests human review but does not prove that every structural change is insecure. | Review the identified rule boundaries, ordering, and first-match coverage before accepting the change. |
TW-DIFF-012 |
declared_bundle_difference |
Policy rule gained a required control the policy does not declare | A supplied policy-only delta adds a required control that the supplied policy does not declare, so the rule can no longer match any declared flow and the decision falls through to a later rule or the default decision. | Declare the required control or restore the rule's boundary; review the decision the affected paths now receive. |
TW-MCP-001 |
pre_recorded_mcp_metadata |
MCP HTTP profile declares no authorization expectation | The supplied static MCP profile declares authorization_expected as false for HTTP transport. | Review whether unauthenticated transport is intentional and appropriately protected. |
TW-MCP-002 |
pre_recorded_mcp_metadata |
MCP mapping names an unknown manifest tool | A supplied MCP profile mapping does not identify a declared manifest tool. | Correct or review the static mapping. |
TW-MCP-003 |
pre_recorded_mcp_metadata |
MCP action class disagrees with manifest mapping | A supplied MCP profile action class differs from its mapped manifest tool classification. | Reconcile the declared classifications. |
TW-POL-001 |
declared_policy_structure |
Policy default decision allows unmatched paths | The supplied policy uses allow as the default decision for unmatched declared paths. | Confirm that the default is intentional and appropriately bounded. |
TW-POL-002 |
declared_policy_structure |
Policy rule is structurally shadowed | An earlier deterministic rule structurally covers a later supplied rule. | Reorder, narrow, or remove the later declaration. |
TW-POL-003 |
declared_policy_structure |
Policy permits untrusted high-impact action | A supplied rule permits untrusted input to a sensitive or external action. | Confirm the policy rationale and human-control boundary. |
TW-POL-004 |
declared_policy_structure |
High-impact approval path lacks a control | A supplied high-impact approval path has no declared approval control. | Declare the control or revise the path policy. |
TW-POL-005 |
declared_policy_structure |
Approval control lacks required bindings | A supplied approval control omits one or more required binding fields. | Bind the approval to actor, tool, target, parameters, issuance, and expiry as applicable. |
TW-POL-006 |
declared_policy_structure |
Approval control is fail-open | A supplied approval control is not fail-closed when its state cannot be validated. | Review whether a fail-closed control is required for the stated path. |
TW-POL-007 |
declared_policy_structure |
Policy rules conflict structurally | Two supplied rules can match the same declared path while specifying different decisions. | Resolve the conflict by narrowing, reordering, or removing a declaration. |
TW-POL-008 |
declared_policy_structure |
Policy rule requires undeclared controls | A supplied rule names required controls outside the declared control catalog. | Declare the required controls or correct the rule references. |
TW-POL-009 |
declared_policy_structure |
Policy rule is redundant under first-match semantics | An earlier supplied rule covers a later rule and specifies the same deterministic decision. | Remove the later rule or narrow it to express a distinct reviewable policy condition. |
TW-POL-010 |
declared_policy_structure |
Policy rule reachability was not established | A supplied rule names more label combinations than the local cover enumeration limit, so no collective cover was searched for and its reported reachability is not a verdict. | Narrow the rule so its declared combinations can be enumerated, or review its first-match reachability by hand; do not treat the unenumerated rule as clear. |
TW-TRACE-001 |
pre_recorded_trace_metadata |
Trace metadata names an undeclared source | A supplied minimized trace call references a source absent from the declared inventory. | Reconcile minimized trace metadata with the declared source inventory. |
TW-TRACE-002 |
pre_recorded_trace_metadata |
Trace metadata names an undeclared tool | A supplied minimized trace call references a tool absent from the declared inventory. | Reconcile minimized trace metadata with the declared tool inventory. |
TW-TRACE-003 |
pre_recorded_trace_metadata |
Trace source-tool pair is undeclared | A supplied trace source-tool pair is not present in the declared flow inventory. | Review the declaration and the provenance of the local trace. |
TW-TRACE-004 |
pre_recorded_trace_metadata |
Trace matches a deny decision | A supplied trace call matches a deterministic deny policy decision. | Investigate the mismatch through the human review process; TrustWeave takes no action. |
TW-TRACE-005 |
pre_recorded_trace_metadata |
Trace requires approval evidence | A supplied trace call matches a deterministic require_approval policy decision. | Verify the relevant approval evidence outside TrustWeave’s local metadata boundary. |
Risk-review states¶
Risk lifecycle output uses risk_state rather than a rule identifier. new, expired_baseline, and expired_suppression remain active reviewer obligations; baselined and suppressed are explicit, expiry-limited local decisions. These states neither remediate nor waive a security condition. See the repository risk-management guide for fingerprint, expiry, and decision-document contracts.