ARCLUX — Tooling & Config Guide
This file explains all the config/tooling in this repo, what it’s for, and how to use it. If you’re wondering “what is this file for”, check here first. Also readCONTRIBUTING.md for code contribution conventions (project
structure, how to add a detector/parser, etc). This file focuses on
tooling/workflow.
1. PROGRES system (progres/PROGRES-*.md)
All project work history is logged in theprogres/ folder, split by
category:
The root
PROGRES.md is just an index + “quick decision guide” for
figuring out which file an entry belongs in.
How to add a progress entry — USE THE SCRIPT, DON’T EDIT MANUALLY
status-core, status-detectors, status-web,
status-infra, status-backlog, bugs, decisions, gotchas,
collaborators.
Example:
Closing out an old plan — use close-plan
If progres/decisions.md has an old entry that says “planned”, “not yet built”, or “next step”, and you just finished that work, don’t just add a new status entry — the old entry will look pending forever if left untouched. Use close-plan mode:- Gets today’s date from the device
- Builds a
## YYYY-MM-DD — titleheader - Appends it to the right category file
Tagging progress entries with status — Not Started / In Progress / Done
Every entry can now have a status, so collaborators can see at a glance which ones are still ideas, which are in progress, which are done — without reading the full content of each entry. Adding a new entry with a status:Not Started, In Progress, Done.
Updating the status of an EXISTING entry (e.g. starting work on
something, or just finishing it), without creating a new entry:
**Status:** ... line in place — the rest of the entry is
untouched. If the entry doesn’t have a status line yet (an old entry
from before this feature existed), a status line is added automatically.
Example workflow:
2. Git workflow — branch protection
main is locked by a branch protection rule on GitHub. You can’t push
directly to main, everything goes through a Pull Request.
Standard flow:
git push output (or go to
github.com/GSF-001/ARCLUX/pulls), open a PR, check the “Files changed”
tab, then merge.
Branch naming:
split/...— breaking a large file into smaller onesfix/...— bug/mistake fixupdate/...— content/documentation updatefeat/...— new feature/toolingdocs/...— documentation only
IMPORTANT — verify before merging
There have been a few cases where a PR got merged but the result turned out to be a stale version, not the latest pushed commit. Before clicking “Merge pull request” on GitHub:- (deletions),
check the actual diff content (git diff main..<branch> -- <file>)
before continuing — it might be overwriting something important.
After merging, always verify locally again:
3. PR Template (.github/PULL_REQUEST_TEMPLATE.md)
Automatically shows up every time you open a new PR on GitHub. Contains a checklist: PROGRES.md updated, tested on Termux/playground, etc. No need to touch it manually — GitHub displays it automatically.4. Pre-commit hook (.githooks/pre-commit)
Active automatically in this repo (already set viagit config core.hooksPath .githooks). Runs on every git commit.
What it does: if a staged progres/PROGRES-*.md file has a new ##
header without a date (YYYY-MM-DD), the commit is rejected.
This guarantees no more dateless progress entries.
If your commit gets rejected by this hook, the error message will tell
you which file and which entry title is the problem. The fix: use
scripts/log-progress.sh (see section 1), don’t edit manually.
5. Commit message template (.gitmessage)
If you commit without-m (just git commit alone), an editor
opens showing the commit format template:
# are comments, automatically ignored by git. Just
write the actual message below them.
If you commit with -m "message" directly, this template isn’t used
(that’s fine, it’s optional).
6. CODEOWNERS (.github/CODEOWNERS)
Determines who’s automatically a reviewer when a PR comes in. Current setting: all collaborators (@Alitindrawan24, @xcontcom,
@svSeniorEngineer) are default reviewers for all files.
If you want to split by area later (e.g. person A owns apps/web/,
person B owns packages/detectors/), just edit that file and add a
line:
7. .editorconfig
Standardizes code style across editors (indentation, line endings, etc) so it’s not inconsistent depending on which editor each collaborator uses. Most modern editors (VS Code, etc) read this file automatically, no manual setup needed.8. CI (.github/workflows/ci.yml)
Runs automatically on GitHub’s servers for every PR tomain — doesn’t
run on your Termux. Checks 3 things:
npm run typecheck(tsc --noEmit)npm run lintnpm run test