docs: define milestone v1.1 requirements

This commit is contained in:
NikitolProject
2026-02-25 04:05:10 +03:00
parent c336022fb9
commit d787e05794

View File

@@ -3,7 +3,7 @@
**Defined:** 2026-02-24 **Defined:** 2026-02-24
**Core Value:** Архив невозможно распаковать без знания формата — стандартные утилиты не распознают содержимое **Core Value:** Архив невозможно распаковать без знания формата — стандартные утилиты не распознают содержимое
## v1 Requirements ## v1.0 Requirements (Complete)
### Format (Бинарный формат) ### Format (Бинарный формат)
@@ -59,7 +59,43 @@
- [x] **TST-02**: Golden test vectors: известный plaintext/key/IV → ожидаемый ciphertext - [x] **TST-02**: Golden test vectors: известный plaintext/key/IV → ожидаемый ciphertext
- [x] **TST-03**: Базовые unit-тесты для каждого модуля pipeline - [x] **TST-03**: Базовые unit-тесты для каждого модуля pipeline
## v2 Requirements ## v1.1 Requirements
### Format (Бинарный формат)
- [ ] **FMT-09**: Тип записи в TOC entry (файл/директория) — 1 байт
- [ ] **FMT-10**: Unix permission bits (mode) в TOC entry — 2 байта (u16)
- [ ] **FMT-11**: Относительные пути с `/` разделителем вместо filename-only
- [ ] **FMT-12**: Обновлённая спецификация FORMAT.md с новыми полями
### Directory (Поддержка директорий)
- [ ] **DIR-01**: `pack` рекурсивно обходит директории и добавляет все файлы
- [ ] **DIR-02**: Относительные пути сохраняются при архивации (dir/subdir/file.txt)
- [ ] **DIR-03**: Пустые директории сохраняются как записи типа "directory" в TOC
- [ ] **DIR-04**: `unpack` создаёт полную иерархию директорий
- [ ] **DIR-05**: `unpack` восстанавливает Unix mode bits для файлов и директорий
### Kotlin Decoder
- [ ] **KOT-05**: Парсинг нового TOC с типом записи и permissions
- [ ] **KOT-06**: Создание иерархии директорий при извлечении
- [ ] **KOT-07**: Установка permissions (File.setReadable/setWritable/setExecutable)
### Shell Decoder
- [ ] **SHL-04**: Парсинг нового TOC с типом записи и permissions
- [ ] **SHL-05**: mkdir -p для иерархии и пустых директорий
- [ ] **SHL-06**: chmod для восстановления permissions
### Testing
- [ ] **TST-04**: Round-trip с вложенными директориями (3+ уровня)
- [ ] **TST-05**: Round-trip с пустыми директориями
- [ ] **TST-06**: Проверка сохранения mode bits
- [ ] **TST-07**: Cross-validation: Rust archive → Kotlin/Shell decode с директориями
## Future Requirements
### Расширенная обфускация ### Расширенная обфускация
- **OBF-01**: Shuffled blocks (хранение блоков в случайном порядке с scramble map) - **OBF-01**: Shuffled blocks (хранение блоков в случайном порядке с scramble map)
@@ -86,8 +122,10 @@
| Асимметричное шифрование | Избыточно для hardcoded key модели | | Асимметричное шифрование | Избыточно для hardcoded key модели |
| Self-extracting архивы | Shell-скрипт — отдельный файл | | Self-extracting архивы | Shell-скрипт — отдельный файл |
| DRM / лицензирование | Не цель проекта | | DRM / лицензирование | Не цель проекта |
| File permissions в архиве | Android управляет своими permissions |
| Дедупликация файлов | Разные файлы, нет дублей | | Дедупликация файлов | Разные файлы, нет дублей |
| Симлинки и хардлинки | Только файлы и директории |
| uid/gid и timestamps | Только mode bits — достаточно для target use case |
| Обратная совместимость с v1.0 | Формат меняется, старые архивы не поддерживаются |
## Traceability ## Traceability
@@ -123,12 +161,32 @@
| TST-01 | Phase 3 | Complete | | TST-01 | Phase 3 | Complete |
| TST-02 | Phase 3 | Complete | | TST-02 | Phase 3 | Complete |
| TST-03 | Phase 3 | Complete | | TST-03 | Phase 3 | Complete |
| FMT-09 | — | Pending |
| FMT-10 | — | Pending |
| FMT-11 | — | Pending |
| FMT-12 | — | Pending |
| DIR-01 | — | Pending |
| DIR-02 | — | Pending |
| DIR-03 | — | Pending |
| DIR-04 | — | Pending |
| DIR-05 | — | Pending |
| KOT-05 | — | Pending |
| KOT-06 | — | Pending |
| KOT-07 | — | Pending |
| SHL-04 | — | Pending |
| SHL-05 | — | Pending |
| SHL-06 | — | Pending |
| TST-04 | — | Pending |
| TST-05 | — | Pending |
| TST-06 | — | Pending |
| TST-07 | — | Pending |
**Coverage:** **Coverage:**
- v1 requirements: 30 total - v1.0 requirements: 30 total — all Complete
- Mapped to phases: 30 - v1.1 requirements: 19 total
- Unmapped: 0 - Mapped to phases: 0 (pending roadmap)
- Unmapped: 19
--- ---
*Requirements defined: 2026-02-24* *Requirements defined: 2026-02-24*
*Last updated: 2026-02-25 after Phase 4 completion* *Last updated: 2026-02-25 after milestone v1.1 requirements definition*