docs: sync status with code, add AI-resistance research, restyle README
Documentation had drifted from the actual implementation: the noxis
(CLI) and noxis-verify crates were fully built and tested but every
doc called them "not started". Verified against the code (build +
test run) and corrected status across README.md, todo.md,
architecture.md, techniques.md and learnings/{lessons,priorities}.md.
Also:
- restyled README.md (badges, no em dashes, usage examples, dropped
the redundant "Принципы" section already covered elsewhere)
- added docs/learnings/ai-resistance.md: a sourced writeup of what
actually works against LLM-driven reverse engineering (Elastic
Security Labs' Opus 4.6 vs Tigress study, the Acoda paper) and what
of it applies to noxis, plus concrete todo.md §7 items
- noxis-structure-check: the 250-line/4-file gate was scanning
docs/**, which fought against writing documentation freely; it now
only scans crates/*/{src,tests,benches} and only counts .rs files
This commit is contained in:
parent
2674d7fc89
commit
c3b8d4dd62
9 changed files with 349 additions and 162 deletions
|
|
@ -12,22 +12,24 @@
|
|||
| [`learnings/lessons.md`](learnings/lessons.md) | уроки из разбора EvoVis: что защита сделала плохо и чего мы не делаем |
|
||||
| [`learnings/reference.md`](learnings/reference.md) | разбор референсного обфускатора (Java/ASM) — что берём, что нет |
|
||||
| [`learnings/priorities.md`](learnings/priorities.md) | что улучшим: стратегия и приоритеты |
|
||||
| [`learnings/ai-resistance.md`](learnings/ai-resistance.md) | новые техники обфускации и устойчивость к LLM-анализу |
|
||||
|
||||
План выполнения — [`../todo.md`](../todo.md). Исходный материал разбора —
|
||||
[`../info/`](../info/README.md).
|
||||
|
||||
## Структурные правила проекта
|
||||
|
||||
Правила действуют на **весь наш код и документацию**: `crates/**` и `docs/**`.
|
||||
Не учитываются: `Cargo.lock`, `.gitignore`, `info/`, корень крейта
|
||||
Правила — **только про Rust-код**: `crates/*/src`, `crates/*/tests`,
|
||||
`crates/*/benches`. Документация (`docs/**`, корневые `.md`) и `info/` вне
|
||||
гейта: писать подробно там, где это документация, а не ограничивать объём
|
||||
искусственно. Не учитываются также `Cargo.lock`, `.gitignore`, корень крейта
|
||||
(в нём всегда лежат `Cargo.toml` + `build.rs`).
|
||||
|
||||
1. **Не больше 250 строк** в одном `.rs` или `.md` файле.
|
||||
2. **Не больше 4 файлов** в одной директории. Подпапки не ограничены:
|
||||
1. **Не больше 250 строк** в одном `.rs` файле.
|
||||
2. **Не больше 4 `.rs`-файлов** в одной директории. Подпапки не ограничены:
|
||||
`src/` может содержать `lib.rs` и три модуля-директории, каждая из которых
|
||||
в свою очередь содержит не больше четырёх файлов.
|
||||
|
||||
Проверяются: `crates/*/src`, `crates/*/tests`, `crates/*/benches` и `docs/`.
|
||||
`tests/` и `benches/` не исключены намеренно — иначе правило
|
||||
«250 строк» обходится выносом кода в тесты.
|
||||
|
||||
|
|
@ -45,11 +47,11 @@ fn main() {
|
|||
}
|
||||
```
|
||||
|
||||
`noxis-structure-check` находит корень воркспейста, обходит деревья `src/`,
|
||||
`tests/` и `benches/` всех крейтов плюс `docs/`, и **падает со стопкой ошибок**,
|
||||
если лимит нарушен. Поэтому `cargo build` не соберёт нарушение — специально
|
||||
запускать проверку не нужно. Деревья регистрируются через
|
||||
`cargo:rerun-if-changed`, так что правка `docs/` тоже перезапускает гейт.
|
||||
`noxis-structure-check` обходит деревья `src/`, `tests/` и `benches/` **этого
|
||||
крейта** и **падает со стопкой ошибок**, если лимит нарушен. Поэтому
|
||||
`cargo build` не соберёт нарушение — специально запускать проверку не нужно.
|
||||
Деревья регистрируются через `cargo:rerun-if-changed`, чтобы гейт не
|
||||
срабатывал на правки вне проверяемых путей.
|
||||
|
||||
Остальное, что не привязано к компиляции, собирается одним скриптом:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue