The Company AI Command Center
This report presents the forensic synthetic code analysis of kortix-ai/suna, a TypeScript project with 19,964 GitHub stars. SynthScan v2.0 examined 1,248,812 lines of code across 4638 source files, recording 3760 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 6.8 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).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
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 3760 distinct pattern matches across 23 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 |
|---|---|---|---|---|
| MEDIUM | infra/terraform/environments/prod/main.tf | 1 | # ── prod environment — api.kortix.com on ECS Fargate (autoscaled, HA) ───────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/main.tf | 1 | # ── dev-eks (cluster layer) — dev-api-eks.kortix.com on EKS ─────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/main.tf | 64 | # ── Network (own VPC; EKS subnet-discovery tags via the shared module) ───────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/main.tf | 84 | # ── EKS control plane + managed node group ──────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/main.tf | 116 | # ── TLS cert for the Argo CD UI (dev-ops.kortix.com) ────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/main.tf | 132 | # ── App IRSA role: read the kortix-dev-env Secrets Manager bundle ────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/dev-eks/cluster/iam-deploy.tf | 1 | # ── GitHub Actions OIDC deploy role + EKS access ────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/dev-eks/cluster/iam-deploy.tf | 53 | # ── Kubernetes RBAC via EKS access entries ──────────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/dev-eks/cluster/iam-deploy.tf | 83 | # ── Optional extra human cluster-admins ─────────────────────────────────────── | COMMENT |
| MEDIUM | …ra/terraform/environments/dev-eks/cluster/variables.tf | 25 | # ── Node group (dev-sized; smaller floor than prod's 3) ─────────────────────── | COMMENT |
| MEDIUM | …ra/terraform/environments/dev-eks/cluster/variables.tf | 50 | # ── App / secrets wiring ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ra/terraform/environments/dev-eks/cluster/variables.tf | 69 | # ── DNS / TLS (Cloudflare) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ra/terraform/environments/dev-eks/cluster/variables.tf | 108 | # ── CI / access ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/terraform/environments/dev-eks/cluster/iam-staging.tf | 1 | # ── Staging runtime on the dev EKS control plane ───────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/cluster/preview.tf | 1 | # ── PR preview environments (ephemeral per-PR API on dev-eks) ───────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev-eks/platform/main.tf | 1 | # ── dev-eks (platform layer) — in-cluster controllers + app namespace ───────── | COMMENT |
| MEDIUM | infra/terraform/environments/qa/main.tf | 90 | # ── GitHub Actions OIDC role that publishes QA reports to the bucket ────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 1 | # ── prod-eks (cluster layer) — api-eks.kortix.com on EKS ────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 59 | # ── Network (own VPC; EKS subnet-discovery tags via the shared module) ───────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 79 | # ── EKS control plane + managed node group ──────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 99 | # ── TLS cert for api-eks.kortix.com (ACM, validated via Cloudflare DNS) ──────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 111 | # ── TLS cert for the Argo CD UI (ops.kortix.com) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 126 | # ── TLS cert for the consolidated DevOps gateway ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/cluster/main.tf | 148 | # ── App IRSA role: read the SAME Secrets Manager bundle ECS uses ─────────────── | COMMENT |
| MEDIUM | …/terraform/environments/prod-eks/cluster/iam-deploy.tf | 1 | # ── GitHub Actions OIDC deploy role + EKS access ────────────────────────────── | COMMENT |
| MEDIUM | …/terraform/environments/prod-eks/cluster/iam-deploy.tf | 57 | # ── Kubernetes RBAC via EKS access entries ──────────────────────────────────── | COMMENT |
| MEDIUM | …/terraform/environments/prod-eks/cluster/iam-deploy.tf | 87 | # ── Optional extra human cluster-admins ─────────────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/prod-eks/cluster/variables.tf | 25 | # ── Node group ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/prod-eks/cluster/variables.tf | 50 | # ── App / secrets wiring ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/prod-eks/cluster/variables.tf | 69 | # ── DNS / TLS (Cloudflare) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …a/terraform/environments/prod-eks/cluster/variables.tf | 114 | # ── CI / access ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod-eks/platform/main.tf | 1 | # ── prod-eks (platform layer) — in-cluster controllers + app namespace ──────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 66 | # ── Network (VPC + public/private subnets + NAT) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 76 | # ── TLS cert (ACM, validated via Cloudflare DNS) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 89 | # ── ECS Fargate API service (autoscaled) ────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 122 | # ── DNS: dev-api-ecs-fargate.kortix.com → the ALB (Cloudflare-proxied) ───────── | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 3 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 15 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 18 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 68 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 72 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 86 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 90 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 98 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 100 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 143 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 146 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-groups.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-groups.tf | 6 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/providers.tf | 1 | # ── Account-level security baseline (SOC 2 / Drata) ────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 12 | # ── S3 bucket ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 28 | # ── DynamoDB lock table ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/main.tf | 42 | # ── Public subnets ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/main.tf | 69 | # ── Private subnets (egress via NAT) ────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/variables.tf | 30 | # ── EKS subnet discovery tags (optional; empty = no-op for the ECS envs) ─────── | COMMENT |
| MEDIUM | infra/terraform/modules/ecs-api/main.tf | 29 | # ── Logs ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/ecs-api/main.tf | 36 | # ── IAM ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/ecs-api/main.tf | 80 | # ── Security groups ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/ecs-api/main.tf | 130 | # ── Load balancer ───────────────────────────────────────────────────────────── | COMMENT |
| 2033 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/e2e/specs/10-production-golden-paths.spec.ts | 172 | async function stopActiveProjectSessions(token: string, projectId: string) { | CODE |
| LOW | tests/e2e/specs/08-accounts-project-access.spec.ts | 70 | async function createProjectForAccessTest( | CODE |
| LOW | tests/e2e/helpers/self-host.ts | 53 | export function runSqlWithSelfHostFallback(sql: string): void { | CODE |
| LOW | tests/e2e/helpers/env.ts | 53 | export function firstExistingExplicitEnvFile(): string | null { | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/clean.py | 106 | def get_slide_referenced_files(unpacked_dir: Path) -> set: | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/clean.py | 128 | def remove_orphaned_rels_files(unpacked_dir: Path) -> list[str]: | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/add_slide.py | 141 | def _add_to_presentation_rels(unpacked_dir: Path, dest: str) -> str: | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/thumbnail.py | 149 | def create_hidden_placeholder(size: tuple[int, int]) -> Image.Image: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 66 | def validate_whitespace_preservation(self): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 163 | def count_paragraphs_in_unpacked(self): | CODE |
| LOW⚡ | …/kortix-presentation/scripts/office/validators/docx.py | 179 | def count_paragraphs_in_original(self): | CODE |
| LOW | …ix-presentation/scripts/office/validators/redlining.py | 198 | def _remove_author_tracked_changes(self, root): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 104 | def validate_slide_layout_ids(self): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 172 | def validate_no_duplicate_slide_layouts(self): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 210 | def validate_notes_slide_references(self): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 115 | def repair_whitespace_preservation(self) -> int: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 385 | def validate_all_relationship_ids(self): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 469 | def _get_expected_relationship_type(self, element_name): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 598 | def validate_file_against_xsd(self, xml_file, verbose=False): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 703 | def _clean_ignorable_namespaces(self, xml_doc): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 723 | def _remove_ignorable_elements(self, root): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 742 | def _preprocess_for_mc_ignorable(self, xml_doc): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 750 | def _validate_single_file_xsd(self, xml_file, base_path): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 787 | def _get_original_file_errors(self, xml_file): | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 814 | def _remove_template_tags_from_text_nodes(self, xml_doc): | CODE |
| LOW | …esentation/scripts/office/helpers/simplify_redlines.py | 47 | def _merge_tracked_changes_in(container, tag: str) -> int: | CODE |
| LOW | …esentation/scripts/office/helpers/simplify_redlines.py | 126 | def get_tracked_change_authors(doc_xml_path: Path) -> dict[str, int]: | CODE |
| LOW | scripts/build-local-images.sh | 84 | function packageNameFromPackageJson(packageJsonPath) { | CODE |
| LOW | scripts/build-local-images.sh | 94 | function packageNameFromResolvedPath(resolvedPath) { | CODE |
| LOW | packages/agent-tunnel/src/agent/service.ts | 86 | export function renderWindowsPowerShellScript( | CODE |
| LOW | …ages/agent-tunnel/src/agent/capabilities/filesystem.ts | 15 | function permissionFilesystemScope(params: Record<string, unknown>): { | CODE |
| LOW | …ages/agent-tunnel/src/agent/capabilities/filesystem.ts | 49 | export function createFilesystemCapability(config: TunnelConfig): Capability { | CODE |
| LOW | …ages/agent-tunnel/src/agent/security/path-validator.ts | 39 | function assertAllowedResolvedPath( | CODE |
| LOW | …kages/llm-gateway/src/transports/anthropic/response.ts | 200 | export function translateAnthropicResponse( | CODE |
| LOW | …ckages/llm-gateway/src/transports/anthropic/request.ts | 135 | export function buildAnthropicCorePayload(body: Record<string, any>): Record<string, unknown> { | CODE |
| LOW | …lm-gateway/src/transports/openai-responses/response.ts | 307 | export async function translateResponsesResponse( | CODE |
| LOW | packages/llm-gateway/src/usage/extract.ts | 37 | export function extractUsageFromSseBuffer(buffer: string): ExtractedUsage | null { | CODE |
| LOW | packages/llm-gateway/src/routing/policy-engine.ts | 11 | export function createModelFallbackPolicyEngine( | CODE |
| LOW | packages/shared/src/tools/formatter.ts | 125 | export function extractAppSlugFromToolCall(toolCall: any): string | null { | CODE |
| LOW | packages/manifest-schema/src/index.v2.ts | 294 | export function validateAgentMdFrontmatter( | CODE |
| LOW | packages/manifest-schema/src/index.ts | 1233 | function expectRelativePathOrAbsent(value: unknown, path: string, issues: ManifestIssue[]): void { | CODE |
| LOW | …lls/webapp/template/client/src/components/ui/chart.tsx | 320 | function getPayloadConfigFromPayload( | CODE |
| LOW | …owledge-worker/.kortix/opencode/skills/pdf/formfill.py | 101 | def _extract_checkbox_on_value(resolved: dict, cb: CheckboxField) -> None: | CODE |
| LOW | …-worker/.kortix/opencode/skills/pptx/scripts/slides.py | 138 | def _remove_unreferenced_resources(unpacked_dir: Path, referenced: set[Path]) -> list[str]: | CODE |
| LOW | …-worker/.kortix/opencode/skills/pptx/scripts/slides.py | 190 | def _strip_stale_content_types(unpacked_dir: Path, removed_parts: list[str]) -> None: | CODE |
| LOW | …-worker/.kortix/opencode/skills/pptx/scripts/slides.py | 280 | def _register_presentation_rel(unpacked_dir: Path, slide_filename: str) -> str: | CODE |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 172 | def _build_extensible_element(durable_hex: str, timestamp: str) -> etree._Element: | CODE |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 182 | def _resolve_parent_paragraph(comments_path: Path, parent_cid: int) -> str | None: | CODE |
| LOW⚡ | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 221 | def _coalesce_tracked_changes(doc_xml: Path) -> int: | CODE |
| LOW | …/starter/templates/base/.kortix/opencode/tools/show.ts | 113 | function validateAndBuildEntry(item: Record<string, unknown>): string | ShowEntry { | CODE |
| LOW⚡ | …pencode/plugins/opencode-pty/src/plugin/pty/manager.ts | 24 | export function registerSessionUpdateCallback(callback: SessionUpdateCallback) { | CODE |
| LOW⚡ | …pencode/plugins/opencode-pty/src/plugin/pty/manager.ts | 28 | export function removeSessionUpdateCallback(callback: SessionUpdateCallback) { | CODE |
| LOW⚡ | …pencode/plugins/opencode-pty/src/plugin/pty/manager.ts | 33 | export function registerRawOutputCallback(callback: RawOutputCallback): void { | CODE |
| LOW | …pencode/plugins/opencode-pty/src/plugin/pty/manager.ts | 476 | export async function ensurePtyBackendAvailable(): Promise<void> { | CODE |
| LOW | …e/.kortix/opencode/continuation/kortix-continuation.ts | 41 | function extractLastAssistantMessage(messages: any[]): { text: string; hadToolCalls: boolean } { | CODE |
| LOW | …templates/base/.kortix/opencode/continuation/dedupe.ts | 22 | export function isPassiveContinuationMessage(text: string): boolean { | CODE |
| LOW | …templates/base/.kortix/opencode/continuation/dedupe.ts | 29 | export function countPassiveContinuationsAfter(messages: any[], lastUserId: string | null): number { | CODE |
| LOW | packages/starter/src/index.ts | 74 | export function normalizeStarterTemplateId(value: unknown): StarterTemplateId { | CODE |
| LOW | packages/starter/src/index.ts | 83 | export function listGeneralKnowledgeWorkerSkills(): string[] { | CODE |
| LOW | packages/sdk/src/core/runtime/kortix-master.ts | 624 | export async function getKortixProjectBySession(baseUrl: string, sessionId: string): Promise<KortixMasterProject> { | CODE |
| 866 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | infra/terraform/environments/dev-eks/cluster/main.tf | 1 | # ── dev-eks (cluster layer) — dev-api-eks.kortix.com on EKS ─────────────────── | COMMENT |
| LOW | infra/terraform/environments/prod-eks/cluster/main.tf | 1 | # ── prod-eks (cluster layer) — api-eks.kortix.com on EKS ────────────────────── | COMMENT |
| LOW | infra/terraform/environments/dev/main.tf | 1 | # ── dev environment — dev-api-ecs-fargate.kortix.com (ECS Fargate, autoscaled) ─ | COMMENT |
| LOW | infra/terraform/security-baseline/providers.tf | 1 | # ── Account-level security baseline (SOC 2 / Drata) ────────────────────────── | COMMENT |
| LOW | infra/terraform/modules/qa-portal/main.tf | 1 | # ── QA report portal: durable S3 store + IRSA read role ─────────────────────── | COMMENT |
| LOW | infra/terraform/modules/qa-portal/access.tf | 1 | # ── Cloudflare Access (Zero Trust) gate for qa.kortix.com ───────────────────── | COMMENT |
| LOW | infra/terraform/modules/eks/cluster/main.tf | 1 | # Reusable EKS control plane + a managed node group, tuned for production uptime | COMMENT |
| LOW | infra/terraform/modules/eks/platform/main.tf | 1 | # In-cluster platform controllers, installed via Helm. These turn the bare EKS | COMMENT |
| LOW | infra/terraform/modules/eks/platform/main.tf | 101 | # policy=sync + a txtOwnerId registry means external-dns only ever touches | COMMENT |
| LOW | infra/k8s/argocd/applications/qa.yaml | 1 | # Argo CD Application for the internal QA report portal (qa.kortix.com). | COMMENT |
| LOW | infra/k8s/argocd/applications/platform-falco.yaml | 1 | # Runtime security — Falco. A per-node DaemonSet that watches syscalls via the | COMMENT |
| LOW | infra/k8s/argocd/applications/gateway-prod.yaml | 1 | # Argo CD Application for the EKS prod LLM gateway (gateway.kortix.com). | COMMENT |
| LOW | …a/k8s/argocd/applications/platform-otel-collector.yaml | 1 | # Traces ingest — OpenTelemetry Collector (deployment mode). The single OTLP | COMMENT |
| LOW | infra/k8s/argocd/applications/platform-velero.yaml | 1 | # Backup/restore — Velero with the AWS provider. Takes scheduled cluster backups | COMMENT |
| LOW | infra/k8s/argocd/applications/platform-tracing.yaml | 1 | # Traces — Grafana Tempo (single-binary). The trace store that lands spans sent | COMMENT |
| LOW | infra/k8s/argocd/applications/prod.yaml | 1 | # Argo CD Application for EKS prod (api-eks.kortix.com). | COMMENT |
| LOW | infra/k8s/argocd/applicationsets/preview.yaml | 1 | # Ephemeral per-PR preview environments on the dev-eks cluster. | COMMENT |
| LOW | infra/k8s/platform/botkube-slack-app-manifest.yaml | 1 | # Slack App manifest for Botkube (Socket Mode). | COMMENT |
| LOW | …8s/platform/botkube-communication.secret.template.yaml | 1 | # TEMPLATE — do NOT commit real tokens. The Botkube Slack tokens live in a secret | COMMENT |
| LOW | infra/k8s/charts/qa-portal/values.yaml | 1 | # Defaults for the qa-portal chart. Environment-specific values (bucket, IRSA | COMMENT |
| LOW | infra/k8s/charts/qa-portal/templates/deployment.yaml | 1 | {{- if not .Values.bucket }} | COMMENT |
| LOW | infra/k8s/charts/kortix-api/values.yaml | 1 | # Defaults for the kortix-api chart. Environment-specific values (cert ARN, IRSA | COMMENT |
| LOW | infra/k8s/charts/kortix-api/values.yaml | 41 | # - cpu limit "1" used to throttle the single-threaded event loop the moment a | COMMENT |
| LOW | infra/k8s/charts/kortix-api/values.yaml | 81 | # Liveness probe path. The shallow `path` above answers in <1ms even when the | COMMENT |
| LOW | infra/k8s/charts/kortix-api/values.yaml | 121 | resources: | COMMENT |
| LOW | infra/k8s/envs/prod/values.yaml | 21 | # Point sandboxes at the standalone LLM gateway. Must be the PUBLIC host — | COMMENT |
| LOW | infra/k8s/envs/prod/values.yaml | 101 | # autoscaler), zero-downtime rolling deploys — all come from the Deployment, not | COMMENT |
| LOW | infra/k8s/envs/dev/values.yaml | 1 | # Dev environment values for the kortix-api chart, deployed by Argo CD | COMMENT |
| LOW | infra/k8s/envs/dev/values.yaml | 21 | # catalog shape) and the model picker collapses to a single model. | COMMENT |
| LOW | infra/k8s/envs/preview/values.yaml | 1 | # Base values for an ephemeral per-PR preview API on dev-eks. The Argo CD | COMMENT |
| LOW | infra/cloudflare/workers/api-router/wrangler.toml | 1 | # Cloudflare Worker that fronts the public API and routes to the active backend. | COMMENT |
| LOW | tests/infra/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/shell/vps/test-vps-e2e.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/scripts/publish-allure.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/performance/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/performance/session-start/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/e2e/scripts/memory-tool-opencode-e2e.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/e2e/scripts/pty-ws-smoke.ts | 1 | #!/usr/bin/env bun | COMMENT |
| LOW | tests/chaos/container-chaos-pumba.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/chaos/resilience-toxiproxy.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/migration/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/src/flows/stragglers-backlog.flow.ts | 21 | // cross-referenced flows exist; there is no separate sandbox route here. | COMMENT |
| LOW | supabase/config.toml | 1 | # ╔══════════════════════════════════════════════════════════════════════════════╗ | COMMENT |
| LOW | scripts/dev-local.sh | 21 | # laptop diligence as `pnpm dev` — decrypt env, clear ports, Docker/Supabase, | COMMENT |
| LOW | scripts/dev-local.sh | 61 | # Warm SNAPSHOT baking OFF for local dev. The [warm-bake] builder (gated by | COMMENT |
| LOW | scripts/dev-local.sh | 221 | ) & | COMMENT |
| LOW | scripts/dev-local.sh | 461 | echo "[dev] supabase start…" | COMMENT |
| LOW | scripts/dev-local.sh | 501 | # NEXT_PUBLIC_BACKEND_URL is RELATIVE (/v1) so the browser hits the SAME | COMMENT |
| LOW | scripts/dev-local.sh | 541 | # trio. For build+start, `next build` / `next start` (unlike the web's `dev` | COMMENT |
| LOW | scripts/dev-local.sh | 701 | FRONTEND_PID=$! | COMMENT |
| LOW | scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci-maintenance-banner.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/ci-local.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/publish-npm-package.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/nuke-local.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/worktree/cli.ts | 41 | // OSC 8 hyperlink — makes `text` actually clickable in supporting terminals | COMMENT |
| LOW | packages/llm-gateway/src/pipeline/streaming.ts | 41 | COMMENT | |
| LOW | packages/llm-gateway/src/domain/principal.ts | 1 | export interface AuthedPrincipal { | COMMENT |
| LOW | packages/manifest-schema/src/index.ts | 1021 | // fails to parse there, it is not advisory. v2 mirrors that as a | COMMENT |
| LOW | …ortix/opencode/skills/paper-creator/scripts/compile.sh | 1 | #!/usr/bin/env bash | COMMENT |
| 283 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …e/skills/kortix-presentation/scripts/office/soffice.py | 116 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …e/skills/kortix-presentation/scripts/office/soffice.py | 135 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …e/skills/kortix-presentation/scripts/office/soffice.py | 144 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …e/skills/kortix-presentation/scripts/office/soffice.py | 158 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …x/opencode/skills/logo-creator/scripts/compose_logo.py | 45 | print("Error: playwright required. Install: pip install playwright && playwright install chromium") | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 107 | if (cs.backgroundImage && cs.backgroundImage !== 'none') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 109 | if (bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 110 | if (cs.borderStyle && cs.borderStyle !== 'none' && cs.borderWidth !== '0px') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 111 | if (cs.boxShadow && cs.boxShadow !== 'none') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 121 | if (!el || el.nodeType !== 1) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 124 | if (r.width === 0 || r.height === 0) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 130 | out.push({type:'visual', captureId:cid, x:r.left, y:r.top, width:r.width, height:r.height, tag:el.tagName.to | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 132 | for (const ch of el.children) out.push(...walk(ch, depth+1)); | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 138 | if (el.textContent && el.textContent.trim()) { | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 155 | if (!el || el.nodeType !== 1) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 159 | if (r.width === 0 || r.height === 0) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 167 | out.push({ | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 179 | for (const ch of el.children) out.push(...extract(ch)); | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 218 | if (!root && orig.tagName !== 'svg' && orig.tagName !== 'SVG' && | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 222 | for (let j=0; j<orig.children.length && j<cl.children.length; j++) | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 310 | if (el.textContent && el.textContent.trim()) { | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 322 | if (Math.abs(r.left-v.x)<5 && Math.abs(r.top-v.y)<5 && | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 323 | Math.abs(r.width-v.width)<5 && Math.abs(r.height-v.height)<5) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | infra/k8s/argocd/platform-app-of-apps.yaml | 2 | # applications/ (the DevOps console, observability, security guardrails, cost, | COMMENT |
| MEDIUM | tests/security/strix/README.md | 1 | # Strix OSS agentic penetration testing | COMMENT |
| MEDIUM | tests/src/flows/cli-ship.flow.ts | 366 | // Establish the link via a first managed ship (clean push of the scaffold). | COMMENT |
| MEDIUM | docs/INFRASTRUCTURE_PLAN.md | 127 | ### Wave 3 — Cluster guardrails *(additive; audit-before-enforce)* | COMMENT |
| MEDIUM | docs/specs/2026-07-08-pluggable-runtime-harness.md | 144 | ### 3.2 Product-facing: ACP is the destination, the OpenCode-API shim is scaffolding | COMMENT |
| MEDIUM | …e/skills/kortix-system/references/kortix/kortix-cli.md | 341 | ### Project scaffold | COMMENT |
| MEDIUM | …ckages/sdk/src/react/use-opencode-sessions/sessions.ts | 38 | // With the scaffold-warm seed, opencode is ALREADY 'ok' for /workspace and a | COMMENT |
| MEDIUM | packages/registry/src/schema.ts | 47 | 'registry:project', // a whole Kortix project (full repo scaffold) | CODE |
| MEDIUM | apps/web/src/features/session/session-chat.tsx | 3775 | // UI doesn't flicker between agentic steps. NOT a 2s debounce. | COMMENT |
| MEDIUM | apps/web/src/lib/blog-posts.ts | 511 | text: 'The rest of the market is converging on the same lesson. [Auth0](https://auth0.com/blog/api-key-security-fo | CODE |
| MEDIUM | apps/web/src/lib/blog-posts.ts | 664 | text: 'The market is already pointing this way. [Accenture AI Refinery](https://www.accenture.com/us-en/services/a | CODE |
| MEDIUM | apps/web/src/lib/kortix/session-category.ts | 24 | * (Engineer · #3 Project scaffold) | COMMENT |
| MEDIUM | apps/cli/DESIGN.md | 230 | scaffold.ts # init scaffold (existing) | CODE |
| MEDIUM | apps/cli/scripts/e2e-cloud.sh | 205 | # …then scaffold a Kortix project so link CAN succeed. | COMMENT |
| MEDIUM | apps/cli/src/index.ts | 389 | // project scaffold — `kortix <new-project-name>` used to, which turned | COMMENT |
| MEDIUM | apps/cli/src/commands/init.ts | 356 | // scaffold into an existing non-empty folder — a Kortix project is standalone. | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 480 | // Scaffold-warm the seed: materialize the image-baked scaffold at /workspace | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 484 | // wall). Resolve opencode's config from the scaffold's .kortix/opencode so the | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 489 | // scaffold seed. A failed project clone returns false and degrades to the | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 490 | // scaffold seed. | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/main.ts | 552 | // (scaffold OR real project repo) materialized; otherwise capture cannot be pinned. | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 605 | // the baked content IS this session's base — i.e. a fresh scaffold-rooted | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 607 | // (an imported repo / diverged project), the baked scaffold is the WRONG | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 626 | // /opt/kortix/scaffold.git whose root commit is SHARED with every project | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 819 | // Materialize `target` from the image-baked scaffold + a delta fetch from the | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 837 | // ZERO-NETWORK fast path: the image-baked scaffold's root commit is shared, | COMMENT |
| MEDIUM | apps/api/src/snapshots/build-context.ts | 169 | // Canonical scaffold repo baked at /opt/kortix/scaffold.git. Built from the | COMMENT |
| MEDIUM | apps/api/src/snapshots/build-context.ts | 222 | // Fail-loud completeness guard: a context missing scaffold.git / the agent | COMMENT |
| MEDIUM | apps/api/src/snapshots/templates.ts | 57 | // (`ship`, `cr`, `tunnel`, `self-host`, `accounts`, the whole `init`/scaffold | COMMENT |
| MEDIUM | apps/api/src/snapshots/dockerfile-layer.ts | 481 | // Canonical scaffold repo (bare). Its root commit matches every seeded | COMMENT |
| MEDIUM | apps/api/src/snapshots/providers/daytona.ts | 114 | // reports as "Path does not exist: …/scaffold.git". Re-staging self-heals | COMMENT |
| MEDIUM | …i/src/snapshots/__tests__/cli-executor-closure.test.ts | 10 | // developer-only CLI edit (`ship`, `cr`, `tunnel`, `self-host`, the scaffold | COMMENT |
| MEDIUM | apps/api/src/projects/git-backends/github.ts | 157 | // image-baked scaffold (snapshots/build-context.ts). Without forwarding | COMMENT |
| MEDIUM | apps/api/src/projects/git-backends/github.ts | 159 | // to the baked scaffold → every fresh session full-cloned through the | COMMENT |
| MEDIUM | apps/api/src/projects/lib/triggers.ts | 1238 | // No manifest yet → synthesize a minimal one. Brand-new repos scaffold | COMMENT |
| MEDIUM | apps/api/src/projects/lib/triggers.ts | 1239 | // kortix.yaml (matching the CLI scaffold); resolve the yaml sibling of | COMMENT |
| MEDIUM | apps/api/src/projects/lib/sessions.ts | 755 | // can skip the in-guest fetch when the baked scaffold already IS base. | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/routes/r1.ts | 519 | // Seed the project tip == the deterministic scaffold root (the constant | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/routes/r1.ts | 520 | // 'kortix-project' render), byte-identical to the image-baked scaffold | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/routes/r1.ts | 523 | // network (git.ts baked-checkout reuse fires when baseSha == scaffold | COMMENT |
| MEDIUM | apps/api/src/__tests__/e2e-create-repo-starter.test.ts | 26 | // scaffold changes. | COMMENT |
| MEDIUM | …pi/src/__tests__/unit-daytona-snapshot-context.test.ts | 225 | // exactly the reported symptom: the SDK can't find scaffold.git in the context | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .claude/skills/kortix-presentation/scripts/repair.py | 58 | print(f"Error: {src} not found", file=sys.stderr) | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/repair.py | 110 | except Exception: | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/clean.py | 276 | print(f"Error: {unpacked_dir} not found", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/add_slide.py | 40 | print(f"Error: {layout_path} not found", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/add_slide.py | 97 | print(f"Error: {source_slide} not found", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/add_slide.py | 187 | print(f"Error: {unpacked_dir} not found", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/thumbnail.py | 66 | print(f"Error: Invalid PowerPoint file: {args.input}", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/thumbnail.py | 79 | print("Error: No slides found", file=sys.stderr) | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/thumbnail.py | 90 | except Exception as e: | CODE |
| MEDIUM | .claude/skills/kortix-presentation/scripts/thumbnail.py | 91 | print(f"Error: {e}", file=sys.stderr) | CODE |
| LOW | .claude/skills/kortix-presentation/scripts/thumbnail.py | 246 | except Exception: | CODE |
| LOW | …aude/skills/kortix-presentation/scripts/office/pack.py | 126 | except Exception as e: | CODE |
| MEDIUM | …/skills/kortix-presentation/scripts/office/validate.py | 94 | print(f"Error: Validation not supported for file type {file_extension}") | CODE |
| LOW⚡ | …de/skills/kortix-presentation/scripts/office/unpack.py | 78 | except Exception as e: | CODE |
| LOW⚡ | …de/skills/kortix-presentation/scripts/office/unpack.py | 87 | except Exception: | CODE |
| LOW⚡ | …de/skills/kortix-presentation/scripts/office/unpack.py | 97 | except Exception: | CODE |
| LOW⚡ | …/kortix-presentation/scripts/office/validators/docx.py | 174 | except Exception as e: | CODE |
| MEDIUM⚡ | …/kortix-presentation/scripts/office/validators/docx.py | 175 | print(f"Error counting paragraphs in unpacked document: {e}") | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 197 | except Exception as e: | CODE |
| MEDIUM | …/kortix-presentation/scripts/office/validators/docx.py | 198 | print(f"Error counting paragraphs in original document: {e}") | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 287 | except Exception: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 439 | except Exception: | CODE |
| LOW | …ix-presentation/scripts/office/validators/redlining.py | 56 | except Exception: | CODE |
| LOW | …ix-presentation/scripts/office/validators/redlining.py | 65 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 195 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 138 | except Exception: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 154 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 357 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 454 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 564 | except Exception: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 583 | except Exception as e: | CODE |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 784 | except Exception as e: | CODE |
| LOW | …esentation/scripts/office/helpers/simplify_redlines.py | 43 | except Exception as e: | CODE |
| LOW | …rtix-presentation/scripts/office/helpers/merge_runs.py | 38 | except Exception as e: | CODE |
| MEDIUM | …ode/skills/paper-creator/scripts/openalex_to_bibtex.py | 180 | print(f"Error: Invalid JSON input: {e}", file=sys.stderr) | CODE |
| MEDIUM | …x/opencode/skills/logo-creator/scripts/compose_logo.py | 45 | print("Error: playwright required. Install: pip install playwright && playwright install chromium") | CODE |
| MEDIUM | …rtix/opencode/skills/logo-creator/scripts/remove_bg.py | 35 | print("Error: rembg not installed. Run: pip install rembg pillow onnxruntime") | CODE |
| MEDIUM | …rtix/opencode/skills/logo-creator/scripts/remove_bg.py | 39 | print(f"Error: File not found: {input_path}") | CODE |
| MEDIUM | …rtix/opencode/skills/logo-creator/scripts/remove_bg.py | 78 | print("Error: rembg not installed.") | CODE |
| MEDIUM | …ncode/skills/logo-creator/scripts/create_logo_sheet.py | 238 | print(f"Error: '{args.image_dir}' is not a directory") | CODE |
| MEDIUM | …ncode/skills/logo-creator/scripts/create_logo_sheet.py | 243 | print(f"Error: No images found in '{args.image_dir}'") | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 61 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 95 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 141 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 154 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 175 | except Exception as e: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 92 | except Exception: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 105 | except Exception: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 314 | except Exception as e: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 85 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 96 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 117 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 202 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 225 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 381 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 638 | except Exception: | CODE |
| LOW | …rker/.kortix/opencode/skills/elevenlabs/scripts/tts.py | 75 | except Exception: | CODE |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 469 | except Exception as e: | CODE |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 84 | except Exception as e: | STRING |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 101 | except Exception: | STRING |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/agent-tunnel/src/agent/cli.ts | 288 | // Step 1: Create device auth request | COMMENT |
| LOW⚡ | packages/agent-tunnel/src/agent/cli.ts | 318 | // Step 2: Display code and open browser | COMMENT |
| LOW⚡ | packages/agent-tunnel/src/agent/cli.ts | 327 | // Step 3: Poll for approval | COMMENT |
| LOW | …worker/.kortix/opencode/skills/draft-outreach/SKILL.md | 126 | ### Step 1: Parse Request | COMMENT |
| LOW | …worker/.kortix/opencode/skills/draft-outreach/SKILL.md | 136 | ### Step 2: Research First (Always) | COMMENT |
| LOW | …worker/.kortix/opencode/skills/draft-outreach/SKILL.md | 151 | ### Step 3: Identify Hook | COMMENT |
| LOW | …worker/.kortix/opencode/skills/draft-outreach/SKILL.md | 162 | ### Step 4: Draft Message | COMMENT |
| LOW | …worker/.kortix/opencode/skills/draft-outreach/SKILL.md | 194 | ### Step 5: Create Email Draft | COMMENT |
| LOW | …worker/.kortix/opencode/skills/daily-briefing/SKILL.md | 144 | ### Step 1: Gather Context | COMMENT |
| LOW | …worker/.kortix/opencode/skills/daily-briefing/SKILL.md | 175 | ### Step 2: Prioritize | COMMENT |
| LOW | …worker/.kortix/opencode/skills/daily-briefing/SKILL.md | 193 | ### Step 3: Generate Briefing | COMMENT |
| LOW | …rker/.kortix/opencode/skills/account-research/SKILL.md | 182 | ### Step 1: Parse Request | COMMENT |
| LOW | …rker/.kortix/opencode/skills/account-research/SKILL.md | 192 | ### Step 2: Web Search (Always) | COMMENT |
| LOW | …rker/.kortix/opencode/skills/account-research/SKILL.md | 213 | ### Step 3: Enrichment (If Connected) | COMMENT |
| LOW | …rker/.kortix/opencode/skills/account-research/SKILL.md | 230 | ### Step 4: CRM Check (If Connected) | COMMENT |
| LOW | …rker/.kortix/opencode/skills/account-research/SKILL.md | 246 | ### Step 5: Synthesize | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 268 | ### Step 1: Define the Use Case | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 274 | ### Step 2: Identify Required Elements | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 279 | ### Step 3: Define Variables | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 284 | ### Step 4: Draft the Template | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 291 | ### Step 5: Define Escalation Triggers | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/canned-responses/SKILL.md | 296 | ### Step 6: Add Metadata | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 79 | ### Step 0: Load ALL mandatory files (do this FIRST, in parallel) | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 92 | ### Step 1: Generate unique palette | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 100 | ### Step 2: Design & Build | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 104 | ### Step 3: Preview | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 166 | ## Step 1: Art Direction — Infer Before You Ask, Ask Before You Default | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 192 | ## Step 2: Publish | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 30 | ### Step 1: Design Direction | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 33 | ### Step 2: Build | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 36 | ### Step 3: Preview Locally | COMMENT |
| LOW | …pencode/skills/website-building/shared/09-technical.md | 50 | ### Step 4: Verify | COMMENT |
| LOW | …pencode/skills/website-building/shared/09-technical.md | 53 | ### Step 5: Deliver | COMMENT |
| LOW | …knowledge-worker/.kortix/opencode/skills/pptx/SKILL.md | 130 | ### Step 1: Content QA | COMMENT |
| LOW | …knowledge-worker/.kortix/opencode/skills/pptx/SKILL.md | 148 | ### Step 2: Visual QA via background session | COMMENT |
| LOW | …knowledge-worker/.kortix/opencode/skills/pptx/SKILL.md | 172 | ### Step 3: Fix-and-verify cycle | COMMENT |
| LOW | …edge-worker/.kortix/opencode/skills/call-prep/SKILL.md | 164 | ### Step 1: Gather Context | COMMENT |
| LOW | …edge-worker/.kortix/opencode/skills/call-prep/SKILL.md | 199 | ### Step 2: Research Supplement | COMMENT |
| LOW | …edge-worker/.kortix/opencode/skills/call-prep/SKILL.md | 210 | ### Step 3: Synthesize & Generate | COMMENT |
| LOW | …rker/.kortix/opencode/skills/meeting-briefing/SKILL.md | 13 | ### Step 1: Identify the Meeting | COMMENT |
| LOW | …rker/.kortix/opencode/skills/meeting-briefing/SKILL.md | 22 | ### Step 2: Assess Preparation Needs | COMMENT |
| LOW | …rker/.kortix/opencode/skills/meeting-briefing/SKILL.md | 37 | ### Step 3: Gather Context from Connected Sources | COMMENT |
| LOW | …rker/.kortix/opencode/skills/meeting-briefing/SKILL.md | 77 | ### Step 4: Synthesize into Briefing | COMMENT |
| LOW | …rker/.kortix/opencode/skills/meeting-briefing/SKILL.md | 81 | ### Step 5: Identify Preparation Gaps | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 125 | // Step 1: Enroll the phone number | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 131 | // Step 2: Create a challenge (sends SMS) | COMMENT |
| LOW⚡ | …s/web/src/components/file-editors/markdown-toolbar.tsx | 365 | // Step 1: Upload the file via OpenCode | COMMENT |
| LOW⚡ | …s/web/src/components/file-editors/markdown-toolbar.tsx | 369 | // Step 2: Read back the uploaded image and create blob URL | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1143 | // Step 1: Configure | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1148 | // Step 2: Manifest | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1152 | // Step 3: Credentials | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/kortix-presentation/scripts/repair.py | 55 | CODE | |
| LOW | .claude/skills/kortix-presentation/scripts/clean.py | 49 | CODE | |
| LOW | .claude/skills/kortix-presentation/scripts/clean.py | 171 | CODE | |
| LOW | …aude/skills/kortix-presentation/scripts/office/pack.py | 24 | CODE | |
| LOW | …aude/skills/kortix-presentation/scripts/office/pack.py | 108 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 66 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 112 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 254 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 298 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/docx.py | 391 | CODE | |
| LOW | …ix-presentation/scripts/office/validators/redlining.py | 127 | CODE | |
| LOW | …ix-presentation/scripts/office/validators/redlining.py | 198 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 62 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 104 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/pptx.py | 210 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 115 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 199 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 289 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 385 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 469 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 492 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 636 | CODE | |
| LOW | …/kortix-presentation/scripts/office/validators/base.py | 703 | CODE | |
| LOW | …esentation/scripts/office/helpers/simplify_redlines.py | 149 | CODE | |
| LOW | …rtix-presentation/scripts/office/helpers/merge_runs.py | 178 | CODE | |
| LOW | …x/opencode/skills/logo-creator/scripts/compose_logo.py | 129 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 65 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 82 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 102 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 117 | CODE | |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 109 | CODE | |
| LOW | …knowledge-worker/.kortix/opencode/skills/pdf/layout.py | 158 | CODE | |
| LOW | …owledge-worker/.kortix/opencode/skills/pdf/formfill.py | 143 | CODE | |
| LOW | …owledge-worker/.kortix/opencode/skills/pdf/formfill.py | 300 | CODE | |
| LOW | …encode/skills/document-review/scripts/annotate_pptx.py | 212 | CODE | |
| LOW | …encode/skills/document-review/scripts/annotate_xlsx.py | 68 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 77 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 100 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 410 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 513 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 607 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 707 | CODE | |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 52 | CODE | |
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 182 | CODE | |
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 235 | CODE | |
| LOW | …ix/opencode/skills/legal-writer/scripts/ecfr_lookup.py | 45 | CODE | |
| LOW | …ix/opencode/skills/legal-writer/scripts/ecfr_lookup.py | 241 | CODE | |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 37 | CODE | |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 345 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/pptx/scripts/repair.py | 20 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/pptx/scripts/pack.py | 22 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/pptx/scripts/pack.py | 47 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/pptx/scripts/slides.py | 138 | CODE | |
| LOW | …t-youtube-transcript/scripts/get_youtube_transcript.py | 33 | CODE | |
| LOW | …t-youtube-transcript/scripts/get_youtube_transcript.py | 68 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/docx/scripts/pack.py | 22 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/docx/scripts/pack.py | 47 | CODE | |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 182 | CODE | |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 199 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 160 | CODE | |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ts/e2e/scripts/test-gate5-release-verifier-fixtures.sh | 819 | GATE5_API_CURL_USER_TOKEN=dummy-user-token \ | CODE |
| LOW | apps/web/translations/zh.json | 495 | "placeholder": "输入你的消息..." | CODE |
| LOW | apps/web/translations/zh.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/zh.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/ja.json | 495 | "placeholder": "メッセージを入力..." | CODE |
| LOW | apps/web/translations/ja.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/ja.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/de.json | 495 | "placeholder": "Gib deine Nachricht ein..." | CODE |
| LOW | apps/web/translations/de.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/de.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/pt.json | 495 | "placeholder": "Digite tua mensagem..." | CODE |
| LOW | apps/web/translations/pt.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/pt.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/en.json | 495 | "placeholder": "Type your message..." | CODE |
| LOW | apps/web/translations/en.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/en.json | 4912 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/it.json | 495 | "placeholder": "Digita il tuo messaggio..." | CODE |
| LOW | apps/web/translations/it.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/it.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/fr.json | 495 | "placeholder": "Tape ton message..." | CODE |
| LOW | apps/web/translations/fr.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/fr.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/es.json | 495 | "placeholder": "Escribe tu mensaje..." | CODE |
| LOW | apps/web/translations/es.json | 1504 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/es.json | 4848 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | …s/workspace/customize/sections/teams-channel-panel.tsx | 195 | placeholder="Acme Corp" | CODE |
| LOW | apps/cli/src/__tests__/host-notice.test.ts | 81 | user_email: 'user@example.com', | CODE |
| LOW | apps/mobile/locales/zh.json | 268 | "placeholder": "给 Kortix 一个任务...", | CODE |
| LOW | apps/mobile/locales/zh.json | 959 | "placeholder": "定义你的员工应该如何行为......", | CODE |
| LOW | apps/mobile/locales/ja.json | 268 | "placeholder": "Kortixにタスクを...", | CODE |
| LOW | apps/mobile/locales/ja.json | 959 | "placeholder": "従業員がどのように行動すべきかを定義します...", | CODE |
| LOW | apps/mobile/locales/de.json | 268 | "placeholder": "Gib Kortix eine Aufgabe...", | CODE |
| LOW | apps/mobile/locales/de.json | 959 | "placeholder": "Definieren Sie, wie sich Ihr Mitarbeiter verhalten soll...", | CODE |
| LOW | apps/mobile/locales/pt.json | 268 | "placeholder": "Dê uma tarefa para o Kortix...", | CODE |
| LOW | apps/mobile/locales/pt.json | 959 | "placeholder": "Defina como seu funcionário deve se comportar...", | CODE |
| LOW | apps/mobile/locales/en.json | 268 | "placeholder": "Give Kortix a task...", | CODE |
| LOW | apps/mobile/locales/en.json | 1009 | "placeholder": "Define how your worker should behave...", | CODE |
| LOW | apps/mobile/locales/it.json | 268 | "placeholder": "Dai a Kortix un compito...", | CODE |
| LOW | apps/mobile/locales/it.json | 959 | "placeholder": "Definisci come dovrebbe comportarsi il tuo lavoratore...", | CODE |
| LOW | apps/mobile/locales/fr.json | 268 | "placeholder": "Donne une tâche à Kortix...", | CODE |
| LOW | apps/mobile/locales/fr.json | 968 | "placeholder": "Définissez comment votre travailleur doit se comporter...", | CODE |
| LOW | apps/mobile/locales/es.json | 268 | "placeholder": "Dale a Kortix una tarea...", | CODE |
| LOW | apps/mobile/locales/es.json | 968 | "placeholder": "Define cómo debe comportarse tu trabajador...", | CODE |
| LOW | apps/mobile/components/ui/search-list-header.tsx | 23 | inputProps?: Omit<TextInputProps, 'value' | 'onChangeText' | 'placeholder' | 'placeholderTextColor' | 'style'>; | CODE |
| LOW | apps/api/src/__tests__/unit-email-channel.test.ts | 430 | message: { ...event.message, from: 'vip-12@example.org' }, | CODE |
| LOW | apps/api/src/__tests__/unit-teams-commands.test.ts | 18 | expect(parseTeamsCommand('/use Acme Corp')).toEqual({ verb: 'use', arg: 'Acme Corp' }); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 57 | expect(properAccountName('Acme Corp')).toBe('Acme Corp'); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 70 | [{ accountId: 'a1', name: 'Acme Corp' }], | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 73 | expect(names.get('a1')).toBe('Acme Corp'); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 133 | { accountId: 'a1', name: 'Acme Corp' }, | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 138 | expect(names.get('a1')).toBe('Acme Corp'); | CODE |
| LOW⚡ | …api/src/__tests__/billing/customers-repository.test.ts | 117 | { accountId: 'acc_3', id: 'cus_old', email: 'user@example.com', provider: 'stripe', active: true }, | CODE |
| LOW⚡ | …api/src/__tests__/billing/customers-repository.test.ts | 123 | email: 'user@example.com', | CODE |
| LOW⚡ | …api/src/__tests__/billing/customers-repository.test.ts | 131 | expect.objectContaining({ email: 'user@example.com', active: true }), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …kortix/opencode/skills/paper-creator/scripts/verify.sh | 4 | # Runs a comprehensive checklist against a compiled paper and reports pass/fail. | COMMENT |
| MEDIUM | packages/sdk/src/react/use-session.ts | 388 | // lands (count grows) — robust to server-normalized text where a text-equality | COMMENT |
| MEDIUM | .github/workflows/self-host-e2e.yml | 3 | # Heavyweight, comprehensive self-host regression test — builds ALL self-host | COMMENT |
| MEDIUM | apps/desktop-electron/src/main.js | 287 | // Same size + center as the main window so swapping splash → app is seamless | COMMENT |
| MEDIUM | apps/web/src/app/(system)/debug/tools/page.tsx | 265 | '# App Router\n\nThe App Router is a new paradigm for building applications using React’s latest features.', | CODE |
| MEDIUM | apps/web/src/features/session/session-actions-panel.tsx | 111 | // Jump to the tool the user clicked in the chat (focus by callID, robust to | COMMENT |
| MEDIUM | apps/web/src/features/session/detect-command.ts | 79 | // Fallback: robust full-template match where placeholders are wildcards. | COMMENT |
| MEDIUM | apps/web/src/features/session/session-chat.tsx | 4603 | // drive the agent through the SAME robust path the input uses — optimistic | COMMENT |
| MEDIUM | apps/web/src/features/session/tool-renderers.tsx | 5196 | // Panel: fill the height as a seamless column (the side-panel frame | COMMENT |
| MEDIUM | apps/web/src/components/kortix/new-ticket-dialog.tsx | 352 | // Auto-size title and body to fit content — the seamless feel requires that | COMMENT |
| MEDIUM | apps/cli/scripts/build.sh | 8 | # are produced the same way (CI, dev-local.sh, the snapshot test harness). | COMMENT |
| MEDIUM | apps/cli/src/commands/ship.ts | 609 | // GitHub origin → the seamless import (one-click App install, or --github-token). | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 572 | // Rename the unborn branch to `base` — version-robust vs `git init -b`, which | COMMENT |
| MEDIUM | …agent-server/src/__tests__/static-web-curl.e2e.test.ts | 22 | // Capture body + status + content-type in one shot. Markers keep parsing robust | COMMENT |
| MEDIUM | apps/api/src/middleware/request-deadline.ts | 108 | // Any SSE client explicitly asks for an event stream — robust catch-all for | COMMENT |
| MEDIUM | apps/api/src/projects/routes/r2.ts | 67 | // App install needed. This is the seamless `kortix ship` flow for a repo you | COMMENT |
| MEDIUM | …pi/src/__tests__/unit-kortix-projects-security.test.ts | 7 | // this safety check is robust to where the sandbox-lookup handler lives. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ments/enterprise-release-publisher/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …ts/enterprise-vpc-template/cluster/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …s/enterprise-vpc-template/platform/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …ents/enterprise-vpc-template/state/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …rprise-release-publisher-bootstrap/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 2 | # Create the S3 bucket + DynamoDB lock table that hold Terraform remote state. | COMMENT |
| MEDIUM | infra/k8s/platform/botkube-slack-app-manifest.yaml | 3 | # Create the app: https://api.slack.com/apps -> Create New App -> From a manifest | COMMENT |
| MEDIUM | infra/k8s/charts/kortix-api/templates/namespace.yaml | 22 | # Create the namespace before everything that lands in it. | COMMENT |
| MEDIUM | …fra/k8s/charts/kortix-gateway/templates/namespace.yaml | 13 | # Create the namespace before everything that lands in it. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/enterprise-updater/src/installer.ts | 61 | elif [[ "$current" != *InvocationDoesNotExist* ]]; then | CODE |
| HIGH | …s/cli/src/self-host/__tests__/aws-vpc-blackbox.test.ts | 112 | elif [ "\${FAKE_TERRAFORM_REMOTE_REFRESHED:-}" = "1" ]; then | CODE |
| HIGH⚡ | apps/api/src/scripts/dump-opencode-schema.ts | 14 | print(sql + ";\n") | CODE |
| HIGH⚡ | apps/api/src/scripts/dump-opencode-schema.ts | 15 | print("=== TABLE ROW COUNTS ===") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/agent-tunnel/src/agent/cli.ts | 288 | // Step 1: Create device auth request | COMMENT |
| LOW⚡ | packages/agent-tunnel/src/agent/cli.ts | 318 | // Step 2: Display code and open browser | COMMENT |
| LOW⚡ | packages/agent-tunnel/src/agent/cli.ts | 327 | // Step 3: Poll for approval | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 125 | // Step 1: Enroll the phone number | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 131 | // Step 2: Create a challenge (sends SMS) | COMMENT |
| LOW⚡ | …s/web/src/components/file-editors/markdown-toolbar.tsx | 365 | // Step 1: Upload the file via OpenCode | COMMENT |
| LOW⚡ | …s/web/src/components/file-editors/markdown-toolbar.tsx | 369 | // Step 2: Read back the uploaded image and create blob URL | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1143 | // Step 1: Configure | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1148 | // Step 2: Manifest | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1152 | // Step 3: Credentials | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/performance/session-start/run.sh | 6 | # Usage: | COMMENT |
| LOW | tests/migration/scripts/junit.sh | 4 | # Usage: | COMMENT |
| LOW⚡ | scripts/setup-env.sh | 7 | # Usage: | COMMENT |
| LOW⚡ | scripts/nuke-local.sh | 13 | # Usage: | COMMENT |
| LOW | …ortix/opencode/skills/paper-creator/scripts/compile.sh | 4 | # Usage: | COMMENT |
| LOW | …kortix/opencode/skills/paper-creator/scripts/verify.sh | 7 | # Usage: | COMMENT |
| LOW | apps/cli/scripts/e2e-cloud.sh | 23 | # Usage: | COMMENT |
| LOW | apps/cli/scripts/e2e-cr.sh | 9 | # Usage: | COMMENT |
| LOW | …/src/self-host/assets/supabase/docker-compose.logs.yml | 5 | # Usage: | COMMENT |
| LOW | apps/api/scripts/e2e-change-requests.sh | 19 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …x/opencode/skills/presentations/scripts/convert_pdf.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| HIGH | …pencode/skills/presentations/scripts/validate_slide.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …e-worker/.kortix/opencode/skills/logo-creator/SKILL.md | 97 | round-1/ # AI-generated symbols | CODE |
| HIGH | …x/opencode/skills/logo-creator/scripts/compose_logo.py | 313 | # Auto-crop symbol to remove whitespace padding from AI-generated images | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 271 | # Check if we only got TLD-level info with no domain data | COMMENT |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 150 | # Check if the term appears outside its definition | COMMENT |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 183 | # Check if it might be a top-level section | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 20 | # Check if emulator is already running | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 26 | # Check if AVD exists | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 48 | # Check if dev client is installed | COMMENT |
| LOW | apps/mobile/scripts/setup-android.sh | 16 | # Check if running on macOS | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ce/customize/sections/view/gateway/gateway-routing.tsx | 443 | const inherited = routing.data.effective.defaultFallback.models.filter( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tix-presentation/scripts/office/validators/__init__.py | 5 | CODE | |
| LOW | …tix-presentation/scripts/office/validators/__init__.py | 6 | CODE | |
| LOW | …tix-presentation/scripts/office/validators/__init__.py | 7 | CODE | |
| LOW | …tix-presentation/scripts/office/validators/__init__.py | 8 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 28 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/kortix-presentation/scripts/clean.py | 221 | def update_content_types(unpacked_dir: Path, removed_files: list[str]) -> None: | CODE |
| LOW | …tix-presentation/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/web/src/components/ui/modal.tsx | 303 | // TODO: implement passing props directly to ModalContent | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 158 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/kortix-sandbox-agent-server/src/static-web.ts | 313 | function handleRequest(req: Request, port: number): Response { | CODE |