logicstamp-context 0.2.3 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LLM_CONTEXT.md +2 -2
- package/README.md +96 -585
- package/dist/cli/commands/compare.d.ts.map +1 -1
- package/dist/cli/commands/compare.js +120 -13
- package/dist/cli/commands/compare.js.map +1 -1
- package/dist/cli/commands/context/fileWriter.d.ts.map +1 -1
- package/dist/cli/commands/context/fileWriter.js +68 -6
- package/dist/cli/commands/context/fileWriter.js.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -1
- package/dist/cli/commands/context/tokenEstimator.js +12 -4
- package/dist/cli/commands/context/tokenEstimator.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +71 -2
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +84 -8
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/handlers/compareHandler.d.ts.map +1 -1
- package/dist/cli/handlers/compareHandler.js +123 -9
- package/dist/cli/handlers/compareHandler.js.map +1 -1
- package/dist/core/astParser/detectors.d.ts.map +1 -1
- package/dist/core/astParser/detectors.js +130 -57
- package/dist/core/astParser/detectors.js.map +1 -1
- package/dist/core/astParser/extractors/componentExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/componentExtractor.js +89 -20
- package/dist/core/astParser/extractors/componentExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/eventExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/eventExtractor.js +83 -28
- package/dist/core/astParser/extractors/eventExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/propExtractor.js +130 -51
- package/dist/core/astParser/extractors/propExtractor.js.map +1 -1
- package/dist/core/astParser/extractors/stateExtractor.d.ts.map +1 -1
- package/dist/core/astParser/extractors/stateExtractor.js +95 -44
- package/dist/core/astParser/extractors/stateExtractor.js.map +1 -1
- package/dist/core/astParser.d.ts +1 -0
- package/dist/core/astParser.d.ts.map +1 -1
- package/dist/core/astParser.js +74 -26
- package/dist/core/astParser.js.map +1 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +28 -1
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/pack/loader.d.ts.map +1 -1
- package/dist/core/pack/loader.js +22 -2
- package/dist/core/pack/loader.js.map +1 -1
- package/dist/core/styleExtractor/index.d.ts +2 -0
- package/dist/core/styleExtractor/index.d.ts.map +1 -1
- package/dist/core/styleExtractor/index.js +2 -0
- package/dist/core/styleExtractor/index.js.map +1 -1
- package/dist/core/styleExtractor/layout.d.ts +13 -2
- package/dist/core/styleExtractor/layout.d.ts.map +1 -1
- package/dist/core/styleExtractor/layout.js +135 -65
- package/dist/core/styleExtractor/layout.js.map +1 -1
- package/dist/core/styleExtractor/material.d.ts +19 -0
- package/dist/core/styleExtractor/material.d.ts.map +1 -0
- package/dist/core/styleExtractor/material.js +328 -0
- package/dist/core/styleExtractor/material.js.map +1 -0
- package/dist/core/styleExtractor/motion.d.ts +2 -2
- package/dist/core/styleExtractor/motion.d.ts.map +1 -1
- package/dist/core/styleExtractor/motion.js +425 -56
- package/dist/core/styleExtractor/motion.js.map +1 -1
- package/dist/core/styleExtractor/radix.d.ts +29 -0
- package/dist/core/styleExtractor/radix.d.ts.map +1 -0
- package/dist/core/styleExtractor/radix.js +315 -0
- package/dist/core/styleExtractor/radix.js.map +1 -0
- package/dist/core/styleExtractor/scss.d.ts.map +1 -1
- package/dist/core/styleExtractor/scss.js +37 -23
- package/dist/core/styleExtractor/scss.js.map +1 -1
- package/dist/core/styleExtractor/shadcn.d.ts +20 -0
- package/dist/core/styleExtractor/shadcn.d.ts.map +1 -0
- package/dist/core/styleExtractor/shadcn.js +345 -0
- package/dist/core/styleExtractor/shadcn.js.map +1 -0
- package/dist/core/styleExtractor/styleExtractor.d.ts.map +1 -1
- package/dist/core/styleExtractor/styleExtractor.js +270 -78
- package/dist/core/styleExtractor/styleExtractor.js.map +1 -1
- package/dist/core/styleExtractor/styled.d.ts +1 -1
- package/dist/core/styleExtractor/styled.d.ts.map +1 -1
- package/dist/core/styleExtractor/styled.js +308 -23
- package/dist/core/styleExtractor/styled.js.map +1 -1
- package/dist/core/styleExtractor/tailwind.d.ts +21 -3
- package/dist/core/styleExtractor/tailwind.d.ts.map +1 -1
- package/dist/core/styleExtractor/tailwind.js +279 -46
- package/dist/core/styleExtractor/tailwind.js.map +1 -1
- package/dist/types/UIFContract.d.ts +45 -0
- package/dist/types/UIFContract.d.ts.map +1 -1
- package/dist/types/UIFContract.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +41 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/debug.d.ts +12 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +16 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/fsx.d.ts +2 -1
- package/dist/utils/fsx.d.ts.map +1 -1
- package/dist/utils/fsx.js +99 -28
- package/dist/utils/fsx.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js +28 -1
- package/dist/utils/gitignore.js.map +1 -1
- package/package.json +1 -1
- package/schema/logicstamp.context.schema.json +48 -1
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# LogicStamp Context
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
|
-
<img src="assets/logicstamp-fox.svg" alt="LogicStamp Fox Mascot" width="120" height="120">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/LogicStamp/logicstamp-context/main/assets/logicstamp-fox.svg" alt="LogicStamp Fox Mascot" width="120" height="120">
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|

|
|
9
9
|

|
|
10
10
|

|
|
@@ -14,108 +14,104 @@
|
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
|
+
**Global CLI (recommended):**
|
|
17
18
|
```bash
|
|
18
19
|
npm install -g logicstamp-context
|
|
19
20
|
cd your-project
|
|
20
21
|
stamp context
|
|
21
22
|
```
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-

|
|
26
|
-
*Terminal output showing `stamp context` execution and generated context.json structure*
|
|
27
|
-
|
|
28
|
-
> **Note:** This is a beta release (v0.2.3). We're actively improving the tool based on user feedback. If you encounter any issues or have suggestions, please [open an issue on GitHub](https://github.com/LogicStamp/logicstamp-context/issues).
|
|
29
|
-
|
|
30
|
-
## What is this?
|
|
31
|
-
|
|
32
|
-
**LogicStamp Context** is a lightweight tool that scans your React/TypeScript codebase and generates structured context bundles optimized for AI tools like Claude, ChatGPT, and other LLMs.
|
|
33
|
-
|
|
34
|
-
No setup, no configuration, no pre-compilation required. Just point it at your code and get instant, AI-ready documentation.
|
|
35
|
-
|
|
36
|
-
## Installation
|
|
37
|
-
|
|
24
|
+
**OR local:**
|
|
38
25
|
```bash
|
|
39
|
-
npm install -
|
|
26
|
+
npm install -D logicstamp-context
|
|
27
|
+
npx stamp context
|
|
40
28
|
```
|
|
41
29
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
**Note**: "Global CLI" means the tool is installed globally on your system (via `npm install -g`), making the `stamp` command available from any directory in your terminal, not just within a specific project folder.
|
|
45
|
-
- **Local install**: `npm install logicstamp-context` → only available in that project
|
|
46
|
-
- **Global install**: `npm install -g logicstamp-context` → available everywhere via `stamp` command
|
|
47
|
-
|
|
48
|
-
## Recent Updates
|
|
49
|
-
|
|
50
|
-
**v0.2.3** - README streamlined, improved token estimation accuracy, UIF Contracts documentation
|
|
51
|
-
**v0.2.2** - Documentation fixes for optional tokenizer dependencies
|
|
52
|
-
**v0.2.1** - Dynamic version loading from package.json
|
|
53
|
-
**v0.2.0** - Style metadata extraction, enhanced token comparison, modular architecture
|
|
54
|
-
**v0.1.1** - CI-friendly defaults, improved initialization workflow
|
|
55
|
-
**v0.1.0** - Initial release with token optimization, drift detection, and Next.js support
|
|
56
|
-
|
|
57
|
-
📋 **See [CHANGELOG.md](CHANGELOG.md) for complete version history**
|
|
58
|
-
|
|
59
|
-
### Optional Tokenizers
|
|
60
|
-
|
|
61
|
-
LogicStamp Context includes `@dqbd/tiktoken` (GPT-4) and `@anthropic-ai/tokenizer` (Claude) as **optional dependencies**. npm automatically attempts to install them when you install `logicstamp-context`.
|
|
62
|
-
|
|
63
|
-
- **If installed**: Token counts are model-accurate for GPT-4 and Claude
|
|
64
|
-
- **If not installed**: Falls back to character-based estimation (typically within 10–15% accuracy)
|
|
30
|
+
That's it! LogicStamp Context will scan your project and generate `context.json` files organized by folder, plus a `context_main.json` index file. Share these files with AI assistants for instant codebase understanding.
|
|
65
31
|
|
|
66
|
-
|
|
32
|
+

|
|
33
|
+
*Sample stamp context output with generated bundles*
|
|
67
34
|
|
|
68
|
-
|
|
35
|
+
> **Note:** This is a beta release (v0.2.5). We're actively improving the tool based on user feedback. If you encounter any issues or have suggestions, please [open an issue on GitHub](https://github.com/LogicStamp/logicstamp-context/issues).
|
|
69
36
|
|
|
70
|
-
|
|
37
|
+
## Why LogicStamp?
|
|
71
38
|
|
|
72
|
-
-
|
|
73
|
-
- **Logic signatures**: props, events, state types
|
|
74
|
-
- **Dependency graph**: how components relate to each other
|
|
75
|
-
- **Code snippets**: headers or full source (configurable)
|
|
76
|
-
- **Semantic hashes**: for tracking changes
|
|
77
|
-
- **Next.js metadata**: App Router directives and file location (when applicable)
|
|
39
|
+
LLMs understand your project instantly - without scanning 10,000+ lines of code
|
|
78
40
|
|
|
79
|
-
|
|
41
|
+
- **~65–72% token savings** vs raw source
|
|
42
|
+
- **Deterministic, structured contracts** that help AI avoid hallucinations by only referencing the true architecture
|
|
43
|
+
- **Perfect for Cursor/Claude/GitHub Copilot Chat** — share context files for instant codebase understanding
|
|
44
|
+
- **CI-friendly** — detect drift, validate bundles, track changes
|
|
80
45
|
|
|
81
|
-
|
|
46
|
+
This gives newcomers the "aha moment" in seconds.
|
|
82
47
|
|
|
83
|
-
|
|
48
|
+
## Features
|
|
84
49
|
|
|
85
|
-
|
|
50
|
+
- 🧠 **AI-ready bundles** - predictable, structured, deterministic
|
|
51
|
+
- ⚛️ **React/TypeScript awareness** - props, hooks, state, deps
|
|
52
|
+
- 🎨 **Style metadata** - (Tailwind, SCSS, MUI, shadcn)
|
|
53
|
+
- 🛣️ **Next.js App Router detection** - (client/server, layout/page/etc)
|
|
54
|
+
- 🔎 **Dependency graph** - (imports, cycles, missing deps)
|
|
55
|
+
- 📦 **Per-folder bundles** - organized by your project structure
|
|
56
|
+
- ⚙️ **CI validation** - (drift detection, schema validation)
|
|
57
|
+
- 🔢 **Accurate token estimates** - (GPT/Claude)
|
|
58
|
+
- 💨 **Fast, zero-config** - works out of the box
|
|
59
|
+
- 🤖 **MCP-ready (coming soon)** - AI agents can consume context bundles via a standardized MCP interface
|
|
86
60
|
|
|
87
|
-
|
|
88
|
-
- **`'use server'` directive** - Marks Server Actions
|
|
89
|
-
- **App Router location** - Identifies files in `/app` directory
|
|
61
|
+
## Example Output
|
|
90
62
|
|
|
91
|
-
|
|
63
|
+
LogicStamp Context generates structured JSON contracts for each component:
|
|
92
64
|
|
|
93
65
|
```json
|
|
94
66
|
{
|
|
95
|
-
"
|
|
67
|
+
"entryId": "src/components/Button.tsx",
|
|
96
68
|
"kind": "react:component",
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
69
|
+
"props": {
|
|
70
|
+
"variant": { "type": "literal-union", "literals": ["primary", "secondary"] },
|
|
71
|
+
"onClick": { "type": "function", "signature": "() => void" }
|
|
72
|
+
},
|
|
73
|
+
"hooks": ["useState"],
|
|
74
|
+
"nextjs": { "directive": "client" },
|
|
75
|
+
"style": {
|
|
76
|
+
"styleSources": {
|
|
77
|
+
"tailwind": { "categories": { "layout": ["flex"], "colors": ["bg-blue-500"] } }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"edges": ["./Icon"]
|
|
102
81
|
}
|
|
103
82
|
```
|
|
104
83
|
|
|
105
|
-
|
|
84
|
+
📋 **See [docs/schema.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/schema.md) for complete output format documentation**
|
|
106
85
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
86
|
+
## Installation
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install -g logicstamp-context
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
After installation, the `stamp` command will be available globally.
|
|
110
93
|
|
|
111
|
-
|
|
94
|
+
**Note**: "Global CLI" means the tool is installed globally on your system (via `npm install -g`), making the `stamp` command available from any directory in your terminal, not just within a specific project folder.
|
|
95
|
+
- **Local install**: `npm install logicstamp-context` → only available in that project
|
|
96
|
+
- **Global install**: `npm install -g logicstamp-context` → available everywhere via `stamp` command
|
|
112
97
|
|
|
113
|
-
|
|
114
|
-
✅ Server Actions with `'use server'`
|
|
115
|
-
✅ Server Components in `/app` directory (no directive)
|
|
116
|
-
✅ Regular components outside `/app` (no metadata)
|
|
98
|
+
## Recent Updates
|
|
117
99
|
|
|
118
|
-
**
|
|
100
|
+
**v0.2.5**
|
|
101
|
+
- ShadCN/UI and Radix UI style extraction
|
|
102
|
+
- Enhanced debug logging and error handling
|
|
103
|
+
- Model name corrections (GPT-4o-mini → GPT-4o)
|
|
104
|
+
- Documentation consistency improvements
|
|
105
|
+
|
|
106
|
+
**v0.2.4**
|
|
107
|
+
- Material UI style extraction
|
|
108
|
+
- Improved global CLI installation docs
|
|
109
|
+
- Refined README and docs structure
|
|
110
|
+
- Streamlined README
|
|
111
|
+
- Improved token estimation
|
|
112
|
+
- UIF Contracts documentation
|
|
113
|
+
|
|
114
|
+
📋 **Full history → [CHANGELOG.md](https://github.com/LogicStamp/logicstamp-context/blob/main/CHANGELOG.md)**
|
|
119
115
|
|
|
120
116
|
## Usage
|
|
121
117
|
|
|
@@ -134,12 +130,12 @@ stamp context clean [path] [options] # Remove generated files
|
|
|
134
130
|
|
|
135
131
|
| Command | Description | Docs |
|
|
136
132
|
|---------|-------------|------|
|
|
137
|
-
| `stamp init` | Initialize project (`.gitignore`, `LLM_CONTEXT.md`, config) | [
|
|
138
|
-
| `stamp context` | Generate AI-ready context bundles organized by folder | [
|
|
139
|
-
| `stamp context style` | Generate context with style metadata (Tailwind, SCSS, etc.) | [
|
|
140
|
-
| `stamp context compare` | Compare context files to detect changes (CI-friendly) | [
|
|
141
|
-
| `stamp context validate` | Validate context file schema and structure | [
|
|
142
|
-
| `stamp context clean` | Remove all generated context artifacts | [
|
|
133
|
+
| `stamp init` | Initialize project (`.gitignore`, `LLM_CONTEXT.md`, config) | [init.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/init.md) |
|
|
134
|
+
| `stamp context` | Generate AI-ready context bundles organized by folder | [context.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/context.md) |
|
|
135
|
+
| `stamp context style` | Generate context with style metadata (Tailwind, SCSS, etc.) | [style.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/style.md) |
|
|
136
|
+
| `stamp context compare` | Compare context files to detect changes (CI-friendly) | [compare.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare.md) |
|
|
137
|
+
| `stamp context validate` | Validate context file schema and structure | [validate.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/validate.md) |
|
|
138
|
+
| `stamp context clean` | Remove all generated context artifacts | [clean.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/clean.md) |
|
|
143
139
|
|
|
144
140
|
### Common Options
|
|
145
141
|
|
|
@@ -147,484 +143,35 @@ stamp context clean [path] [options] # Remove generated files
|
|
|
147
143
|
- `--depth <n>` / `-d` - Dependency traversal depth (default: `1`)
|
|
148
144
|
- `--include-code <mode>` / `-c` - Code inclusion: `none|header|full` (default: `header`)
|
|
149
145
|
- `--include-style` - Extract style metadata (Tailwind, SCSS, animations, layout)
|
|
146
|
+
- `--format <fmt>` / `-f` - Output format: `json|pretty|ndjson` (default: `json`)
|
|
147
|
+
- `--max-nodes <n>` / `-m` - Maximum nodes per bundle (default: `100`)
|
|
150
148
|
- `--profile <profile>` - Preset: `llm-chat` (default), `llm-safe`, `ci-strict`
|
|
151
|
-
- `--compare-modes` - Show detailed token comparison across all modes
|
|
152
149
|
- `--stats` - Emit JSON stats with token estimates (CI-friendly)
|
|
153
|
-
- `--strict-missing` - Exit with error if missing dependencies found
|
|
154
150
|
- `--out <path>` / `-o` - Output directory or file path
|
|
155
151
|
- `--quiet` / `-q` - Suppress verbose output
|
|
156
152
|
|
|
157
|
-
**
|
|
158
|
-
- `stamp context compare` - `--stats`, `--approve`, `--clean-orphaned`
|
|
159
|
-
- `stamp context validate` - Validates schema and structure (exits 0/1)
|
|
160
|
-
- `stamp init` - `--skip-gitignore`
|
|
161
|
-
|
|
162
|
-
📋 **See [docs/cli/COMMANDS.md](docs/cli/COMMANDS.md) for complete option reference**
|
|
163
|
-
|
|
164
|
-
### Profiles
|
|
165
|
-
|
|
166
|
-
Profiles are preset configurations optimized for different use cases:
|
|
167
|
-
|
|
168
|
-
#### `llm-chat` (default)
|
|
169
|
-
Balanced mode for AI chat interfaces
|
|
170
|
-
- Depth: 1
|
|
171
|
-
- Code: headers only
|
|
172
|
-
- Max nodes: 100
|
|
173
|
-
- Behavioral predictions: disabled by default (enable with `--predict-behavior`)
|
|
174
|
-
|
|
175
|
-
#### `llm-safe`
|
|
176
|
-
Conservative mode for token-limited contexts
|
|
177
|
-
- Depth: 1
|
|
178
|
-
- Code: headers only
|
|
179
|
-
- Max nodes: 30
|
|
180
|
-
- Behavioral predictions: disabled by default (enable with `--predict-behavior`)
|
|
181
|
-
|
|
182
|
-
#### `ci-strict`
|
|
183
|
-
Strict validation mode for CI/CD
|
|
184
|
-
- Code: none
|
|
185
|
-
- Strict dependencies enabled
|
|
186
|
-
- Behavioral predictions: not applicable (metadata-only mode)
|
|
187
|
-
|
|
188
|
-
### Behavioral Predictions
|
|
189
|
-
|
|
190
|
-
The `--predict-behavior` flag enables experimental behavioral analysis that adds predicted component behaviors to the contract output. These predictions include:
|
|
191
|
-
|
|
192
|
-
- Form validation patterns
|
|
193
|
-
- Side effect management (useEffect)
|
|
194
|
-
- Data fetching/mutation patterns
|
|
195
|
-
- Memoization usage
|
|
196
|
-
- Context consumption
|
|
197
|
-
- Ref usage for DOM access
|
|
198
|
-
- Loading/error state handling
|
|
199
|
-
|
|
200
|
-
**Note:** Behavioral predictions are **disabled by default** in all profiles to minimize token usage. Enable them explicitly when you need richer semantic information about component behavior.
|
|
201
|
-
|
|
202
|
-
**Example:**
|
|
203
|
-
```bash
|
|
204
|
-
# Enable predictions with the default profile
|
|
205
|
-
stamp context --predict-behavior
|
|
206
|
-
|
|
207
|
-
# Enable predictions with a specific profile
|
|
208
|
-
stamp context --profile llm-safe --predict-behavior
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Token Optimization
|
|
212
|
-
|
|
213
|
-
LogicStamp Context includes built-in token cost analysis and optimization features:
|
|
214
|
-
|
|
215
|
-
### Automatic Token Estimates
|
|
216
|
-
|
|
217
|
-
Every context generation shows token costs for both GPT-4o-mini and Claude:
|
|
218
|
-
|
|
219
|
-
```
|
|
220
|
-
📏 Token Estimates (header+style mode):
|
|
221
|
-
GPT-4o-mini: 13,895 tokens
|
|
222
|
-
Claude: 12,351 tokens
|
|
223
|
-
|
|
224
|
-
Comparison:
|
|
225
|
-
Raw source | Header | Header+style
|
|
226
|
-
22,000 | 12,228 | 13,895
|
|
227
|
-
|
|
228
|
-
Full context (code+style): ~39,141 GPT-4o-mini / ~34,792 Claude
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
This helps you:
|
|
232
|
-
- **Understand costs** at a glance
|
|
233
|
-
- **Choose the right mode** for your budget
|
|
234
|
-
- **See savings** compared to full context (code+style) mode
|
|
235
|
-
|
|
236
|
-
**Enhanced with `--compare-modes`:** The `--compare-modes` flag provides detailed comparisons across all modes (none/header/header+style/full) with accurate token counts. It automatically regenerates contracts with and without style metadata to show the true impact of including style information.
|
|
237
|
-
|
|
238
|
-
### Mode Comparison Table
|
|
239
|
-
|
|
240
|
-
Use `--compare-modes` for a detailed comparison across all modes:
|
|
241
|
-
|
|
242
|
-
```bash
|
|
243
|
-
stamp context --compare-modes
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
Output:
|
|
247
|
-
```
|
|
248
|
-
📊 Mode Comparison
|
|
249
|
-
|
|
250
|
-
Comparison:
|
|
251
|
-
Mode | Tokens GPT-4o | Tokens Claude | Savings vs Raw Source
|
|
252
|
-
-------------|---------------|---------------|------------------------
|
|
253
|
-
Raw source | 22,000 | 19,556 | 0%
|
|
254
|
-
Header | 12,228 | 10,867 | 44%
|
|
255
|
-
Header+style | 13,895 | 12,351 | 37%
|
|
256
|
-
|
|
257
|
-
Mode breakdown:
|
|
258
|
-
Mode | Tokens GPT-4o | Tokens Claude | Savings vs Full Context
|
|
259
|
-
-------------|---------------|---------------|--------------------------
|
|
260
|
-
none | 8,337 | 7,411 | 79%
|
|
261
|
-
header | 12,228 | 10,867 | 69%
|
|
262
|
-
header+style | 13,895 | 12,351 | 65%
|
|
263
|
-
full | 39,141 | 34,792 | 0%
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
**When to use each mode:**
|
|
267
|
-
- **`none`** - API documentation, CI validation (no code snippets, no style)
|
|
268
|
-
- **`header`** - AI chat, code review (JSDoc headers + contracts, no style)
|
|
269
|
-
- **`header+style`** - Design-aware AI chat (headers + contracts + style metadata)
|
|
270
|
-
- **`full`** - Deep analysis, debugging (complete source code + contracts + style info)
|
|
271
|
-
|
|
272
|
-
**Note:** The `--compare-modes` flag automatically regenerates contracts with and without style metadata to provide accurate token counts for all modes. This ensures you see the true impact of including style information.
|
|
273
|
-
|
|
274
|
-
**Optional tokenizers for accurate counts:** LogicStamp Context includes `@dqbd/tiktoken` (GPT-4) and `@anthropic-ai/tokenizer` (Claude) as optional dependencies. npm will automatically attempt to install them when you install `logicstamp-context`. If installation succeeds, you get model-accurate token counts. If installation fails or is skipped (normal for optional dependencies), LogicStamp Context gracefully falls back to character-based estimation (typically within 10-15% accuracy). No manual installation is required unless you specifically want accurate counts and the automatic installation failed.
|
|
275
|
-
|
|
276
|
-
### Stats for CI/CD
|
|
277
|
-
|
|
278
|
-
Use `--stats` to get machine-readable token data:
|
|
279
|
-
|
|
280
|
-
```bash
|
|
281
|
-
stamp context --stats
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
Output JSON includes:
|
|
285
|
-
```json
|
|
286
|
-
{
|
|
287
|
-
"tokensGPT4": 13895,
|
|
288
|
-
"tokensClaude": 12351,
|
|
289
|
-
"modeEstimates": {
|
|
290
|
-
"none": {"gpt4": 8337, "claude": 7411},
|
|
291
|
-
"header": {"gpt4": 13895, "claude": 12351},
|
|
292
|
-
"full": {"gpt4": 39141, "claude": 34792}
|
|
293
|
-
},
|
|
294
|
-
"savingsGPT4": "65",
|
|
295
|
-
"savingsClaude": "65"
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
## Context Drift Detection
|
|
300
|
-
|
|
301
|
-
The `compare` command helps you track changes between context versions:
|
|
302
|
-
|
|
303
|
-
### Basic Comparison
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
stamp context compare old.json new.json
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
Output:
|
|
310
|
-
```
|
|
311
|
-
✅ PASS
|
|
312
|
-
|
|
313
|
-
# or if changes detected:
|
|
314
|
-
|
|
315
|
-
⚠️ DRIFT
|
|
316
|
-
|
|
317
|
-
Added components: 2
|
|
318
|
-
+ src/components/NewButton.tsx
|
|
319
|
-
+ src/utils/helpers.ts
|
|
320
|
-
|
|
321
|
-
Removed components: 1
|
|
322
|
-
- src/components/OldButton.tsx
|
|
323
|
-
|
|
324
|
-
Changed components: 3
|
|
325
|
-
~ src/components/Card.tsx
|
|
326
|
-
Δ imports, hooks
|
|
327
|
-
~ src/App.tsx
|
|
328
|
-
Δ hash
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
### With Token Stats
|
|
332
|
-
|
|
333
|
-
```bash
|
|
334
|
-
stamp context compare old.json new.json --stats
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
Shows token cost changes:
|
|
338
|
-
```
|
|
339
|
-
Token Stats:
|
|
340
|
-
Old: 8,484 (GPT-4o-mini) | 7,542 (Claude)
|
|
341
|
-
New: 9,125 (GPT-4o-mini) | 8,111 (Claude)
|
|
342
|
-
Δ +641 (+7.56%)
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
### Exit Codes
|
|
346
|
-
|
|
347
|
-
- `0` - No drift (PASS)
|
|
348
|
-
- `1` - Drift detected or error
|
|
349
|
-
|
|
350
|
-
Perfect for CI/CD validation:
|
|
351
|
-
```bash
|
|
352
|
-
# In your CI pipeline
|
|
353
|
-
stamp context compare base.json pr.json || echo "Context drift detected!"
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
## Examples
|
|
357
|
-
|
|
358
|
-
### Basic usage
|
|
359
|
-
|
|
360
|
-
```bash
|
|
361
|
-
# Generate context for entire project
|
|
362
|
-
stamp context
|
|
363
|
-
|
|
364
|
-
# CLI output:
|
|
365
|
-
# 🔍 Scanning /path/to/project...
|
|
366
|
-
# ⚙️ Analyzing components...
|
|
367
|
-
# 🔗 Building dependency graph...
|
|
368
|
-
# 📦 Generating context...
|
|
369
|
-
# 🔍 Validating generated context...
|
|
370
|
-
# ✅ Validation passed
|
|
371
|
-
# 📝 Writing context files for 5 folders...
|
|
372
|
-
# ✓ context.json (2 bundles)
|
|
373
|
-
# ✓ src/context.json (3 bundles)
|
|
374
|
-
# ✓ src/components/context.json (5 bundles)
|
|
375
|
-
# ✓ src/utils/context.json (2 bundles)
|
|
376
|
-
# ✓ app/context.json (3 bundles)
|
|
377
|
-
# 📝 Writing main context index...
|
|
378
|
-
# ✓ context_main.json (index of 5 folders)
|
|
379
|
-
# ✅ 6 context files written successfully
|
|
380
|
-
#
|
|
381
|
-
# 📊 Summary:
|
|
382
|
-
# Total components: 15
|
|
383
|
-
# Root components: 3
|
|
384
|
-
# ...
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
### Focused analysis
|
|
388
|
-
|
|
389
|
-
```bash
|
|
390
|
-
# Analyze only the src directory
|
|
391
|
-
stamp context ./src
|
|
392
|
-
|
|
393
|
-
# Analyze with custom output directory
|
|
394
|
-
stamp context --out ./output
|
|
395
|
-
|
|
396
|
-
# Or specify a .json file to use its directory
|
|
397
|
-
stamp context --out ./output/context.json # Uses ./output as directory
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
### Deep traversal
|
|
401
|
-
|
|
402
|
-
```bash
|
|
403
|
-
# Include 2 levels of dependencies
|
|
404
|
-
stamp context --depth 2
|
|
405
|
-
|
|
406
|
-
# Include full source code
|
|
407
|
-
stamp context --include-code full
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
### Token cost analysis
|
|
411
|
-
|
|
412
|
-
```bash
|
|
413
|
-
# Show detailed mode comparison
|
|
414
|
-
stamp context --compare-modes
|
|
415
|
-
|
|
416
|
-
# Get JSON stats for CI
|
|
417
|
-
stamp context --stats
|
|
418
|
-
|
|
419
|
-
# See token costs for specific mode
|
|
420
|
-
stamp context --include-code none
|
|
421
|
-
stamp context --include-code full
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### Context comparison
|
|
425
|
-
|
|
426
|
-
```bash
|
|
427
|
-
# Basic drift detection
|
|
428
|
-
stamp context compare old.json new.json
|
|
429
|
-
|
|
430
|
-
# With token delta stats
|
|
431
|
-
stamp context compare base.json pr.json --stats
|
|
432
|
-
|
|
433
|
-
# In CI pipeline
|
|
434
|
-
stamp context compare base.json pr.json || exit 1
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
### Clean context files
|
|
438
|
-
|
|
439
|
-
```bash
|
|
440
|
-
# Show what would be removed (dry run)
|
|
441
|
-
stamp context clean
|
|
442
|
-
|
|
443
|
-
# Actually delete all context artifacts
|
|
444
|
-
stamp context clean --all --yes
|
|
445
|
-
|
|
446
|
-
# Clean specific directory
|
|
447
|
-
stamp context clean ./output --all --yes
|
|
448
|
-
|
|
449
|
-
# Suppress verbose output (quiet mode)
|
|
450
|
-
stamp context --quiet
|
|
451
|
-
stamp context validate --quiet
|
|
452
|
-
stamp context compare --quiet
|
|
453
|
-
stamp context clean --all --yes --quiet
|
|
454
|
-
|
|
455
|
-
# Show version number
|
|
456
|
-
stamp --version
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
### CI/CD validation
|
|
460
|
-
|
|
461
|
-
```bash
|
|
462
|
-
# Use llm-safe profile for smaller output
|
|
463
|
-
stamp context --profile llm-safe --out safe-context.json
|
|
464
|
-
|
|
465
|
-
# Strict mode: fail if any dependencies missing
|
|
466
|
-
stamp context --strict-missing
|
|
467
|
-
|
|
468
|
-
# Generate stats for CI monitoring
|
|
469
|
-
stamp context --stats > stats.json
|
|
470
|
-
|
|
471
|
-
# Validate generated context
|
|
472
|
-
stamp context validate context.json
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
## Output Format
|
|
476
|
-
|
|
477
|
-
LogicStamp Context generates a **folder-organized, multi-file output structure** that maintains your project's directory hierarchy:
|
|
478
|
-
|
|
479
|
-
```
|
|
480
|
-
output/
|
|
481
|
-
├── context_main.json # Main index with folder metadata
|
|
482
|
-
├── context.json # Root folder bundles (if any)
|
|
483
|
-
├── src/
|
|
484
|
-
│ └── context.json # Bundles from src/ folder
|
|
485
|
-
└── src/components/
|
|
486
|
-
└── context.json # Bundles from src/components/
|
|
487
|
-
```
|
|
153
|
+
📋 **See [docs/cli/commands.md](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/commands.md) for complete option reference**
|
|
488
154
|
|
|
489
|
-
|
|
155
|
+
## Documentation
|
|
490
156
|
|
|
491
|
-
- **
|
|
492
|
-
- **
|
|
493
|
-
- **
|
|
494
|
-
- **
|
|
157
|
+
- **[Usage Guide](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md)** — Complete usage documentation with examples
|
|
158
|
+
- **[Token Optimization](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md#token-cost-comparison)** — Understand token costs and savings
|
|
159
|
+
- **[Mode Comparison](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/cli/compare-modes.md)** — Detailed comparison across all modes
|
|
160
|
+
- **[Output Format](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/schema.md)** — Complete schema documentation
|
|
161
|
+
- **[CI Integration](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md#cicd-integration)** — CI/CD workflows and validation
|
|
162
|
+
- **[Troubleshooting](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/usage.md#troubleshooting)** — Common issues and solutions
|
|
163
|
+
- **[UIF Contracts](https://github.com/LogicStamp/logicstamp-context/blob/main/docs/uif_contracts.md)** — Understanding component contracts
|
|
495
164
|
|
|
496
|
-
|
|
165
|
+
## Need Help?
|
|
497
166
|
|
|
498
|
-
|
|
499
|
-
-
|
|
500
|
-
- `summary` - Total components, bundles, folders, token estimates
|
|
167
|
+
- **Open an issue** → https://github.com/LogicStamp/logicstamp-context/issues
|
|
168
|
+
- **Join our roadmap** → https://logicstamp.dev
|
|
501
169
|
|
|
502
|
-
|
|
503
|
-
- `entryId` - Root component file path
|
|
504
|
-
- `graph.nodes[]` - Component contracts with structure, props, hooks, state
|
|
505
|
-
- `graph.edges[]` - Dependency relationships
|
|
506
|
-
- `meta.missing[]` - Unresolved dependencies (if any)
|
|
507
|
-
- `meta.source` - Generator version
|
|
508
|
-
|
|
509
|
-
**Missing dependencies:**
|
|
510
|
-
- `file not found` - Deleted or moved file
|
|
511
|
-
- `external package` - Third-party npm package (intentionally excluded)
|
|
512
|
-
- `outside scan path` - File exists but outside scan directory
|
|
513
|
-
- `circular dependency` - Circular import detected
|
|
514
|
-
- `max depth exceeded` - Beyond `--depth` limit
|
|
515
|
-
|
|
516
|
-
📋 **See [`schema/logicstamp.context.schema.json`](schema/logicstamp.context.schema.json) for complete JSON Schema**
|
|
517
|
-
📋 **See [`docs/SCHEMA.md`](docs/SCHEMA.md) for detailed field documentation**
|
|
518
|
-
|
|
519
|
-
## Use Cases
|
|
520
|
-
|
|
521
|
-
### AI-Assisted Development
|
|
522
|
-
|
|
523
|
-
Share context with Claude or ChatGPT to get:
|
|
524
|
-
- Architecture suggestions
|
|
525
|
-
- Refactoring recommendations
|
|
526
|
-
- Bug fixes based on full component understanding
|
|
527
|
-
|
|
528
|
-
### Documentation
|
|
529
|
-
|
|
530
|
-
Generate up-to-date component documentation automatically:
|
|
531
|
-
- API contracts
|
|
532
|
-
- Dependency trees
|
|
533
|
-
- Component relationships
|
|
534
|
-
|
|
535
|
-
### Code Review
|
|
536
|
-
|
|
537
|
-
Quickly understand component structure and dependencies:
|
|
538
|
-
- Identify circular dependencies
|
|
539
|
-
- Find unused components
|
|
540
|
-
- Track component complexity
|
|
541
|
-
|
|
542
|
-
## Troubleshooting
|
|
543
|
-
|
|
544
|
-
### Handling Missing Dependencies
|
|
545
|
-
|
|
546
|
-
If your generated context shows missing dependencies in the `meta.missing` array:
|
|
547
|
-
|
|
548
|
-
#### 1. External Packages (Expected)
|
|
549
|
-
```json
|
|
550
|
-
{
|
|
551
|
-
"name": "@mui/material",
|
|
552
|
-
"reason": "external package"
|
|
553
|
-
}
|
|
554
|
-
```
|
|
555
|
-
**Solution:** This is normal. LogicStamp only analyzes your source code, not node_modules. External packages are intentionally excluded.
|
|
556
|
-
|
|
557
|
-
#### 2. File Not Found (Action Required)
|
|
558
|
-
```json
|
|
559
|
-
{
|
|
560
|
-
"name": "./components/OldButton",
|
|
561
|
-
"reason": "file not found",
|
|
562
|
-
"referencedBy": "src/App.tsx"
|
|
563
|
-
}
|
|
564
|
-
```
|
|
565
|
-
**Solutions:**
|
|
566
|
-
- Check if the file was deleted or moved
|
|
567
|
-
- Update the import path in the referencing component
|
|
568
|
-
- Use `--strict-missing` in CI to catch these issues early
|
|
569
|
-
|
|
570
|
-
#### 3. Outside Scan Path
|
|
571
|
-
```json
|
|
572
|
-
{
|
|
573
|
-
"name": "../../shared/utils",
|
|
574
|
-
"reason": "outside scan path"
|
|
575
|
-
}
|
|
576
|
-
```
|
|
577
|
-
**Solutions:**
|
|
578
|
-
- Expand your scan path: `stamp context ../` (parent directory)
|
|
579
|
-
- Or scan from project root: `stamp context .` (from root)
|
|
580
|
-
|
|
581
|
-
#### 4. Max Depth Exceeded
|
|
582
|
-
```json
|
|
583
|
-
{
|
|
584
|
-
"name": "./deeply/nested/component",
|
|
585
|
-
"reason": "max depth exceeded"
|
|
586
|
-
}
|
|
587
|
-
```
|
|
588
|
-
**Solutions:**
|
|
589
|
-
- Increase depth: `stamp context --depth 2` or `--depth 3`
|
|
590
|
-
- Note: Higher depth = more tokens consumed
|
|
591
|
-
|
|
592
|
-
#### 5. Circular Dependencies
|
|
593
|
-
```json
|
|
594
|
-
{
|
|
595
|
-
"name": "./ComponentA",
|
|
596
|
-
"reason": "circular dependency"
|
|
597
|
-
}
|
|
598
|
-
```
|
|
599
|
-
**Solutions:**
|
|
600
|
-
- Refactor to break the circular import
|
|
601
|
-
- Extract shared logic to a separate module
|
|
602
|
-
- This is a code smell that should be addressed
|
|
603
|
-
|
|
604
|
-
### Common Issues
|
|
605
|
-
|
|
606
|
-
**Q: Why is my context.json huge?**
|
|
607
|
-
- Use `--include-code none` to exclude all source code (smallest)
|
|
608
|
-
- Use `--include-code header` (default) for balanced output
|
|
609
|
-
- Use `--profile llm-safe` for token-constrained scenarios
|
|
610
|
-
- Check `--compare-modes` to see token savings
|
|
170
|
+
## What is this?
|
|
611
171
|
|
|
612
|
-
**
|
|
613
|
-
```bash
|
|
614
|
-
stamp context validate context.json
|
|
615
|
-
# Or validate the main index
|
|
616
|
-
stamp context validate context_main.json
|
|
617
|
-
```
|
|
618
|
-
- Check for schema mismatches (outdated schema version)
|
|
619
|
-
- Verify JSON is well-formed (no trailing commas, proper escaping)
|
|
620
|
-
- Ensure all required fields are present
|
|
621
|
-
- Each folder's context.json should be a valid bundle array
|
|
622
|
-
- The context_main.json should have the LogicStampIndex structure
|
|
172
|
+
**LogicStamp Context** is a lightweight tool that scans your React/TypeScript codebase and generates structured context bundles optimized for AI tools like Claude, ChatGPT, and other LLMs.
|
|
623
173
|
|
|
624
|
-
|
|
625
|
-
- LogicStamp respects `.gitignore` automatically
|
|
626
|
-
- `node_modules/` and common build directories are excluded by default
|
|
627
|
-
- Scan specific directories: `stamp context ./src`
|
|
174
|
+
No setup, no configuration, no pre-compilation required. Just point it at your code and get instant, AI-ready documentation.
|
|
628
175
|
|
|
629
176
|
## How it Works
|
|
630
177
|
|
|
@@ -638,43 +185,6 @@ stamp context validate context_main.json
|
|
|
638
185
|
|
|
639
186
|
All in one command, no pre-compilation needed!
|
|
640
187
|
|
|
641
|
-
## Planned Orchestrator (@logicstamp/cli)
|
|
642
|
-
|
|
643
|
-
`logicstamp-context` is the primary CLI available today. A higher-level orchestrator package `@logicstamp/cli` is planned as an optional wrapper.
|
|
644
|
-
|
|
645
|
-
| Feature | logicstamp-context | LogicStamp Orchestrator (planned) |
|
|
646
|
-
|---------|-------------------|----------------------------------|
|
|
647
|
-
| Standalone | ✅ Yes | ❌ No (wraps underlying tools) |
|
|
648
|
-
| Pre-compilation required | ❌ No | ✅ Yes (for verification) |
|
|
649
|
-
| Context generation | ✅ Yes | ✅ Yes |
|
|
650
|
-
| UIF contracts per file | ✅ Yes (embedded in bundles) | ✅ Yes (as `.uif.json` sidecar files) |
|
|
651
|
-
| Contract compilation | ✅ Built-in | ✅ Separate command |
|
|
652
|
-
| Contract verification | ❌ No | ✅ Yes (planned) |
|
|
653
|
-
| Size | Focused | Orchestrator |
|
|
654
|
-
|
|
655
|
-
**TL;DR**: Use `stamp context` (logicstamp-context) for AI context generation today. The future `@logicstamp/cli` orchestrator will provide optional higher-level workflows once it's released.
|
|
656
|
-
|
|
657
|
-
## Future Roadmap
|
|
658
|
-
|
|
659
|
-
### Planned Features
|
|
660
|
-
|
|
661
|
-
**Next.js Enhancements:**
|
|
662
|
-
- App Router role detection (`page`, `layout`, `route`, `loading`, `error`)
|
|
663
|
-
- Dynamic route segment extraction (`[id]`, `[...slug]`)
|
|
664
|
-
- Server Action signature extraction and RPC call graphs
|
|
665
|
-
- Suspense boundary and streaming component detection
|
|
666
|
-
|
|
667
|
-
**Framework Support:**
|
|
668
|
-
- Vue.js 3 Composition API components
|
|
669
|
-
- Svelte component analysis
|
|
670
|
-
|
|
671
|
-
**Other:**
|
|
672
|
-
- Custom contract fields via config
|
|
673
|
-
- Performance metrics (bundle size, render estimates)
|
|
674
|
-
- Incremental bundle caching
|
|
675
|
-
|
|
676
|
-
**Note:** Features are added incrementally based on community feedback. Current implementation prioritizes maximum value with minimal complexity.
|
|
677
|
-
|
|
678
188
|
## Requirements
|
|
679
189
|
|
|
680
190
|
- Node.js >= 18.0.0
|
|
@@ -688,7 +198,7 @@ MIT
|
|
|
688
198
|
|
|
689
199
|
Issues and PRs welcome! This is an open-source project.
|
|
690
200
|
|
|
691
|
-
**See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines**, including:
|
|
201
|
+
**See [CONTRIBUTING.md](https://github.com/LogicStamp/logicstamp-context/blob/main/CONTRIBUTING.md) for detailed guidelines**, including:
|
|
692
202
|
- Branching strategy (feature → `main`, no `develop` branch)
|
|
693
203
|
- Branch naming conventions (`feature/*`, `fix/*`, `docs/*`)
|
|
694
204
|
- Commit message format (Conventional Commits)
|
|
@@ -696,5 +206,6 @@ Issues and PRs welcome! This is an open-source project.
|
|
|
696
206
|
|
|
697
207
|
## Links
|
|
698
208
|
|
|
699
|
-
- [LogicStamp Main Project](https://
|
|
209
|
+
- [LogicStamp Main Project](https://logicstamp.dev)
|
|
210
|
+
- [GitHub Repository](https://github.com/LogicStamp/logicstamp-context)
|
|
700
211
|
- [Report Issues](https://github.com/LogicStamp/logicstamp-context/issues)
|