-
Notifications
You must be signed in to change notification settings - Fork 0
Release 0.1 Project Discovery
Select a directory and receive an evidence-backed map of its repositories, services, runtimes, tools, ports, data stores, and dependencies.
Release 0.1 is StackCendra's first public demonstration and the foundation for environment generation, configuration intelligence, and incident reproduction.
- user explicitly selects a directory;
- desktop app displays the exact scan boundary;
- symlink and junction traversal is constrained;
- standard exclusions are applied and editable;
- the user can cancel a scan;
- no project code is executed.
Detect:
- Git worktrees and repository roots;
- nested repositories;
- monorepo workspace boundaries;
- ignored and generated directories;
- default branch and current commit when available;
- uncommitted-state metadata without reading secret values.
Initial indicators:
| Ecosystem | Evidence |
|---|---|
| JavaScript/TypeScript |
package.json, lockfiles, workspace files |
| Next.js/React | dependencies and framework configuration |
| Express/NestJS | dependencies, bootstrap conventions, configuration |
| Python |
pyproject.toml, requirements files, framework imports |
| Go |
go.mod, go.work, command packages |
| Rust |
Cargo.toml, workspace members, binary targets |
| Java | Maven/Gradle files and framework dependencies |
| C/C++ | CMake, Meson, and Make files |
| Infrastructure | Dockerfiles, Compose, Kubernetes, Helm, Terraform, CI workflows |
Every detector declares:
- facts it can emit;
- evidence locations;
- confidence rules;
- supported file versions;
- limits and known false-positive cases.
Infer:
- runtime version constraints;
- package manager;
- startup and development commands as proposals only;
- required CLI tools;
- container runtime expectations;
- missing local tools.
Commands from manifests are displayed but never executed during discovery.
Inspect:
- framework configuration;
- Compose and container definitions;
- environment-variable names and safe default values;
- source declarations for known port APIs;
- connection URL structure without recording credentials;
- service names, hostnames, health checks, and
depends_onrelationships.
Output a directed service graph with evidence for every edge.
Each detected fact contains:
{
"kind": "service.port",
"subject": "checkout-api",
"value": 4000,
"source": "detector",
"confidence": 0.96,
"evidence": [
{
"path": "services/checkout/src/main.ts",
"line": 18,
"extract_hash": "opaque-content-hash"
}
],
"observed_at": "RFC3339 timestamp",
"detector_version": "versioned-detector-id",
"status": "unconfirmed"
}Sensitive literal values are redacted before persistence. Evidence extracts are minimal and bounded.
flowchart TD
Select["Select trusted root"] --> Enumerate["Bounded file enumeration"]
Enumerate --> Repos["Repository and workspace detection"]
Repos --> Manifests["Manifest parsing"]
Manifests --> Detectors["Parallel deterministic detectors"]
Detectors --> Normalize["Normalize facts and evidence"]
Normalize --> Graph["Build service graph"]
Graph --> Score["Confidence and conflict scoring"]
Score --> Review["User review and corrections"]
Review --> Catalog["Persist project catalog"]
Release 0.1 does not require an LLM. Deterministic detectors establish the project model. Optional AI can:
- summarize the map;
- explain evidence;
- suggest questions for low-confidence areas.
AI cannot invent facts without labeling them as hypotheses.
Targets are measured on maintained fixtures:
- first useful results stream within 2 seconds;
- medium repository scan completes within 10 seconds;
- cancellation responds within 500 milliseconds;
- memory use remains bounded on large repositories;
- unchanged files are not reparsed on incremental scans;
- detector failures do not abort unrelated detectors.
Exact repository sizes and hardware profiles must be recorded with benchmark results.
- A user selects a directory from the Tauri application.
- StackCendra discovers all intended fixture repositories without crossing the trusted root.
- It detects the supported services, runtimes, package managers, ports, and dependencies.
- Each displayed fact links to a file and location or is explicitly labeled as a hypothesis.
- Secret-like values are redacted from logs, persistence, and telemetry.
- No repository script, dependency installation, or network probe occurs.
- Scan cancellation and exclusions work.
- A user can correct a result and distinguish the correction from detector output.
- Rescanning unchanged content is measurably incremental.
- Windows and Linux fixtures produce equivalent normalized results.
- Unit, fixture, integration, and security tests pass in CI.
- The product can export a sanitized project report for the portfolio demonstration.
Use a purpose-built repository containing:
- Next.js storefront;
- NestJS checkout API;
- Go inventory service;
- Python recommendation service;
- Java payment mock;
- PostgreSQL;
- Redis;
- Docker Compose;
- Kubernetes manifests;
- OpenTelemetry configuration.
Expected output includes five application services, two data services, their dependency edges, required runtimes, and detected ports.
- generating or writing Dockerfiles;
- starting services or containers;
- probing database connections;
- retrieving secret values;
- scanning outside an approved root;
- uploading repository contents;
- remote repository indexing;
- deployment or cloud-resource discovery;
- unrestricted AI analysis.
StackCendra is currently in Phase 0. The complete Phase 0–13 plan is versioned in the main repository under docs/wiki; later-phase pages describe intended behavior, not current implementation.
- Phase 0 foundation
- Phase 0 backlog
- Release 0.1 discovery
- Phase delivery framework
- Roadmap
- Wiki review guide
- Risks and decisions