feat: Strategic pivot to CLI implementation with comprehensive foundation

Major gap analysis reveals critical missing CLI interface despite solid library foundation.
This commit implements core components and strategic roadmap pivot.

Key Changes:
- NEXT.md: Complete strategic roadmap pivot to CLI-first implementation
- FEATURES.md: Comprehensive USP and architecture documentation
- markitect/ast_cache.py: High-performance AST caching system
- markitect/document_manager.py: Parse-once architecture implementation
- docs/markitect.1: CLI interface manpage documentation

Foundation Status:
- All 45 tests passing (solid library base)
- AST caching with <50% parse time performance goal
- Database integration ready for CLI integration
- TDD8 methodology fully operational

Strategic Pivot:
- Previous: Continue with Issues #2-4 (database expansion)
- New Priority: Issue #5 - CLI Entry Point implementation
- Goal: Transform library capabilities into user-accessible tools

Next Session: Implement CLI interface using Click/Typer framework
to deliver documented vision and core USPs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-24 01:14:27 +02:00
parent c6ba9c9308
commit 93e762feee
8 changed files with 2298 additions and 65 deletions

View File

@@ -0,0 +1,231 @@
[
{
"type": "hr",
"tag": "hr",
"attrs": {},
"map": [
0,
1
],
"nesting": 0,
"level": 0,
"content": "",
"markup": "----",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h2",
"attrs": {},
"map": [
1,
4
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
1,
3
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "title: Integration Test",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "softbreak",
"tag": "br",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "category: testing",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "title: Integration Test\ncategory: testing",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h2",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h1",
"attrs": {},
"map": [
5,
6
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
5,
6
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Integration Test",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Integration Test",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h1",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
7,
8
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
7,
8
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Testing database integration.",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Testing database integration.",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
}
]

View File

@@ -0,0 +1,169 @@
[
{
"type": "hr",
"tag": "hr",
"attrs": {},
"map": [
0,
1
],
"nesting": 0,
"level": 0,
"content": "",
"markup": "----",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h2",
"attrs": {},
"map": [
1,
4
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
1,
3
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "title: Test",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "softbreak",
"tag": "br",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "invalid_yaml: [unclosed bracket",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "title: Test\ninvalid_yaml: [unclosed bracket",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h2",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h1",
"attrs": {},
"map": [
5,
6
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
5,
6
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Content",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Content",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h1",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
}
]

853
.ast_cache/test.md.ast.json Normal file
View File

@@ -0,0 +1,853 @@
[
{
"type": "hr",
"tag": "hr",
"attrs": {},
"map": [
0,
1
],
"nesting": 0,
"level": 0,
"content": "",
"markup": "----",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h2",
"attrs": {},
"map": [
1,
5
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
1,
4
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "title: Test Document",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "softbreak",
"tag": "br",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "author: Test User",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "softbreak",
"tag": "br",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "date: \"2025-09-24\"",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "title: Test Document\nauthor: Test User\ndate: \"2025-09-24\"",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h2",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h1",
"attrs": {},
"map": [
6,
7
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
6,
7
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Test Document",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Test Document",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h1",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "#",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
8,
9
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
8,
9
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "This is a test document with ",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "strong_open",
"tag": "strong",
"attrs": {},
"nesting": 1,
"level": 0,
"content": "",
"markup": "**",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 1,
"content": "bold",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "strong_close",
"tag": "strong",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "**",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": " and ",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "em_open",
"tag": "em",
"attrs": {},
"nesting": 1,
"level": 0,
"content": "",
"markup": "*",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 1,
"content": "italic",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "em_close",
"tag": "em",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "*",
"info": "",
"meta": {},
"block": false,
"hidden": false
},
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": " text.",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "This is a test document with **bold** and *italic* text.",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h2",
"attrs": {},
"map": [
10,
11
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "##",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
10,
11
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Section 1",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Section 1",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h2",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "##",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "bullet_list_open",
"tag": "ul",
"attrs": {},
"map": [
12,
16
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "list_item_open",
"tag": "li",
"attrs": {},
"map": [
12,
13
],
"nesting": 1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
12,
13
],
"nesting": 1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
12,
13
],
"nesting": 0,
"level": 3,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Item 1",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Item 1",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "list_item_close",
"tag": "li",
"attrs": {},
"nesting": -1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "list_item_open",
"tag": "li",
"attrs": {},
"map": [
13,
14
],
"nesting": 1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
13,
14
],
"nesting": 1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
13,
14
],
"nesting": 0,
"level": 3,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Item 2",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Item 2",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "list_item_close",
"tag": "li",
"attrs": {},
"nesting": -1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "list_item_open",
"tag": "li",
"attrs": {},
"map": [
14,
16
],
"nesting": 1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
14,
15
],
"nesting": 1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
14,
15
],
"nesting": 0,
"level": 3,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Item 3",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Item 3",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 2,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": true
},
{
"type": "list_item_close",
"tag": "li",
"attrs": {},
"nesting": -1,
"level": 1,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "bullet_list_close",
"tag": "ul",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "-",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_open",
"tag": "h2",
"attrs": {},
"map": [
16,
17
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "##",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
16,
17
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Section 2",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Section 2",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "heading_close",
"tag": "h2",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "##",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_open",
"tag": "p",
"attrs": {},
"map": [
18,
19
],
"nesting": 1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "inline",
"tag": "",
"attrs": {},
"map": [
18,
19
],
"nesting": 0,
"level": 1,
"children": [
{
"type": "text",
"tag": "",
"attrs": {},
"nesting": 0,
"level": 0,
"content": "Some more content here.",
"markup": "",
"info": "",
"meta": {},
"block": false,
"hidden": false
}
],
"content": "Some more content here.",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
},
{
"type": "paragraph_close",
"tag": "p",
"attrs": {},
"nesting": -1,
"level": 0,
"content": "",
"markup": "",
"info": "",
"meta": {},
"block": true,
"hidden": false
}
]