sokrates-virtual-landscapes

Designs and validates virtual landscape groupings for Sokrates repository analyses.

3|1|Updated Aug 26, 2026
One-click install
npx skills add https://github.com/zeljkoobrenovic/sokrates-skills --skill sokrates-virtual-landscapes-zeljkoobrenovic
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sokrates-virtual-landscapes
Source: https://github.com/zeljkoobrenovic/sokrates-skills/tree/main/skills/config/sokrates-virtual-landscapes
Command: npx skills add https://github.com/zeljkoobrenovic/sokrates-skills --skill sokrates-virtual-landscapes-zeljkoobrenovic

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? A Sokrates landscape with hundreds of repositories is an unreadable flat list; this Skill turns it into a map by designing the virtualLandscapes section of _sokrates_landscape/config.json — named, nestable groups of repositories matched by name patterns — with measured coverage instead of guesswork. ## Core Features & Use Cases - Evidence-based grouping proposals: A script scans every repository analysis under the root and measures candidate groupings by naming conventions, folders, technology, activity, size, contributor e-mail domains, shared committers, and tags, reporting members, LOC shares, coverage, and remainder for each. - User grouping validation: Supply your own grouping (flat map or nested virtualLandscapes object) and get it measured exactly as Sokrates will evaluate it — case-sensitive full-string regex matching, overlaps, empty groups, and per-level remainders. - Paste-ready config output: Emits a ready virtualLandscapes JSON object including remainderLandscapeMetadata, then verifies the final result with the landscape checker. - Use Case: You have 200 repository analyses in one landscape and want sub-landscapes per product line. Run the proposal script, pick the naming-convention regexes that match real product families, nest large groups, and write the measured config into _sokrates_landscape/config.json. ## Quick Start Ask the AI to split your Sokrates landscape into meaningful virtual sub-landscapes by running the proposal script against your analysis root and writing the chosen grouping into the landscape config.

Frequently Asked Questions about sokrates-virtual-landscapes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I group repositories into sub-landscapes in Sokrates?

Add a `virtualLandscapes` section to `_sokrates_landscape/config.json` with named groups whose `includeRepoNamePatterns` regexes match repository names. This Skill's proposal script measures candidate groupings and emits paste-ready config, then the landscape checker verifies membership.

How does Sokrates virtual landscape pattern matching work?

A repository belongs to a virtual landscape when `includeRepoNamePatterns` is non-empty and its `metadata.name` fully matches an include pattern and no exclude pattern. Matching is case-sensitive and full-string; prefix a pattern with `(?i)` to relax case, and note an invalid regex silently matches nothing.

Can a repository belong to multiple virtual landscapes?

Yes, Sokrates allows a repository to appear in several virtual landscapes, for example a shared library under both products that use it. Repositories matching no landscape go to the Remainder, which you name via `remainderLandscapeMetadata`.

Why does my virtual landscape match no repositories?

The usual causes are case mismatches, partial-string patterns (matching is full-string), or an invalid regex that silently matches nothing. The proposal script warns about empty groups, non-compiling patterns, and names that are not actual `metadata.name` values.

When should I use folder sub-landscapes instead of virtual landscapes?

Prefer folder sub-landscapes (a `_sokrates_landscape/` inside a folder of analyses) when the folder structure already encodes the organization, since they need no configuration and survive renames. Use virtual landscapes for a different cut, such as product family or technology, across folders.