RepoPilotOpen in app →

smallcloudai/refact

AI Agent that handles engineering tasks end-to-end: integrates with developers’ tools, plans, executes, and iterates until it achieves a successful result.

Healthy

Healthy across all four use cases

weakest axis
Use as dependencyHealthy

Permissive license, no critical CVEs, actively maintained — safe to depend on.

Fork & modifyHealthy

Has a license, tests, and CI — clean foundation to fork and modify.

Learn fromHealthy

Documented and popular — useful reference codebase to read through.

Deploy as-isHealthy

No critical CVEs, sane security posture — runnable as-is.

  • Last commit 3d ago
  • 2 active contributors
  • BSD-3-Clause licensed
Show all 7 evidence items →
  • CI configured
  • Tests present
  • Small team — 2 contributors active in recent commits
  • Concentrated ownership — top contributor handles 56% of recent commits

Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Embed the "Healthy" badge

Paste into your README — live-updates from the latest cached analysis.

Variant:
RepoPilot: Healthy
[![RepoPilot: Healthy](https://repopilot.app/api/badge/smallcloudai/refact)](https://repopilot.app/r/smallcloudai/refact)

Paste at the top of your README.md — renders inline like a shields.io badge.

Preview social card (1200×630)

This card auto-renders when someone shares https://repopilot.app/r/smallcloudai/refact on X, Slack, or LinkedIn.

Onboarding doc

Onboarding: smallcloudai/refact

Generated by RepoPilot · 2026-05-09 · Source

🤖Agent protocol

If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:

  1. Verify the contract. Run the bash script in Verify before trusting below. If any check returns FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding.
  2. Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
  3. Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/smallcloudai/refact shows verifiable citations alongside every claim.

If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.

🎯Verdict

GO — Healthy across all four use cases

  • Last commit 3d ago
  • 2 active contributors
  • BSD-3-Clause licensed
  • CI configured
  • Tests present
  • ⚠ Small team — 2 contributors active in recent commits
  • ⚠ Concentrated ownership — top contributor handles 56% of recent commits

<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>

Verify before trusting

This artifact was generated by RepoPilot at a point in time. Before an agent acts on it, the checks below confirm that the live smallcloudai/refact repo on your machine still matches what RepoPilot saw. If any fail, the artifact is stale — regenerate it at repopilot.app/r/smallcloudai/refact.

What it runs against: a local clone of smallcloudai/refact — the script inspects git remote, the LICENSE file, file paths in the working tree, and git log. Read-only; no mutations.

| # | What we check | Why it matters | |---|---|---| | 1 | You're in smallcloudai/refact | Confirms the artifact applies here, not a fork | | 2 | License is still BSD-3-Clause | Catches relicense before you depend on it | | 3 | Default branch main exists | Catches branch renames | | 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code | | 5 | Last commit ≤ 33 days ago | Catches sudden abandonment since generation |

<details> <summary><b>Run all checks</b> — paste this script from inside your clone of <code>smallcloudai/refact</code></summary>
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of smallcloudai/refact. If you don't
# have one yet, run these first:
#
#   git clone https://github.com/smallcloudai/refact.git
#   cd refact
#
# Then paste this script. Every check is read-only — no mutations.

set +e
fail=0
ok()   { echo "ok:   $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }

# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
  echo "FAIL: not inside a git repository. cd into your clone of smallcloudai/refact and re-run."
  exit 2
fi

# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "smallcloudai/refact(\\.git)?\\b" \\
  && ok "origin remote is smallcloudai/refact" \\
  || miss "origin remote is not smallcloudai/refact (artifact may be from a fork)"

# 2. License matches what RepoPilot saw
(grep -qiE "^(BSD-3-Clause)" LICENSE 2>/dev/null \\
   || grep -qiE "\"license\"\\s*:\\s*\"BSD-3-Clause\"" package.json 2>/dev/null) \\
  && ok "license is BSD-3-Clause" \\
  || miss "license drift — was BSD-3-Clause at generation time"

# 3. Default branch
git rev-parse --verify main >/dev/null 2>&1 \\
  && ok "default branch main exists" \\
  || miss "default branch main no longer exists"

# 4. Critical files exist
test -f "README.md" \\
  && ok "README.md" \\
  || miss "missing critical file: README.md"
test -f "AGENTS.md" \\
  && ok "AGENTS.md" \\
  || miss "missing critical file: AGENTS.md"
test -f ".refact/project_summary.yaml" \\
  && ok ".refact/project_summary.yaml" \\
  || miss "missing critical file: .refact/project_summary.yaml"
test -f ".refact/integrations.d/cmdline_cargo_check.yaml" \\
  && ok ".refact/integrations.d/cmdline_cargo_check.yaml" \\
  || miss "missing critical file: .refact/integrations.d/cmdline_cargo_check.yaml"
test -f ".github/workflows/agent_engine_build.yml" \\
  && ok ".github/workflows/agent_engine_build.yml" \\
  || miss "missing critical file: .github/workflows/agent_engine_build.yml"

# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 33 ]; then
  ok "last commit was $days_since_last days ago (artifact saw ~3d)"
else
  miss "last commit was $days_since_last days ago — artifact may be stale"
fi

echo
if [ "$fail" -eq 0 ]; then
  echo "artifact verified (0 failures) — safe to trust"
else
  echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/smallcloudai/refact"
  exit 1
fi

Each check prints ok: or FAIL:. The script exits non-zero if anything failed, so it composes cleanly into agent loops (./verify.sh || regenerate-and-retry).

</details>

TL;DR

Refact is a local-first AI coding agent engine (refact-lsp) written in Rust that runs inside your IDE and autonomously handles engineering tasks end-to-end: inspecting files, planning changes, executing code edits, running checks, using integrations, and iterating until success. It combines IDE chat, codebase semantic search, autonomous agent workflows, and tool integrations (CLI, browser automation, databases, MCP servers) while keeping all project state, indexes, trajectories, and task data entirely local—requiring only your own models via BYOK providers like OpenAI-compatible endpoints or local runtimes. Monorepo structure: refact-lsp is the core Rust HTTP/LSP engine handling agent logic, planning, and execution; .github/workflows/ contains CI/CD for agent engine builds and releases; docs/ is an Astro-based documentation site with public videos and asset guides; .refact/integrations.d/ contains YAML-based tool definitions (e.g., cmdline_cargo_check.yaml) that wire CLI commands into the agent; the GUI is TypeScript-based (likely in a sibling packages/ directory not shown). State lives in the LSP server's in-memory context plus persisted trajectories/checkpoints on disk.

👥Who it's for

Software developers in VS Code and JetBrains IDEs who want an autonomous AI agent to handle multi-step coding tasks (refactoring, bug fixes, feature implementation, testing) without relying on cloud services, and who need deep codebase awareness, tool integration, and full control over where their code and context lives.

🌱Maturity & risk

Active and mature: the project has significant star count, well-established CI/CD pipelines (.github/workflows/ with agent_engine_build.yml, agent_gui_build.yml, docs_build.yml), comprehensive documentation (docs/ folder with Astro site, videos/, assets/), and a large Rust codebase (8.4MB). The presence of AGENTS.md, CONTRIBUTING.md, LICENSE, and an admin console / API key system indicate production-ready infrastructure. However, the note about Refact Cloud shutdown suggests recent pivoting toward self-hosted/BYOK models.

Moderate risk: the project is heavily Rust-heavy (8.4MB) with TypeScript GUI (5MB) and complex integration surface (CLI tools, MCP servers, browser automation), meaning breaking changes in agent execution or tool API compatibility could impact workflows. The monorepo spans multiple languages and deployment targets (Dockerfile for docs, agent_engine_release.yml pipeline). Dependency management across Rust LSP + TypeScript frontend + Python tooling increases maintenance burden. Single-engine architecture (refact-lsp) means bugs in the core agent loop are critical.

Active areas of work

The project is actively maintained with focus on: (1) agent engine stability and release cycles (agent_engine_build.yml, agent_engine_release.yml workflows); (2) documentation expansion (docs/ folder with Astro, videos for various features like 'Agent_How_To_Start.mp4', 'Auto_Apply.mp4', 'Switch_To_The_Agent.mp4'); (3) local-first model integration (Refact Cloud shutdown, emphasis on BYOK and local runtimes); (4) tool integration framework (cmdline_cargo_check.yaml suggests expanding CLI tool support). The project summary and integration definitions suggest ongoing refinement of the agent's capability surface.

🚀Get running

git clone https://github.com/smallcloudai/refact.git
cd refact
# For the Rust engine (refact-lsp):
cargo build --release
# For the documentation site (Astro):
cd docs && npm install && npm run dev
# For contributing: read CONTRIBUTING.md and AGENTS.md

Daily commands: Rust engine: cargo build --release && cargo run --release (starts refact-lsp on HTTP/LSP ports, configure model providers via config). Documentation site: cd docs && npm install && npm run dev (Astro dev server on localhost:3000, disabled telemetry). Full dev loop: Start refact-lsp engine, connect IDE extension (VS Code or JetBrains), interact via chat or agent workflow.

🗺️Map of the codebase

  • README.md — Primary entry point describing Refact's architecture as a local-first AI agent with IDE integration, autonomous workflows, and tool-powered development.
  • AGENTS.md — Documents the autonomous agent system and workflows that form the core execution model of Refact.
  • .refact/project_summary.yaml — Project configuration and integration metadata that defines how Refact integrates with developer tools.
  • .refact/integrations.d/cmdline_cargo_check.yaml — Example integration demonstrating how Refact hooks into build tools (Cargo) for feedback-driven iteration.
  • .github/workflows/agent_engine_build.yml — CI/CD pipeline for the core Rust LSP engine (refact-lsp), the load-bearing runtime component.
  • .github/workflows/agent_gui_build.yml — Build pipeline for the IDE-facing GUI layer that presents the agent interface to developers.
  • docs/astro.config.mjs — Documentation site configuration using Astro, the primary communication channel for contributors.

🧩Components & responsibilities

  • Refact LSP Engine — undefined

🛠️How to make changes

Add a New Tool Integration

  1. Create a new YAML file in .refact/integrations.d/ following the pattern of cmdline_cargo_check.yaml, defining the tool command, arguments, and output parsing. (.refact/integrations.d/your_tool_name.yaml)
  2. Reference the integration in .refact/project_summary.yaml under the integrations section so the agent engine discovers it. (.refact/project_summary.yaml)
  3. Document the integration in docs/src/ with screenshots and configuration examples for users. (docs/src/assets/configure_providers/)

Add Agent Workflow Documentation

  1. Add workflow examples and descriptions to AGENTS.md showing how the autonomous agent tackles engineering tasks end-to-end. (AGENTS.md)
  2. Create corresponding markdown files in docs/src/ with step-by-step guides and video assets if applicable. (docs/src/content/)
  3. Update docs/astro.config.mjs sidebar configuration to expose the new agent workflow documentation. (docs/astro.config.mjs)

Add IDE Support or GUI Feature

  1. Implement the feature in the language-specific IDE plugin (JetBrains, VS Code, etc.) in the main refact-lsp repository. (.github/workflows/agent_gui_build.yml)
  2. Add screenshots and UX documentation to docs/src/assets/ showing the new feature in action. (docs/src/assets/)
  3. Document the feature in the appropriate guide file within docs/src/ and update the Astro site structure. (docs/)

Release a New Engine Version

  1. Push a versioned tag to the repository; .github/workflows/agent_engine_release.yml will automatically trigger. (.github/workflows/agent_engine_release.yml)
  2. The workflow builds, tests, and publishes the Rust engine binary; monitor the build artifacts. (.github/workflows/agent_engine_build.yml)
  3. Update README.md and release notes in docs/ to announce new features or breaking changes. (README.md)

🔧Why these technologies

  • Rust (refact-lsp) — Core engine needs low-latency tool execution, tight IDE integration, and efficient resource usage for local-first operation.
  • YAML configuration (.refact/integrations.d/) — Simple declarative format for defining tool integrations without requiring code changes, enabling extensibility.
  • Astro + Starlight — Static documentation site with fast build times, excellent SEO, and built-in search (DocSearch) for user onboarding.
  • GitHub Actions — Native CI/CD for Rust builds, IDE plugin compilation, and automated releases without external infrastructure.
  • LLM API integration — Autonomous agent reasoning and planning requires large language models for understanding tasks and generating execution strategies.

⚖️Trade-offs already made

  • Local-first with optional cloud connectivity

    • Why: Users want privacy and offline capability while maintaining flexibility to use cloud LLMs or services.
    • Consequence: Architecture must support both embedded models and remote API calls; adds complexity in routing and caching.
  • YAML-based tool integrations vs. plugin API

    • Why: Lower barrier to entry for non-developers to extend Refact with new tools.
    • Consequence: Limited expressiveness compared to a full plugin system; complex behaviors require hardcoded support in the engine.
  • Rust LSP + GUI layer separation

    • Why: Engine-agnostic design allows multiple IDE frontends (JetBrains, VS Code, etc.) to share the same core logic.
    • Consequence: Additional IPC/protocol overhead (LSP), but gains maintainability and cross-IDE consistency.
  • Static documentation over dynamic API docs

    • Why: Simplifies deployment, reduces runtime dependencies, and improves page load performance for large docs.
    • Consequence: API docs must be manually kept in sync with code; no dynamic introspection.

🚫Non-goals (don't propose these)

  • Not a general-purpose LLM chat interface—optimized specifically for engineering workflow automation.
  • Does not replace IDE-native language servers—complements them via tool integration.
  • Not a cloud-only service—designed for local execution with optional cloud fallback.
  • Not a real-time collaborative editing platform—focuses on asynchronous agent task execution.
  • Does not manage authentication directly—relies on external identity providers (Keycloak mentioned in docs) or API keys.

🪤Traps & gotchas

  1. LSP port binding: refact-lsp binds to specific HTTP and LSP ports (likely 8080 and 3932 based on LSP convention)—ensure they're not in use. 2. Model provider required: the engine won't run without a configured model provider (OpenAI-compatible endpoint or local runtime); local-first setup requires explicit BYOK config. 3. Cargo/Rust version: Rust 1.70+ likely required given 8.4MB codebase size and Tokio async patterns; check rust-toolchain.toml if present. 4. IDE extension binding: the TypeScript GUI must connect to refact-lsp via HTTP—network/firewall issues or port misconfigs silently fail. 5. ASTRO_TELEMETRY_DISABLED=1: the docs build requires this env var set; missing it may cause build errors or telemetry leaks.

🏗️Architecture

💡Concepts to learn

  • Language Server Protocol (LSP) — refact-lsp is the core engine communicating with IDEs (VS Code, JetBrains) via LSP; understanding the protocol (textDocument/definition, workspace/symbol, custom methods) is essential for extending IDE integration
  • Autonomous Agent Planning & Execution Loop — The agent in Refact operates as a loop: perceive (read files, run checks), plan (LLM reasoning), act (edit code, run tools), observe (check results), iterate—understanding this loop is critical for debugging agent behavior and adding new capabilities
  • Semantic Code Search (AST + Embeddings) — Refact's 'deep codebase awareness' relies on combining Abstract Syntax Trees (AST parsing) with semantic embeddings for code search; this context feeds into agent planning, so understanding how code is indexed and retrieved is key
  • YAML-based Declarative Tool Integration — Tools are registered via .refact/integrations.d/*.yaml files (e.g., cmdline_cargo_check.yaml); this declarative pattern decouples tool definitions from agent code, making it easy to extend without modifying Rust
  • Trajectory & Checkpoint Persistence — The agent logs its planning steps, actions, and observations into trajectories; checkpoints allow rollback (see enable_rollback.mp4, use_rollback.mp4); this is critical for debugging, learning, and user control over agent behavior
  • BYOK (Bring Your Own Key) Model Provider Pattern — Refact is local-first and does not rely on bundled inference; users must configure their own model providers (OpenAI-compatible, local runtimes, etc.); understanding how provider config flows into the agent is essential for deployment
  • MCP (Model Context Protocol) Servers — Refact integrates with MCP servers as a standard way to expose tools (databases, file systems, APIs); MCP is an emerging standard for standardizing tool/context discovery, making Refact's tool ecosystem composable and extensible
  • aider/aider — Similar autonomous agent for code editing in the CLI; direct competitor solving the same multi-step coding task problem with different transport (CLI vs. IDE LSP)
  • github/copilot-cli — GitHub's CLI-based agent automation tool; alternative approach to agent-driven development with focus on command-line workflows rather than IDE integration
  • microsoft/vscode-languageserver-node — TypeScript LSP client/server library; Refact's IDE communication likely uses this or extends it, so essential for understanding refact-lsp protocol layer
  • anthropics/anthropic-sdk-python — Claude API SDK for Python-based integrations; Refact supports model providers and may use this for local Claude runtime integration
  • openai/openai-python — OpenAI API SDK; Refact's BYOK model provider system likely supports OpenAI-compatible endpoints via this library

🪄PR ideas

To work on one of these in Claude Code or Cursor, paste: Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.

Add GitHub Actions workflow for documentation build validation and deployment

The repo has a docs_build.yml workflow stub but no visible evidence of automated doc site validation. The docs/ directory uses Astro with Starlight, sharp, and docsearch dependencies. A comprehensive workflow should validate builds, check for broken links in the generated site, and potentially deploy previews on PRs. This prevents documentation regressions and ensures the site at docs.refact.ai stays functional.

  • [ ] Review existing .github/workflows/docs_build.yml to understand current setup
  • [ ] Add npm install and build steps that match docs/package.json scripts
  • [ ] Integrate a link checker (e.g., lychee or broken-link-checker) to validate generated HTML output
  • [ ] Add artifact upload for failed build logs and failed link reports
  • [ ] Consider adding Lighthouse CI for docs performance validation (Astro sites benefit from this)
  • [ ] Document the workflow in docs/README.md or CONTRIBUTING.md

Add integration tests for .refact/integrations.d/ custom command definitions

The repo has .refact/integrations.d/cmdline_cargo_check.yaml as a configuration file for custom integrations, but there's no visible test suite validating YAML schema, command execution, or integration parsing. As an AI agent that executes engineering tasks, malformed integration configs could break workflows. Add tests to validate YAML structure, required fields, and command availability.

  • [ ] Create tests/ or src/tests/ directory structure if missing
  • [ ] Add schema validation tests for .refact/integrations.d/*.yaml files (validate against a JSONSchema or similar)
  • [ ] Add tests for the integration loader/parser to ensure malformed configs are caught early
  • [ ] Test that required fields (like command, description) are present in integration definitions
  • [ ] Add a test fixture with both valid and invalid integration configs
  • [ ] Document testing approach in CONTRIBUTING.md

Add CI workflow to validate and build the agent_engine across platforms

There are agent_engine_build.yml and agent_engine_release.yml workflows, but without seeing their contents, it's likely they don't cover all target platforms or configurations. Given this is an AI agent that integrates with developer tools (cargo, IDE plugins), cross-platform testing (Linux, macOS, Windows) is critical. Add matrix testing to catch platform-specific issues early.

  • [ ] Audit .github/workflows/agent_engine_build.yml for platform coverage (Linux, macOS, Windows)
  • [ ] Add matrix strategy with os: [ubuntu-latest, macos-latest, windows-latest] if missing
  • [ ] Ensure build artifacts are cached properly (Rust toolchain, node_modules) to speed up CI
  • [ ] Add linting checks (clippy for Rust, eslint for Node components) to the build workflow
  • [ ] Add a check that binaries/artifacts are actually produced and are not empty
  • [ ] Update CONTRIBUTING.md with local build instructions that match CI matrix

🌿Good first issues

  • Add integration test coverage for .refact/integrations.d/ YAML parsing: verify that malformed YAML configs fail gracefully and valid configs are correctly loaded into the agent's tool registry: Integration definitions are critical to agent functionality but may lack test coverage; this ensures tool loading is reliable
  • Document the LSP protocol endpoints used by refact-lsp in docs/src/: create a reference page listing HTTP routes (e.g., /agent/plan, /agent/execute, /search/semantic) with request/response shapes: IDE extension developers and third-party tool integrators need clear API docs; currently absent from docs/
  • Create a 'Getting Started with Tool Integration' guide in AGENTS.md with a walkthrough example that adds a simple shell-command tool via .refact/integrations.d/ and shows how the agent uses it: Tool extension is a key feature but no concrete tutorial exists; this lowers the barrier for contributors wanting to add integrations

Top contributors

Click to expand
  • [@Refact Agent](https://github.com/Refact Agent) — 56 commits
  • @JegernOUTT — 44 commits

📝Recent commits

Click to expand
  • e895ca8 — chore(claude): normalize internal tool names (JegernOUTT)
  • 85c10d8 — Fix unused sidebar middleware import (JegernOUTT)
  • 1e1bc97 — feat(tasks): persist active planner chat (Refact Agent)
  • 7252345 — fix(chat): drop empty assistant placeholders on error (Refact Agent)
  • 4f4907c — refactor(chat): extract llm retry policy (Refact Agent)
  • 942ba7e — chore: merge worktree updates for handoff flow (Refact Agent)
  • 4616775 — fix(lsp): reject non-file document uris (Refact Agent)
  • 38c7496 — feat(engine): add low-context chat compression (Refact Agent)
  • 672dbd2 — fix(lsp): canonicalize workspace roots and ignore non-file uris (Refact Agent)
  • db7e08e — fix(gui): handle sidebar workspace edge cases (Refact Agent)

🔒Security observations

  • Medium · Outdated Dependencies with Known Vulnerabilities — docs/package.json - dependencies section. The package.json contains several dependencies that may have known vulnerabilities. Specifically, 'astro' (^4.6.4), '@astrojs/starlight' (^0.21.5), '@docsearch/js' (^3.5.2), and 'sharp' (^0.32.6) are pinned to versions that may be outdated. Sharp in particular has had past CVEs related to image processing. The caret (^) versioning allows minor and patch updates, but major vulnerabilities could exist in these versions. Fix: Run 'npm audit' to identify specific vulnerabilities. Update all dependencies to the latest versions: 'npm update' or 'npm install --save-latest'. Configure Dependabot in GitHub to automatically check for and alert on vulnerable dependencies. Consider using 'npm ci' in CI/CD pipelines for reproducible builds.
  • Medium · Missing Security Headers Configuration — docs/nginx.conf. The nginx.conf file is present but cannot be fully analyzed from the provided information. Nginx configurations often lack essential security headers like Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, and Strict-Transport-Security. Documentation sites should enforce these headers to prevent XSS and clickjacking attacks. Fix: Implement security headers in nginx.conf: add_header X-Frame-Options 'SAMEORIGIN'; add_header X-Content-Type-Options 'nosniff'; add_header X-XSS-Protection '1; mode=block'; add_header Referrer-Policy 'strict-origin-when-cross-origin'; add_header Content-Security-Policy "default-src 'self'"
  • Low · Telemetry Disabled via Environment Variable — docs/package.json - all scripts. While disabling telemetry is a privacy-positive practice, relying on environment variables (ASTRO_TELEMETRY_DISABLED=1) in build scripts is fragile. If not consistently applied, telemetry could be re-enabled, collecting user data without awareness. Fix: Create an astro.config.mjs configuration file that explicitly disables telemetry in code: export default defineConfig({ telemetry: false }). This is more reliable than environment variables and documents the decision in code.
  • Low · No Evidence of Input Validation in Documentation Site — docs/src - Astro components (not fully visible). The file structure shows a documentation site (Astro-based). While Astro is a static site generator with lower XSS risk than dynamic sites, if any user input is processed (search, forms), there should be evidence of validation. The @docsearch/js dependency provides search functionality which could be a vector for reflected XSS if improperly configured. Fix: Ensure all user inputs are validated and sanitized. Use Astro's built-in escaping for dynamic content. Verify @docsearch/js is configured securely and updated regularly. Review any custom JavaScript that processes user input.
  • Low · Potential Sensitive Configuration Files in Repository — .github/workflows, .refact/ directory. The .github/workflows directory contains CI/CD pipeline configurations. While GitHub Actions are generally secure, secrets should never be hardcoded in workflow files. Additionally, .refact/ directory contains configuration files that should be reviewed to ensure no API keys, credentials, or sensitive data are committed. Fix: Audit .refact/integrations.d/*.yaml and .refact/project_summary.yaml for any hardcoded secrets. Use GitHub Secrets for sensitive values in workflows. Implement pre-commit hooks (git-secrets, truffleHog) to prevent accidental credential commits. Review git history for any previously committed secrets.
  • Low · Sharp Image Processing Library Security — docs/package.json - sharp dependency. The 'sharp' dependency (^0.32.6) is used for image processing. While sharp is generally secure, image processing libraries historically have had vulnerabilities (CVE-2023-44616, others). The version specified may be behind current patches. Fix: Update sharp to the latest version. Monitor sharp releases for security updates at https://github.com/lovell/sharp/releases. Consider implementing image upload validation and size limits if sharp is used for user-uploaded images. Run 'npm audit' specifically for sharp: 'npm audit | grep sharp'

LLM-derived; treat as a starting point, not a security audit.


Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.

Healthy signals · smallcloudai/refact — RepoPilot