|
1 | 1 | PROJECT: fluently |
2 | | -PURPOSE: An open-source CLI + MCP server + knowledge base that operationalizes the AI Fluency 4D Framework (Delegation, Description, Discernment, Diligence) by Dakan & Feller. Licensed MIT. Works with any AI agent — Claude, GPT, Gemini, Mistral, Copilot, and more. |
| 2 | +PURPOSE: An open-source CLI + MCP server + knowledge base that operationalizes collaboration frameworks (starting with the AI Fluency 4D Framework by Dakan & Feller). Licensed MIT. Works with any AI agent — Claude, GPT, Gemini, Mistral, Copilot, and more. Framework-agnostic: any collaboration framework with named dimensions can be registered. |
3 | 3 |
|
4 | 4 | ARCHITECTURE: |
5 | | -- /knowledge/ — YAML Fluently 4D cycles, community-contributed, organized by dimension and domain |
| 5 | +- /frameworks/ — YAML framework definitions (id, name, dimensions, canonical order); index.json auto-generated by CI |
| 6 | +- /knowledge/ — YAML knowledge cycles, community-contributed, organized by domain; each cycle carries a framework_id |
6 | 7 | - /packages/cli/ — Node.js CLI (`fluent` command) using commander.js; multi-provider AI support |
7 | | -- /packages/mcp-server/ — MCP server exposing knowledge as AI-callable tools (any MCP-compatible agent) |
8 | | -- /packages/scorer/ — Shared scoring + schema validation engine used by both CLI and MCP server |
9 | | -- /site/ — GitHub Pages static site (plain HTML + Tailwind CDN + vanilla JS) |
| 8 | +- /packages/mcp-server/ — MCP server exposing knowledge and frameworks as AI-callable tools (any MCP-compatible agent) |
| 9 | +- /packages/scorer/ — Shared scoring + schema validation engine; builds Zod schemas per framework dynamically |
| 10 | +- /site/ — GitHub Pages static site (plain HTML + Tailwind CDN + vanilla JS); includes frameworks.html |
10 | 11 |
|
11 | 12 | RULES: |
12 | 13 | - Never hardcode API keys |
13 | | -- All knowledge entries must have all 4D fields present |
14 | | -- Schema validation runs before any PR merges |
| 14 | +- All knowledge entries must have all dimension fields present (dimension keys defined by their framework) |
| 15 | +- framework_id is required on all new knowledge YAML files; existing 4D entries default to "4d-framework" |
| 16 | +- Schema validation runs before any PR merges — both frameworks/ and knowledge/ are validated |
15 | 17 | - Test files live alongside source in __tests__ folders |
16 | | -- Knowledge YAML must pass Zod schema before being accepted |
| 18 | +- Knowledge YAML must pass Zod schema (built dynamically per framework) before being accepted |
17 | 19 | - Use ESM imports throughout (no require()); mixed require/import is a bug |
| 20 | +- All site HTML changes must be responsive (no horizontal scroll) |
| 21 | + |
| 22 | +FRAMEWORK RULES: |
| 23 | +- Framework ids must be kebab-case |
| 24 | +- Dimension keys within a framework must be unique |
| 25 | +- canonical_order must be a positive integer and determines scoring and rendering order |
| 26 | +- buildKnowledgeSchemas(framework) is memoised — call it once per framework id |
| 27 | +- BUNDLED_4D_FRAMEWORK in scorer is the source of truth for the 4D schema; frameworks/4d-framework.yaml is its YAML representation |
18 | 28 |
|
19 | 29 | STACK: TypeScript, Node.js 20+, Zod, commander.js, Anthropic SDK (claude-sonnet-4-6), Vitest, GitHub Actions |
0 commit comments