-
-
Notifications
You must be signed in to change notification settings - Fork 4
ARCHITECTURE
github-actions[bot] edited this page Sep 26, 2026
·
1 revision
| Folder | Responsibility |
|---|---|
logicytics/ |
Public package, CLI, and the internal engine modules for contracts, configuration, discovery, planning, runtime, logging, manifests, packaging, and platform adapters |
core/ |
Shipped read-only collector implementations grouped by specialty |
plugins/ |
Opt-in user-owned PluginCollector implementations |
tests/ |
Unit, contract, resilience, security, and Windows integration tests |
docs/ |
This user, operator, and developer manual |
output/ |
Local run output; do not commit evidence |
.github/ |
Contribution templates, security automation, and documentation publishing workflow |
-
module/contracts.pydefines enums, metadata, request, context, artifact, result, and collector interfaces. -
configuration.pyloads and validateslogicytics.yaml. -
discovery.pyfinds candidates, performs static checks, probes metadata, and manages the disposable validation cache. -
planner.pyresolves profiles, selectors, dependencies, capabilities, ordering, and run fingerprints. -
runtime.pyowns worker processes, quotas, cancellation, retry rules, progress, and terminal statuses. -
artifacts.pyis the workspace-bound artifact writer. -
manifest.pywrites the durable run record. -
packaging.pybuilds and verifies ZIP packages and hash sidecars. -
api.pyexposes planning, collection, run queries, and bounded artifact reads. -
module/platform_adapters.pyowns the injectable host-process and Windows API boundaries. -
cli/terminal.pymanages console lifecycle andcli/virtual_environment.pyvalidates the supported interpreter environment. -
cli/commands.pymaps command-line arguments to the public engine operations.
Collectors may depend on contracts and approved platform adapters. They should not reach into supervisor internals, write outside their workspace, alter global configuration, or create unbounded output. The runtime owns cleanup and process termination. The manifest is the source for later inspection; do not infer success from a console line alone.
The core ID follows core.<specialty>.<name> and normally maps to core/<specialty>/<name>.py. A module contains one
collector class with a PascalCase name ending in Collector, a metadata() class method, lifecycle methods, and no
import-time collection. The catalog in Core Collectors is grouped by the live source tree.