18 resultaten

op je machine

skills

Knossos

Bekijk dependencies, wijzigingsimpact en architectuurregels in een lokale graph.

Knossos (Κνωσός) is een bronstijdpaleis op Kreta, in de Griekse mythologie verbonden met het Labyrint.
Op deze paginaWat het doet

Wat het doet ​

Dependencies afleiden uit broncode vereist in elke sessie opnieuw zoekwerk en kan onvolledige resultaten opleveren. Knossos scant de repository naar een lokale graph van componenten en relaties, met bestands- en regelverwijzingen voor elke relatie. Relaties die statische analyse niet sluitend kan vaststellen, krijgen een label met de confidence en herkomst.

In Claude Code opent /knossos de graph als live paneel naast je sessie. Hooks voegen ook korte contextnotities toe na relevante bestandslezingen, wijzigingen en commits: afhankelijke bestanden, toepasselijke regels en gerelateerde tests.

Claude Code met het Knossos-paneel, architectuurtabs, componentzoekfunctie, wijzigingsimpact en sessiediff
Open /knossos om de architectuur te bekijken, componenten te zoeken en sessiewijzigingen te controleren.

Contextnotities voor Claude Code ​

Vier soorten notities van één regel worden op vaste momenten in een sessie toegevoegd. Elke notitie verschijnt één keer voor het betreffende event en blokkeert geen tool calls.

NotitieWanneer
Readna een Read van een bestand waar veel van afhangt of waarvoor een policy geldt
editna een edit van een bestand waar veel van afhangt waarvoor geen Read-notitie verscheen
einde van de beurtna een beurt die bestanden bewerkte, zodra die gescand is: de boundary-schendingen die erbij kwamen en de tests die de wijzigingen raken
commitna een commit, over de resterende effecten van sessiewijzigingen

Een Read-notitie voor een bestand met veel afhankelijke bestanden en een boundary-policy:

text
knossos: src/Query/ResultEnvelope.php (core) has 47 dependent files. Policy: core may not depend on php-worker, tests.

En na een commit:

text
knossos: this session's changes carry 1 changed file no test reaches (src/Kernel.php); 1 dependency cycle new since the session began (Router → Kernel). Check them before you push.

Vóór een wijziging levert knossos_context in één tool call de boundary, toepasselijke regels, afhankelijke bestanden, gerelateerde tests, laatste commits en wijzigingsstatus van een bestand in de huidige sessie.

Elke sessie begint met een korte briefing: of de graph nog klopt met de bestanden, en de regels en vastgelegde notities van het project. Een routing-skill beschrijft wanneer de graph wordt gebruikt en wanneer een tekstzoekactie met grep geschikt is.

Het paneel ​

/knossos opent de architectuur van het project op acht tabs: Overview, Hubs, Boundaries, Cycles, Issues, Changes, Branch en Churn. Het paneel opent op Overview.

Overview met sessiewijzigingen, verdeling naar boundary en taal, dependencyconcentratie en relaties tussen boundaries
Overview: scanwijzigingen, sessiewijzigingen en de verdeling van dependencies.

Hubs toont de componenten waar het meest van afhangt. Op een breed paneel staat de omgeving van de gemarkeerde component naast de lijst, zodat je ziet welke dependencies een hub heeft zonder de tab te verlaten.

Hubs met ResultEnvelope geselecteerd en de dependencies naast de componentenlijst
Hubs: componenten met de meeste afhankelijke componenten en de dependencies van de selectie.

Cycles tekent elke dependency-cycle als een rij blokken, van het eerste lid terug naar het begin.

Cycles met een dependency-cycle van dertien componenten en de volledige lijst van cycles
Cycles: dependencies tussen componenten in een cycle, inclusief de terugkeer naar het begin.

Na een beurt die bestanden bewerkte, toont één regel boven de prompt de impact van de wijziging:

text
knossos · 2 files → 37 dependents · 4 tests · as of 12s ago · reaching core, http +1

In Changes staat de rest: elk bestand dat sinds het begin van de sessie veranderde, met de dependents, de tests die het raken en de diff.

Changes met hooks/lib/paths.ts, twee afhankelijke bestanden, geen gerelateerde tests en de sessiediff
Changes: gewijzigde bestanden, afhankelijke bestanden, gerelateerde tests en sessiediffs.

Branch vergelijkt de checkout met de merge base, zodat je ziet wat een branch toevoegde voordat je een pull request opent.

Branch met nieuwe dependencies tussen boundaries, groei van hubs, mogelijke dead code en churn-hotspots ten opzichte van de merge base met main
Branch: wijzigingen ten opzichte van de merge base, inclusief boundary-overschrijdingen en mogelijke dead code.

Elke component en elk bestand heeft een detailweergave met de impact op dependencies als ringen. Met de finder zoek je componenten op naam.

Componentzoekfunctie met ResultEnv ingevoerd en twintig resultaten, met ResultEnvelope geselecteerd
Druk op f, voer een deel van een componentnaam in en druk op Enter voor de detailweergave.

Een live watcher, één per project en gedeeld door je sessies, scant opnieuw zodra er bestanden veranderen. Zo volgen het paneel en de notities ook wijzigingen van iemand anders. Het paneel blokkeert geen edits en start geen beurten. Als een vereiste ontbreekt, verschijnt geen paneeloutput.

Snel starten ​

Knossos staat nog niet op Packagist of in een container-registry, dus je installeert het vanuit een checkout. Je hebt PHP 8.3 of nieuwer nodig, Node 22 of nieuwer, Python 3.11 of nieuwer, Composer 2 en Git. Cargo 1.82 of nieuwer is optioneel en voegt Rust-scanning toe.

Draai de installer vanuit het project dat je als eerste wilt scannen:

bash
git clone https://github.com/AraneaDev/knossos.git /absolute/path/to/knossos
cd /absolute/path/to/your-project
/absolute/path/to/knossos/tools/install

Die maakt de datamap ~/.knossos aan met een roots-bestand dat dit project toestaat, scant het en registreert de MCP-server bij Claude Code op user-scope. Installeer daarna de plugin, die het paneel, de notities, de briefing en de skill meebrengt:

bash
ln -s /absolute/path/to/knossos/bin/knossos ~/.local/bin/knossos
knossos install-agent-plugin                                        # preview
knossos install-agent-plugin --data-dir="$HOME/.knossos" --execute

Start een nieuwe sessie en typ /knossos.

Installatie via een marketplace wordt niet ondersteund. Een marketplace-kloon bevat geen vendor/, dat nodig is om het meegeleverde knossos-commando uit te voeren.

Integratie via MCP, CLI en CI ​

MCP-clients. De graph is beschikbaar via 33 MCP-tools: impactanalyse, call sites, paden tussen componenten, cycles, hubs, kandidaten voor dead code, review van een wijziging, test-impact, snapshots en trends. Codex en elke client die de gangbare stdio-entry onder mcpServers leest, kunnen ze gebruiken. Het paneel en de notities zijn Claude Code-hooks en draaien nergens anders.

De CLI. Elke tool behalve server_info is ook een command, met --json voor scripts:

bash
knossos impact-analysis <project-id> 'App\Billing\Invoice'
knossos review-diff <project-id> --base-ref=main --policies=architecture-policies.json
knossos watch /absolute/path/to/project

CI. Boundary-policies leggen vast welk deel van de codebase van welk ander deel mag afhangen, en quality budgets begrenzen achteruitgang, zoals nieuwe cycles of boundary-schendingen, ten opzichte van een goedgekeurde baseline:

bash
knossos quality-gate <project-id> <baseline-snapshot> --budgets=knossos-budgets.json --sarif --json

Exitcode 0 betekent dat elke gate is geslaagd, 1 dat er een gate faalde en 2 dat het resultaat niet te beoordelen was. Met --sarif worden de bevindingen uitgevoerd in SARIF-formaat voor CI-integratie.

Talen ​

TaalExtractieFramework-verrijking
PHP 8.3+Declaraties, inheritance, calls, constructie, types, injectionLaravel, Symfony
TypeScript/JavaScriptSymboolresolutie via de compiler, imports, calls, types, project references, Vue/Svelte/Astro-componentenNext.js, React, Vue, stores, endpoints
Python 3.11+AST uit de standaardbibliotheek in een geïsoleerde interpreter; manifests, packages, calls, routesFastAPI, Django, Flask, Celery
Rust 1.82+Parsing met syn; Cargo-manifests, impls over bestanden heen, routes. Roept nooit cargo of rustc aanaxum, actix, Rocket

Een repository met meerdere talen levert één graph op voor impactanalyse over taalgrenzen. Elke relatie heeft een confidence: certain, probable of possible. De confidence van een pad is begrensd door de relatie met de laagste confidence op dat pad.

Scanisolatie en toegangsgrenzen ​

Scannen installeert nooit dependencies, voert nooit projectcode uit en start nooit een framework op. Workers draaien onder toezicht en met een resource-limiet, en hun output geldt als onbetrouwbaar tot die de validatie doorstaat.

De server leest alleen de roots die je hebt toegestaan. Knossos breidt die lijst tijdens normaal gebruik nooit zelf uit: alleen de installer en knossos allow-root --execute schrijven erin.

Een mislukte scan wordt nooit actief. De laatste complete scan blijft de graph die je bevraagt, en de database is afgeleid van de broncode, dus je kunt de database altijd opnieuw opbouwen.