AOS Community Edition: the open agent operating system.
This report presents the forensic synthetic code analysis of unicity-aos/aos-ce, a Rust project with 8,575 GitHub stars. SynthScan v2.0 examined 54,251 lines of code across 279 source files, recording 401 pattern matches distributed across 8 syntactic categories. The overall adjusted score of 10.3 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 401 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/unicity-aos-bootstrap/src/hook.rs | 21 | pub struct HookArgs { | COMMENT |
| LOW | crates/unicity-aos-bootstrap/src/lib.rs | 261 | } | COMMENT |
| LOW | crates/unicity-aos-bootstrap/src/lib.rs | 301 | /// The `ASTRID_HOME` override is applied only to this child process. AOS | COMMENT |
| LOW | crates/unicity-aos-bootstrap/src/main.rs | 21 | // Product-owned commands are parsed here. Unknown roots bypass this parser and | COMMENT |
| LOW | crates/unicity-aos-bootstrap/src/main.rs | 181 | #[arg( | COMMENT |
| LOW | crates/aos-mcp-broker/src/hook_gate.rs | 1 | //! Native-tool `before_tool_call` verdict responder — aos-mcp as a | COMMENT |
| LOW | crates/aos-mcp-broker/src/hook_gate.rs | 21 | //! `{ skip: bool, reason? }`. Per [`astrid_capsule_hook_bridge`]'s | COMMENT |
| LOW | crates/aos-mcp-broker/src/hook_gate.rs | 41 | use astrid_sdk::prelude::*; | COMMENT |
| LOW | crates/aos-mcp-broker/src/hook_gate.rs | 61 | payload: Value, | COMMENT |
| LOW | crates/aos-mcp-broker/src/cache.rs | 21 | /// CAS retry budget for cache updates. The cache is contended by the | COMMENT |
| LOW | crates/aos-mcp-broker/src/cache.rs | 201 | /// only ever ADDS descriptors, so a removed or upgraded capsule's stale tools | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 1 | //! Per-principal policy decision point (PDP) for supervised `claude -p` | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 21 | //! platform fails open. So it is defence-in-depth on top of the host sandbox | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 41 | //! BEST-EFFORT, not a guarantee. They match the RAW argument value; the | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 61 | COMMENT | |
| LOW | crates/aos-mcp-broker/src/policy.rs | 81 | /// What a matched rule does. v1 is deny/allow only — `ask` is deliberately | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 101 | /// RFC-6901 JSON pointer into the tool `arguments` object (e.g. | COMMENT |
| LOW | crates/aos-mcp-broker/src/policy.rs | 141 | COMMENT | |
| LOW | crates/aos-mcp-broker/src/policy.rs | 241 | p += 1; | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 1 | //! Tool execute core — `tool.v1.execute.<name>` fan-out and | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 21 | //! retired — the registered `aos mcp serve` MCP server is where the | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 41 | /// arrives or the timeout budget closes. | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 61 | /// [`crate::approval::handle_mcp_ingress_respond`]. See | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 81 | /// this is treated as stale (ignored, best-effort deleted) — the dedup | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 101 | Result(Value, bool), | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 121 | /// Broker dispatch: subscribe-before-publish on `tool.v1.execute.<name>`, | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 261 | /// | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 361 | /// Record that the broker has surfaced an `ingress_approval_required` prompt | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 381 | log::warn(format!( | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 441 | return None; | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 481 | /// [`crate::discovery::wall_ms`]) is still within [`GRANT_PENDING_TTL_MS`]. | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 521 | /// terminal result instead of a fresh elicit (dedup). The marker is left in | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 601 | /// inbound IPC message ([`astrid_sdk::runtime::caller`] → | COMMENT |
| LOW | crates/aos-mcp-broker/src/execute.rs | 621 | /// through the cli proxy, which forwards client traffic with a plain | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 1 | //! Tool descriptor discovery and the `astrid.v1.tools.list` publish path. | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 41 | /// `tools/list` once at connect, so an empty first answer sticks for the | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 61 | /// Per-tool serialized `capabilities` cap. | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 81 | /// Assemble the current tool-descriptor snapshot, running the | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 101 | // Keep the prior cache untouched and let the next call retry — see | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 221 | // At least one uncaptured surface — discover at runtime. | COMMENT |
| LOW | crates/aos-mcp-broker/src/discovery.rs | 401 | COMMENT | |
| LOW | crates/aos-mcp-broker/src/broker.rs | 1 | //! Broker front door — the sanitized `astrid.v1.*` MCP surface. | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 21 | //! verbatim. So: | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 41 | //! ## Confused-deputy gate (state-mutating calls) | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 61 | use serde_json::{Value, json}; | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 81 | /// pre-validate the name against the server's `tools/list`, so an | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 101 | /// the `--disallowedTools` deny-list; this gate adds dynamic, argument-level | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 121 | req_id: String, | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 221 | return Ok(()); | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 261 | // (the originating capsule UUID, NOT a guest-settable body field) to be | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 321 | req.name | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 421 | log::info(format!( | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 641 | ); | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 681 | serde_json::to_string(&hook_output) | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 701 | /// that injects structurally, or another MCP client; an unparseable value | COMMENT |
| LOW | crates/aos-mcp-broker/src/broker.rs | 761 | COMMENT | |
| LOW | crates/aos-mcp-broker/src/broker.rs | 801 | json!([{ "type": "text", "text": text }]) | COMMENT |
| LOW | crates/aos-mcp-broker/src/approval.rs | 1 | //! Broker-side elicitation/approval bridge. | COMMENT |
| LOW | crates/aos-mcp-broker/src/approval.rs | 21 | //! `approval-required` flag in the `tool.call` reply so the shim can elicit | COMMENT |
| LOW | crates/aos-mcp-broker/src/approval.rs | 41 | //! * **outbound (decision → unblock tool)** | COMMENT |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | capsules/capsule-openai/src/models.rs | 46 | // ── GPT-5.5 series (June 2026, current frontier) ───────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 67 | // ── GPT-5.4 series (March 2026) ────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 98 | // ── GPT-5.3 series ─────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 129 | // ── GPT-5.2 series (December 2025) ─────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 150 | // ── GPT-4.1 series (April 2025, still available) ───────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 181 | // ── o-series reasoning models ──────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-openai/src/models.rs | 212 | // ── GPT-4o series (legacy, still available) ────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 37 | // ── IPC payload types ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 139 | // ── Configuration ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 221 | // ── Constants ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 249 | // ── Main entry point ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 315 | // ── Envelope dispatch ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 358 | // ── Compact handler ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 447 | // ── Estimate handler ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/lib.rs | 468 | // ── Interceptor hook firing via IPC ───────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 30 | // ── Merge semantics unit tests ────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 105 | // ── Token estimation tests ────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 132 | // ── Hook response deserialization tests ────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 192 | // ── Payload serialization round-trip tests ────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 276 | // ── parse_hook_responses tests ────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 343 | // ── target_tokens clamping test ───────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 391 | // ── Topic filtering tests ─────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-context-engine/src/tests.rs | 428 | // ── hook_recv_timeout (before-compaction fan-out window) ──────────────── | COMMENT |
| MEDIUM | capsules/capsule-prompt-builder/src/tests.rs | 492 | // ── Response topic isolation tests ──────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-prompt-builder/src/tests.rs | 505 | // ── BeforePromptBuildPayload tests ──────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-prompt-builder/src/tests.rs | 547 | // ── AfterPromptBuildPayload tests ───────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-prompt-builder/src/tests.rs | 562 | // ── has_any_field edge cases ────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 119 | // ── Merge Semantics ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 139 | // ── Hook Trigger Protocol ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 150 | // ── Event-to-Hook Mapping Table ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 237 | // ── Merge Logic ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 289 | // ── Correlation IDs ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 307 | // ── Core Dispatch ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-hook-bridge/src/lib.rs | 618 | // ── Capsule Implementation ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store.rs | 89 | // ── key construction ──────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store.rs | 143 | // ── validation ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store.rs | 197 | // ── user operations ──────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store.rs | 273 | // ── link operations ──────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store.rs | 504 | // ── context overlay operations ───────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 17 | // ── User CRUD ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 47 | // ── set_display_name ──────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 85 | // ── set_public_key ────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 105 | // ── Link with platform_instance ───────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 248 | // ── Context-aware resolve (layering) ──────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 329 | // ── Context overlay CRUD ──────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 401 | // ── Cascade semantics ─────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 500 | // ── list_links ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 537 | // ── Pagination on list_users ──────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 586 | // ── Pagination on list_context_for_user ───────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 617 | // ── list_context_in_context ───────────────────────────────────── | COMMENT |
| MEDIUM | capsules/capsule-users/src/store_tests.rs | 654 | // ── KV key construction security ──────────────────────────────── | COMMENT |
| MEDIUM | distros/community/unicity-ce/Distro.toml | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | distros/community/unicity-ce/Distro.toml | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | distros/community/unicity-ce/Distro.toml | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | distros/community/unicity-ce/Distro.toml | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | distros/community/unicity-ce/Distro.toml | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | distros/community/unicity-ce/Distro.toml | 68 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | distros/community/unicity-ce/Distro.toml | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | distros/community/unicity-ce/Distro.toml | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | distros/community/unicity-ce/Distro.toml | 144 | # --------------------------------------------------------------------------- | COMMENT |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/test_channel_transaction.py | 62 | def test_round_trip_preserves_exact_signed_pair(self) -> None: | CODE |
| LOW⚡ | scripts/test_channel_transaction.py | 68 | def test_cross_channel_reuse_is_rejected(self) -> None: | CODE |
| LOW⚡ | scripts/test_channel_transaction.py | 73 | def test_cross_generation_reuse_is_rejected(self) -> None: | CODE |
| LOW⚡ | scripts/test_channel_transaction.py | 78 | def test_unknown_transaction_field_is_rejected(self) -> None: | CODE |
| LOW | scripts/test_channel_transaction.py | 94 | def test_symlink_input_is_rejected(self) -> None: | CODE |
| LOW | scripts/validate-release-contract.py | 87 | def validate_release_readiness( | CODE |
| LOW | scripts/release_metadata.py | 74 | def release_workflow_identity(version: str, tag: str) -> str: | CODE |
| LOW | scripts/release_metadata.py | 540 | def run_validate_channel_release(args: argparse.Namespace) -> None: | CODE |
| LOW | scripts/test_capsule_release.py | 87 | def test_source_contract_has_exact_community_set(self) -> None: | CODE |
| LOW | scripts/test_capsule_release.py | 100 | def test_accepts_exact_safe_artifact_set(self) -> None: | CODE |
| LOW | scripts/test_capsule_release.py | 117 | def test_rejects_exact_duplicate(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 135 | def test_rejects_unexpected_member(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 138 | def test_rejects_wrong_embedded_identity(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 141 | def test_rejects_changed_capabilities(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 144 | def test_rejects_missing_component(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 147 | def test_rejects_unexpected_asset(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 155 | def test_rejects_unexpected_directory(self) -> None: | CODE |
| LOW⚡ | scripts/test_capsule_release.py | 163 | def test_rejects_symlink_asset(self) -> None: | CODE |
| LOW⚡ | scripts/test_runtime_command_surface.py | 38 | def test_help_parser_ignores_wrapped_descriptions(self) -> None: | CODE |
| LOW⚡ | scripts/test_runtime_command_surface.py | 48 | def test_new_runtime_root_fails_until_classified(self) -> None: | CODE |
| LOW⚡ | scripts/test_runtime_command_surface.py | 53 | def test_removed_runtime_root_is_reported(self) -> None: | CODE |
| LOW⚡ | scripts/test_runtime_command_surface.py | 58 | def test_contract_is_bound_to_the_runtime_version(self) -> None: | CODE |
| LOW⚡ | scripts/test_runtime_command_surface.py | 62 | def test_roots_cannot_be_classified_twice(self) -> None: | CODE |
| LOW | scripts/test_validate_runtime_archive.py | 68 | def test_accepts_canonical_archive(self) -> None: | CODE |
| LOW | scripts/test_validate_runtime_archive.py | 72 | def test_rejects_non_executable_tool(self) -> None: | CODE |
| LOW | scripts/test_validate_runtime_archive.py | 98 | def test_rejects_outside_root(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_publication.py | 111 | def test_accepts_complete_authenticated_inventory(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_publication.py | 118 | def test_rejects_missing_asset(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_publication.py | 125 | def test_rejects_unexpected_asset(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_publication.py | 132 | def test_rejects_changed_payload(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_publication.py | 139 | def test_rejects_wrong_source_commit(self) -> None: | CODE |
| LOW | scripts/test_release_publication.py | 150 | def test_rejects_compatibility_drift(self) -> None: | CODE |
| LOW | scripts/test_nightly_version.py | 43 | def test_derivation_is_deterministic(self) -> None: | CODE |
| LOW | scripts/test_nightly_version.py | 50 | def test_stage_updates_only_product_identity(self) -> None: | CODE |
| LOW | scripts/test_nightly_version.py | 68 | def test_rejects_noncanonical_inputs(self) -> None: | CODE |
| LOW | scripts/test_nightly_version.py | 77 | def test_rejects_wrong_base_and_ambiguous_files(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 144 | def test_release_accepts_false_staged_gates(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 147 | def test_release_accepts_strict_nightly_main_identity(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 151 | def test_release_rejects_impossible_nightly_date(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 162 | def test_nightly_rejects_branch_identity(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 171 | def test_release_ready_mode_rejects_false_gate(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 175 | def test_release_rejects_unknown_key(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 181 | def test_release_rejects_boolean_schema_version(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 187 | def test_release_rejects_non_exact_workflow_identity(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 196 | def test_release_rejects_ambiguous_asset_name(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 204 | def test_release_rejects_unapproved_runtime_repository(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 210 | def test_release_rejects_unapproved_runtime_identity(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 219 | def test_release_rejects_unapproved_contract_repository(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 227 | def test_channel_accepts_expected_generation(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 236 | def test_channel_classes_do_not_cross(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 249 | def test_channel_rejects_cross_channel_substitution(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 253 | def test_channel_rejects_generation_downgrade(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 257 | def test_channel_rejects_float_schema_version(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 263 | def test_channel_rejects_boolean_generation(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 269 | def test_channel_rejects_generation_larger_than_shell_consumers_support(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 275 | def test_channel_rejects_float_target_size(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 281 | def test_channel_rejects_expiry(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 288 | def test_channel_rejects_excessive_lifetime(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 294 | def test_channel_rejects_unreasonable_future_publication(self) -> None: | CODE |
| LOW⚡ | scripts/test_release_metadata.py | 302 | def test_channel_rejects_unknown_target(self) -> None: | CODE |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/nightly_version.py | 4 | CODE | |
| LOW | scripts/validate-runtime-archive.py | 4 | CODE | |
| LOW | scripts/capsule_release.py | 4 | CODE | |
| LOW | scripts/capsule_release.py | 7 | CODE | |
| LOW | scripts/test_channel_transaction.py | 4 | CODE | |
| LOW | scripts/validate-runtime-command-surface.py | 4 | CODE | |
| LOW | scripts/validate-release-contract.py | 4 | CODE | |
| LOW | scripts/channel_transaction.py | 4 | CODE | |
| LOW | scripts/release_metadata.py | 10 | CODE | |
| LOW | scripts/test_capsule_release.py | 3 | CODE | |
| LOW | scripts/test_runtime_command_surface.py | 4 | CODE | |
| LOW | scripts/test_validate_runtime_archive.py | 3 | CODE | |
| LOW | scripts/channel_publication.py | 4 | CODE | |
| LOW | scripts/test_release_publication.py | 3 | CODE | |
| LOW | scripts/create-astrid-094-fixture.py | 4 | CODE | |
| LOW | scripts/test_nightly_version.py | 3 | CODE | |
| LOW | scripts/test_release_metadata.py | 4 | CODE | |
| LOW | scripts/release_publication.py | 4 | CODE | |
| LOW | scripts/test_create_astrid_094_fixture.py | 4 | CODE | |
| LOW | scripts/test_channel_publication.py | 3 | CODE | |
| LOW | scripts/test_validate_release_contract.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …capsule-system/src/skills/capsule-development/SKILL.md | 17 | ## Start from the supported scaffold | COMMENT |
| MEDIUM | capsules/capsule-openai/Capsule.toml | 38 | # context_window = { type = "integer", request = "Override context window (tokens)", placeholder = "128000" } | COMMENT |
| MEDIUM | capsules/capsule-forge/src/lib.rs | 10 | //! scaffold a compiling skeleton, map an intent to manifest capabilities, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | capsules/capsule-prompt-builder/src/lib.rs | 305 | // Step 2: Determine the base system prompt (override or original). | COMMENT |
| LOW | capsules/capsule-prompt-builder/src/lib.rs | 317 | // Step 1: Build user context prefix. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | capsules/capsule-prompt-builder/src/lib.rs | 305 | // Step 2: Determine the base system prompt (override or original). | COMMENT |
| LOW | capsules/capsule-prompt-builder/src/lib.rs | 317 | // Step 1: Build user context prefix. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | capsules/capsule-mcp/Capsule.toml | 37 | # evadable) — the robust shapes are allowlist-style eq/prefix. See | COMMENT |