agentsclimarketplace

Project

Skill sruja-ai/sruja/.sruja/skills/project

A CLI-first autonomous coding agent where the actor never grades itself. Every edit is grounded in your repo's real topology and verified by an independent deterministic grader (drift, lint, verify-task, intent) before it ships. Closed-loop: comprehend → plan → execute → critique → replan. Also a passive MCP harness.

Install
npx -y skills add sruja-ai/sruja --skill project

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 24 stars24 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Procedural workflows for working with the Sruja codebase. Teaches AI editors how to add components, validate changes, and follow patterns.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.6 KB, as published. Nobody here has run it

Sruja Project Skill

Procedural workflows for working with the Sruja architecture-as-code platform.

Project Overview

  • Type: Rust workspace with 14 crates
  • Primary language: Rust (core), TypeScript (extension)
  • Architecture: Layered monolith with clear tier boundaries

Workflows

Adding a New Crate

  1. Identify the tier for your crate:

    • Core Engine (sruja-diagnostics, sruja-language, sruja-engine, sruja-export, sruja-scan, sruja-graph-core)
    • Extraction (sruja-graph, sruja-extract)
    • Delivery (sruja-cli, sruja-wasm)
    • Secondary (sruja-diff, sruja-intent, sruja-agent, sruja-memory)
  2. Add to workspace in root Cargo.toml:

    [workspace]
    members = ["crates/sruja-new-crate"]
    
  3. Add dependencies in crates/sruja-new-crate/Cargo.toml

  4. Update CLI if exposing new commands:

    • Add command definition in src/cli/commands.rs
    • Add handler in src/cli/run.rs
    • Add to src/commands/mod.rs
  5. Validate:

    cargo build --release
    cargo test -p sruja-new-crate
    cargo clippy -- -D warnings
    

Adding a New CLI Command

  1. Define the command in src/cli/commands.rs:

    #[command(name = "my-command")]
    MyCommand {
        #[arg(long = "repo", short = 'r', default_value = ".")]
        repo: String,
    },
    
  2. Add handler in src/cli/run.rs:

    Commands::MyCommand { repo } => {
        commands::my_module::my_command(&repo)
    }
    
  3. Implement the command in src/commands/my_module.rs

  4. Export in src/commands/mod.rs:

    pub use my_module::my_command;
    
  5. Test:

    cargo test -p sruja-cli
    ./target/release/sruja my-command --help
    

Validating Architecture Changes

  1. After any .sruja file change:

    sruja lint repo.sruja
    
  2. Check for drift:

    sruja sync -r .
    sruja drift -r .
    
  3. Verify no layer violations:

    sruja classify -r .
    sruja drift -r . -a repo.sruja
    

Running Tests

# All tests
cargo test --workspace

# Specific crate
cargo test -p sruja-cli

# Single test
cargo test test_name

# With coverage
just test-coverage

Layer Boundaries

Respect these tier dependencies:

TierCratesCan Depend On
Core Enginesruja-diagnostics, sruja-language, sruja-engine, sruja-export, sruja-scan, sruja-graph-coreOnly core crates
Extractionsruja-graph, sruja-extractCore Engine
Deliverysruja-cli, sruja-wasmCore Engine, Extraction
Secondarysruja-diff, sruja-intent, sruja-agent, sruja-memoryCore Engine, Extraction

Forbidden Patterns

  1. Lower-tier crates must not depend on higher-tier crates
  2. sruja-cli is the top-level aggregator — no other crate should depend on it
  3. WASM-only crates must not use native-only APIs (tree-sitter, fastembed)

Progressive Discovery

TaskLoad only
Add craterules/add-crate.md
Add CLI commandrules/add-cli-command.md
Validate changesrules/validate-changes.md
Run testsrules/run-tests.md
Common patternsrules/common-patterns.md
Anti-patternsrules/anti-patterns.md

Auto-Capturing Knowledge

When users share conventions, patterns, or workflows in conversation, automatically record them using the existing sruja_record_learning MCP tool.

Detect these patterns:

  • "Always do X", "Never do Y", "We use Z for..."
  • "When you see X, do Y", "For X, use Y"
  • "The convention is...", "The pattern is..."

Capture using MCP tool sruja_record_learning:

{
  "context": "user convention: [brief description]",
  "hypothesis": "the convention/pattern shared",
  "outcome": "success",
  "guardrail_advice": "how to apply this"
}

This creates an auto-learning loop without explicit user action.

Quick Start

Use sruja-project skill. Help me add a new crate to the workspace.

Versioning

Skills use CalVer: YYYY.MM.MICRO

  • YYYY — Year
  • MM — Month (01-12)
  • MICRO — Patch increment within the month (1, 2, 3...)

Bump the version when:

  • Adding new workflows or rules
  • Changing existing behavior
  • Fixing incorrect guidance

The version field in frontmatter is required for discoverability and compatibility checking.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.