flamerjs 0.0.0-stage → 0.1.6

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.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -2
  3. package/dist/cli.js +3308 -0
  4. package/package.json +49 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sagittarius
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,205 @@
1
- # Temporary Holding Version
1
+ # Flamer
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ **A fast sanity checker for AI-assisted codebases.**
4
+
5
+ [![CI](https://img.shields.io/github/actions/workflow/status/dummy3ye/flamer/ci.yml?branch=master&style=for-the-badge&label=CI&labelColor=101418&color=9ccbfb)](https://github.com/dummy3ye/flamer/actions/workflows/ci.yml)
6
+ [![Coverage](https://img.shields.io/codecov/c/github/dummy3ye/flamer?style=for-the-badge&label=coverage&labelColor=101418&color=b9c8da)](https://codecov.io/gh/dummy3ye/flamer)
7
+ [![npm](https://img.shields.io/npm/v/flamerjs?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://www.npmjs.com/package/flamerjs)<br>
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&labelColor=101418&color=d3bfe6)](LICENSE)
9
+ [![GitHub last commit](https://img.shields.io/github/last-commit/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=9ccbfb)](https://github.com/dummy3ye/flamer/commits/master)
10
+ [![GitHub Repo stars](https://img.shields.io/github/stars/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=b9c8da)](https://github.com/dummy3ye/flamer/stargazers)
11
+ [![GitHub repo size](https://img.shields.io/github/repo-size/dummy3ye/flamer?style=for-the-badge&labelColor=101418&color=d3bfe6)](https://github.com/dummy3ye/flamer)
12
+
13
+ Flamer scans a repository for the common mistakes that appear when software is
14
+ assembled quickly with AI or other “vibe coding” workflows: unfinished
15
+ implementation, broken project wiring, missing tests, inconsistent tooling,
16
+ repository hygiene problems, and maintainability traps.
17
+
18
+ It is designed to answer:
19
+
20
+ > **What is obviously unfinished, disconnected, inconsistent, or likely to
21
+ > break in this repository?**
22
+
23
+ Flamer is **not a deep security scanner**. It includes a small credential check
24
+ so accidentally committed keys are not ignored; injection, authentication,
25
+ cryptography, infrastructure security, and supply-chain analysis belong in a
26
+ dedicated security tool.
27
+
28
+ ## Why Flamer?
29
+
30
+ AI-generated code can look complete while still containing:
31
+
32
+ - placeholder implementations and empty error handlers;
33
+ - routes, scripts, or configuration that do not connect;
34
+ - tests that exist but provide little confidence;
35
+ - duplicate, generated, oversized, or abandoned files;
36
+ - dependency and runtime configuration that differs between environments.
37
+
38
+ Flamer turns these signals into a prioritized, machine-readable report that
39
+ can be used locally, in pull requests, or in CI.
40
+
41
+ ## Features
42
+
43
+ - **Unfinished implementation:** explicit “not implemented” paths and empty
44
+ error handlers.
45
+ - **Project health:** missing README, license, CI, environment templates,
46
+ editor configuration, and ecosystem scaffolding.
47
+ - **Testing signals:** test presence and source-to-test balance by language.
48
+ - **Dependency hygiene:** lockfiles, version constraints, and manifest checks.
49
+ - **Repository hygiene:** conflict markers, work-item markers, missing
50
+ newlines, mixed line endings, generated/vendor bloat, and deep paths.
51
+ - **Language-aware checks:** JavaScript/TypeScript, Python, Rust, Go, C/C++,
52
+ C#, Zig, SQL, notebooks, and additional language profiles.
53
+ - **Stable JSON output:** suitable for CI annotations and other automation.
54
+ - **Single-pass scanning:** files are walked once and content is read once.
55
+
56
+ ## Requirements
57
+
58
+ - Node.js 18 or newer
59
+ - npm
60
+
61
+ ## Quick start
62
+
63
+ Run the published CLI without installing it permanently:
64
+
65
+ ```bash
66
+ npx flamerjs .
67
+ ```
68
+
69
+ For a project-local installation, add Flamer as a development dependency:
70
+
71
+ ```bash
72
+ npm install --save-dev flamerjs
73
+ npx flamerjs .
74
+ ```
75
+
76
+ Or install it globally if you use it across repositories:
77
+
78
+ ```bash
79
+ npm install --global flamerjs
80
+ flamerjs .
81
+ ```
82
+
83
+ The default output is a colorized terminal summary when run interactively.
84
+ Use `--format json` for automation and machine-readable output.
85
+
86
+ For a human-readable report:
87
+
88
+ ```bash
89
+ flamerjs . --format summary
90
+ ```
91
+
92
+ Analyze another repository:
93
+
94
+ ```bash
95
+ flamerjs /path/to/repository --format summary
96
+ ```
97
+
98
+ ## CLI
99
+
100
+ ```text
101
+ flamerjs [path] [options]
102
+ ```
103
+
104
+ | Option | Description |
105
+ | --------------------------- | ----------------------------------------------------------------------------- |
106
+ | `--package, --scope <name>` | Analyze only a named sub-project |
107
+ | `--path <dir>` | Set the repository root; defaults to the current directory |
108
+ | `--format <json\|summary>` | Select JSON or human-readable output; summary is the default |
109
+ | `--out <file>` | Also write the JSON report to a file |
110
+ | `--fail-on <SEVERITY>` | Exit with status 1 at or above `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, or `INFO` |
111
+ | `--max-files <n>` | Limit the number of files scanned |
112
+ | `--commit-limit <n>` | Limit commits inspected by Git checks |
113
+ | `--no-git` | Skip Git analysis |
114
+ | `--no-lockfile-warning` | Suppress the missing-lockfile suggestion |
115
+ | `--ignore-dir <name>` | Ignore an additional directory name; repeatable |
116
+ | `--quiet` | Suppress the human summary |
117
+ | `--color` | Force ANSI colors |
118
+ | `--no-color` | Disable ANSI colors |
119
+ | `--list-languages` | List recognized language profiles |
120
+ | `--help` | Show command help |
121
+
122
+ Exit status `0` means the scan completed; findings may still exist. Status `1`
123
+ means `--fail-on` was reached, and status `2` indicates invalid usage or a
124
+ missing path.
125
+
126
+ ## Example report
127
+
128
+ ```json
129
+ {
130
+ "project": {
131
+ "name": "example-app",
132
+ "kind": ["node"],
133
+ "layout": "single"
134
+ },
135
+ "findings": [
136
+ {
137
+ "category": "unfinished",
138
+ "severity": "HIGH",
139
+ "title": "2 source file(s) contain unfinished implementation",
140
+ "detail": "Not-implemented errors and empty error handlers were detected.",
141
+ "files": ["src/api.ts", "src/jobs.ts"],
142
+ "count": 2
143
+ }
144
+ ]
145
+ }
146
+ ```
147
+
148
+ Findings are sorted by severity. Credential values are always redacted.
149
+
150
+ ## Development
151
+
152
+ Clone the repository when you want to contribute or work on the scanner itself:
153
+
154
+ ```bash
155
+ npm ci
156
+ npm run dev # watch and rebuild dist/cli.js
157
+ npm test # run the test suite
158
+ npm run lint
159
+ npm run format:check
160
+ npm run build
161
+ ```
162
+
163
+ To run the local build directly:
164
+
165
+ ```bash
166
+ node dist/cli.js .
167
+ ```
168
+
169
+ The project uses Node.js and npm as its supported development toolchain.
170
+ `package-lock.json` is the canonical dependency lockfile.
171
+ The current test suite contains **175 tests**.
172
+
173
+ ## How it works
174
+
175
+ 1. Detect the repository layout, languages, and ecosystems.
176
+ 2. Walk the tree once and collect file metadata and content-derived signals.
177
+ 3. Run isolated analyzers against the collected records.
178
+ 4. Sort findings and emit JSON or a concise summary.
179
+
180
+ Analyzers are intentionally factual and conservative. A finding should identify
181
+ something actionable rather than merely express a preference.
182
+
183
+ ## Scope and non-goals
184
+
185
+ Flamer focuses on **codebase completeness and engineering health**, not
186
+ penetration testing. It does not attempt to prove that an application is
187
+ secure, correct, performant, or production-ready. Static signals always need
188
+ human review, especially when a project uses deliberate stubs, generated code,
189
+ or unusual architecture.
190
+
191
+ ## Contributing
192
+
193
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow and
194
+ guidelines for adding analyzers, language profiles, and tests.
195
+
196
+ When adding a check:
197
+
198
+ 1. Prefer a high-confidence signal with a concrete fix.
199
+ 2. Add a focused regression test.
200
+ 3. Keep false positives low and explain unavoidable uncertainty.
201
+ 4. Update the README when user-visible behavior changes.
202
+
203
+ ## License
204
+
205
+ This project is licensed under the [MIT License](LICENSE).