Skip to content

Latest commit

Β 

History

History
120 lines (103 loc) Β· 8.52 KB

TOPOLOGY.adoc

File metadata and controls

120 lines (103 loc) Β· 8.52 KB

FSLint β€” Project Topology

System Architecture

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚                  fslint-cli                    β”‚
                    β”‚   scan Β· query Β· plugins Β· enable Β· disable   β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                           β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚                fslint-core                     β”‚
                    β”‚                                               β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                    β”‚  β”‚  Scanner    β”‚  β”‚  Query     β”‚  β”‚ Cache  β”‚ β”‚
                    β”‚  β”‚  Engine     β”‚  β”‚  Parser    β”‚  β”‚ Layer  β”‚ β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚              PLUGIN ECOSYSTEM                  β”‚
                    β”‚                                               β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
                    β”‚  β”‚ git-status β”‚ β”‚ file-age β”‚ β”‚  grouping  β”‚  β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
                    β”‚  β”‚ bundle-check β”‚ β”‚  secret-scanner      β”‚   β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
                    β”‚  β”‚ ai-detection β”‚ β”‚  duplicate-finder    β”‚   β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                            β”‚
                              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                              β”‚  fslint-plugin-api (trait)   β”‚
                              β”‚  fslint-plugin-sdk (helpers) β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                             β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚              TARGET FILESYSTEM                 β”‚
                    β”‚    Files Β· Directories Β· Bundles Β· Symlinks    β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚             REPO INFRASTRUCTURE                β”‚
                    β”‚  Justfile            .machine_readable/        β”‚
                    β”‚  .bot_directives/    0-AI-MANIFEST.a2ml        β”‚
                    β”‚  contractiles/       .github/workflows/        β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Completion Dashboard

COMPONENT                          STATUS              NOTES
─────────────────────────────────  ──────────────────  ─────────────────────────────────
PLUGIN FOUNDATION
  fslint-plugin-api                 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    Trait, types, builders, tests, fuzz
  fslint-plugin-sdk                 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘  80%    Path, metadata, patterns, context

CORE ENGINE
  fslint-core (scanner)             β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Not yet implemented
  fslint-core (query parser)        β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Not yet implemented
  fslint-core (cache layer)         β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Not yet implemented
  fslint-cli                        β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Not yet implemented

PLUGINS
  git-status                        β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.2.0
  file-age                          β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.2.0
  grouping                          β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.2.0
  bundle-check                      β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.2.0
  secret-scanner                    β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.3.0
  ai-detection                      β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.3.0
  duplicate-finder                  β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   0%    Planned for v0.3.0

INFRASTRUCTURE
  Justfile                          β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    Standard build automation
  .machine_readable/                β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    STATE, META, ECOSYSTEM aligned
  0-AI-MANIFEST.a2ml                β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    AI agent entry point
  .bot_directives/                  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    8 bot constraint files
  .github/workflows/                β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%    16 standard workflows

─────────────────────────────────────────────────────────────────────────────
OVERALL:                            β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  ~25%   Plugin API/SDK stable, engine next

Key Dependencies

fslint-cli ──────► fslint-core ──────► fslint-plugin-api
                       β”‚                      β–²
                       β–Ό                      β”‚
                   plugins/* ──────► fslint-plugin-sdk
                       β”‚
                       β–Ό
                   Filesystem

Output Flow

Filesystem ──► Scanner ──► Plugins ──► Cache ──► Query ──► Formatter ──► User
                                                               β”‚
                                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                    β–Ό          β–Ό          β–Ό
                                                  Table      JSON      Simple

Update Protocol

This file is maintained by both humans and AI agents. When updating:

  1. After completing a component: Change its bar and percentage

  2. After adding a component: Add a new row in the appropriate section

  3. After architectural changes: Update the ASCII diagram

  4. Date: Update the Last updated comment at the top of this file

Progress bars use: β–ˆ (filled) and β–‘ (empty), 10 characters wide. Percentages: 0%, 10%, 20%, … 100% (in 10% increments).