Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Hints

workspace(action: activate) now returns a project_hints field with manifest-derived context so agents have useful information even when onboarding has never been run.

Why

Previously, an agent hitting a codescout project in a client that never calls onboarding saw only the languages list. No build commands, no entry points, no manifest info. The agent had to probe the filesystem itself — or guess.

project_hints fills that gap with a cheap manifest probe that runs on every workspace(action: activate) call.

What you get

{
  "status": "ok",
  "project": "codescout",
  "project_root": "/home/you/work/codescout",
  "languages": ["rust"],
  "project_hints": {
    "primary_language": "rust",
    "manifest": "Cargo.toml",
    "entry_points": ["src/main.rs", "src/lib.rs"],
    "build_commands": ["cargo build", "cargo test", "cargo run"],
    "onboarded": false
  },
  "memories": [],
  "hint": "CWD: /home/you/work/codescout. Run workspace(action: status) for health checks and memory staleness."
}

Fields

FieldMeaning
primary_languageLanguage inferred from the detected manifest. null when no manifest recognised.
manifestFilename that drove detection (Cargo.toml, package.json, etc.).
entry_pointsCanonical entry-point files that exist on disk. Capped at 3.
build_commandsBuild / test / run commands for the detected manifest.
onboardedtrue when an onboarding memory exists (indicates a full onboarding has been performed at some point).

Supported manifests

ManifestLanguageNotes
package.jsontypescript if tsconfig.json also exists, else javascriptChecked first — Node projects sometimes ship a pyproject.toml for tooling.
Cargo.tomlrust
pyproject.toml / setup.pypython
go.modgo
pom.xmljava
build.gradle.kts / build.gradlekotlin

Relationship to onboarding

project_hints is not a replacement for the onboarding tool. It’s a cheap fallback for when onboarding has never been called:

SignalSource
Primary language, entry points, build commandsproject_hints — always populated when a manifest exists
README summary, architecture notes, memory writesonboarding — only after full scan
System prompt draftonboarding — only after full scan

When onboarded: true, the real memories (project-overview, architecture, language-patterns) are the authoritative source. project_hints stays populated for consistency but agents should prefer memory content when available.

Behaviour

  • No probe runs if the project root has no recognised manifest — fields are null / empty arrays.
  • All probes are read-only file-existence checks. No file parsing beyond checking tsconfig.json presence for TS vs JS disambiguation.
  • First manifest match wins. package.json takes priority; otherwise the order is: Cargo.toml → pyproject.toml → setup.py → go.mod → pom.xml → build.gradle.kts → build.gradle.