Skip to content

Initial import of codecrucible + config-loadable model registry#2

Open
ccarpene-blk wants to merge 5 commits intomainfrom
initial-import
Open

Initial import of codecrucible + config-loadable model registry#2
ccarpene-blk wants to merge 5 commits intomainfrom
initial-import

Conversation

@ccarpene-blk
Copy link
Copy Markdown
Collaborator

Summary

Lands the codecrucible LLM-based security scanner on top of the Block OSS
template and adds config-driven model registry support.

  • Initial import (11e8d0c): Go CLI that ingests a Git repo, runs a
    recall-tuned first pass plus an adversarial audit, and emits SARIF
    v2.1.0 for GitHub Code Scanning. Per-phase provider selection
    (Anthropic, OpenAI, Google, Databricks, Ollama, OpenAI-compat),
    token-budget-aware chunking, and language-specific prompt packs
    (Go / Java / JS / Python / Rust / C / Solidity, plus default and
    carlini-style CTF variants). Block OSS template files (LICENSE,
    CODEOWNERS, GOVERNANCE.md, .github/, renovate.json) kept intact;
    stub README replaced with project documentation.
  • Config-loadable models (856442c): adding or retuning a model no
    longer requires recompiling. Operators declare entries under a
    top-level models: key in .codecrucible.yaml; same-name entries
    override built-ins wholesale, new names extend the registry, empty
    endpoint defaults to <name>/invocations, missing name surfaces
    a Load error.

Test plan

  • go build ./...
  • go vet ./...
  • go test -race ./... (all packages pass)
  • make docker-build on merge
  • Smoke test: ./codecrucible scan ./some/repo --dry-run against a
    known target
  • Smoke test: .codecrucible.yaml with a custom models: entry
    resolves on scan (list-models + a dry-run against that model)

🤖 Generated with Claude Code

ccarpene-blk and others added 2 commits April 23, 2026 14:39
LLM-based static analyzer that ingests a Git repository, runs a
recall-tuned first-pass plus an adversarial audit, and emits SARIF
v2.1.0 for GitHub Code Scanning. Ships with per-phase provider
selection (Anthropic, OpenAI, Google, Databricks, Ollama,
OpenAI-compat), token-budget-aware chunking, and a set of
language-specific prompt packs (Go / Java / JS / Python / Rust /
C / Solidity, plus the language-agnostic default and carlini-style
CTF variants).

Retains the Block OSS template files (LICENSE, CODEOWNERS,
GOVERNANCE.md, .github/, renovate.json) unchanged and replaces the
stub README with project documentation.

Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
Previously the model registry was compiled into the binary; adding or
adjusting a model required a code change and a rebuild. Users can now
declare model entries under a top-level `models:` key in
`.codecrucible.yaml` (or supply them via env / flags through Viper).

Entries sharing a built-in name replace it wholesale (case-insensitive),
new names extend the registry, and an empty `endpoint` defaults to
`<name>/invocations` to match the built-in convention. Missing `name`
surfaces as a Load error with the offending index.

The config template written by `codecrucible init` now includes a
commented `models:` block, and the README picks up a worked-example
section so the capability is discoverable.

Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>
Comment thread Dockerfile
-o codecrucible ./cmd/codecrucible

# Stage 2: Runtime
FROM gcr.io/distroless/static-debian12:nonroot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants