S00-003: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-003. This checkpoint does not mark implementation accepted. Validation: Session ended with status blocked. Blocker: StanzaJS 12.22.1 SASL feature accepts missing/forged server-final without processSuccess/finalize, including success before challenge/proof. Safe SCRAM cannot be attested by S00-003 until this authentication boundary has a reviewed solution. Task: S00-003 Agent: auto-protocol-826aa6bc12ef Role: protocol Action: claim Status: blocked Task title: Проверить XMPP WSS/auth библиотеку
This commit is contained in:
1 parent
f12a71df49
commit
c73d9cef45
15 files changed
+409
-14
No files matched your search
+1
-1
@@ -6,7 +6,7 @@
|
||||
|
||||
Зафиксировать Web scope, browser targets и проверенные кандидаты, не устанавливая непроверенный framework по догадке.
|
||||
|
||||
Задач: 16; entry: нет; exit: S00-010.
|
||||
Задач: 17; entry: нет; exit: S00-010.
|
||||
|
||||
## [S01: Предметные контракты](stages/S01.md)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Матрица задач
|
||||
|
||||
Generated; state revision **36**. Canonical status: state/tasks.json.
|
||||
Generated; state revision **38**. Canonical status: state/tasks.json.
|
||||
|
||||
| ID | Этап | Оператор | Reviewer | Статус | Owner | Зависимости | Задача |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| [S00-001](tasks/S00-001.md) | S00 | orchestrator | security | done | auto-orchestrator-48aab142ecde | | Утвердить Web-профиль |
|
||||
| [S00-002](tasks/S00-002.md) | S00 | orchestrator | security | done | auto-orchestrator-68a05c587e33 | S00-001, S00-011, S00-012 | Выбрать framework и build runtime |
|
||||
| [S00-003](tasks/S00-003.md) | S00 | protocol | qa | todo | | S00-001, S00-002 | Проверить XMPP WSS/auth библиотеку |
|
||||
| [S00-003](tasks/S00-003.md) | S00 | protocol | qa | blocked | auto-protocol-826aa6bc12ef | S00-001, S00-002, S00-017 | Проверить XMPP WSS/auth библиотеку |
|
||||
| [S00-004](tasks/S00-004.md) | S00 | crypto | security | todo | | S00-001, S00-002 | Проверить browser OMEMO backend |
|
||||
| [S00-005](tasks/S00-005.md) | S00 | storage | qa | todo | | S00-002 | Выбрать IndexedDB wrapper и migration policy |
|
||||
| [S00-006](tasks/S00-006.md) | S00 | orchestrator | security | todo | | S00-002 | Зафиксировать browser/reference matrix |
|
||||
@@ -19,6 +19,7 @@ Generated; state revision **36**. Canonical status: state/tasks.json.
|
||||
| [S00-014](tasks/S00-014.md) | S00 | ci-cd | qa | done | auto-ci-cd-14343249da62 | S00-001, S00-011, S00-013 | Fix repeated runner cleanup after a submitted parent is reaped |
|
||||
| [S00-015](tasks/S00-015.md) | S00 | ci-cd | qa | done | auto-ci-cd-84e209103f24 | S00-001, S00-011, S00-013, S00-014, S00-016 | Устранить прерывание: Fix runner prompt delivery after partial stdin timeout |
|
||||
| [S00-016](tasks/S00-016.md) | S00 | ci-cd | qa | done | auto-ci-cd-351a0cbbabef | S00-001, S00-011, S00-013, S00-014 | Restore reviewer model availability after provider capacity failure |
|
||||
| [S00-017](tasks/S00-017.md) | S00 | protocol | security | todo | | S00-001, S00-002 | Establish fail-closed SCRAM server-final validation |
|
||||
| [S00-010](tasks/S00-010.md) | S00 | qa | orchestrator | todo | | S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009 | Gate: Профиль и проверка стека |
|
||||
| [S01-001](tasks/S01-001.md) | S01 | orchestrator | security | todo | | S00-010 | Описать identity/model contracts |
|
||||
| [S01-002](tasks/S01-002.md) | S01 | orchestrator | security | todo | | S00-010, S01-001 | Описать async account context |
|
||||
|
||||
@@ -14,7 +14,7 @@ Allocated означает наличие плана/приёмки, а не р
|
||||
| ACC-001 | web | Web requirement; cross-platform clauses apply only in Web context. | S06-003, S21-001 |
|
||||
| ACC-002 | web | Web requirement; cross-platform clauses apply only in Web context. | S06-001, S21-001 |
|
||||
| ACC-003 | out_of_scope | Native host/port TCP configuration; Web uses ACC-004 WSS. | |
|
||||
| ACC-004 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S05-001, S06-003, S21-001 |
|
||||
| ACC-004 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S00-017, S05-001, S06-003, S21-001 |
|
||||
| ACC-005 | web | Web requirement; cross-platform clauses apply only in Web context. | S05-001, S06-011, S21-001 |
|
||||
| ACC-006 | web | Web requirement; cross-platform clauses apply only in Web context. | S06-003, S06-004, S21-001 |
|
||||
| ACC-007 | web | Web requirement; cross-platform clauses apply only in Web context. | S06-002, S06-009, S20-008, S21-001 |
|
||||
@@ -27,8 +27,8 @@ Allocated означает наличие плана/приёмки, а не р
|
||||
| ACC-014 | web | Web requirement; cross-platform clauses apply only in Web context. | S01-002, S02-010, S06-006, S06-010, S21-001 |
|
||||
| NET-001 | web | Web requirement; cross-platform clauses apply only in Web context. | S02-008, S05-001, S05-002, S05-009, S21-001 |
|
||||
| NET-002 | out_of_scope | Native transport discovery; Web WSS addressed by ACC-004/NET-001. | |
|
||||
| NET-003 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S05-003, S21-001 |
|
||||
| NET-004 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S05-003, S05-009, S21-001 |
|
||||
| NET-003 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S00-017, S05-003, S21-001 |
|
||||
| NET-004 | web | Web requirement; cross-platform clauses apply only in Web context. | S00-003, S00-017, S05-003, S05-009, S21-001 |
|
||||
| NET-005 | web | Web requirement; cross-platform clauses apply only in Web context. | S05-004, S21-001 |
|
||||
| NET-006 | web | Web requirement; cross-platform clauses apply only in Web context. | S05-002, S05-010, S06-004, S20-002, S21-001 |
|
||||
| NET-007 | web | Web requirement; cross-platform clauses apply only in Web context. | S05-007, S21-001 |
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
- [S00-001](../tasks/S00-001.md): Утвердить Web-профиль — orchestrator; done.
|
||||
- [S00-002](../tasks/S00-002.md): Выбрать framework и build runtime — orchestrator; done.
|
||||
- [S00-003](../tasks/S00-003.md): Проверить XMPP WSS/auth библиотеку — protocol; todo.
|
||||
- [S00-003](../tasks/S00-003.md): Проверить XMPP WSS/auth библиотеку — protocol; blocked.
|
||||
- [S00-004](../tasks/S00-004.md): Проверить browser OMEMO backend — crypto; todo.
|
||||
- [S00-005](../tasks/S00-005.md): Выбрать IndexedDB wrapper и migration policy — storage; todo.
|
||||
- [S00-006](../tasks/S00-006.md): Зафиксировать browser/reference matrix — orchestrator; todo.
|
||||
@@ -21,6 +21,7 @@
|
||||
- [S00-014](../tasks/S00-014.md): Fix repeated runner cleanup after a submitted parent is reaped — ci-cd; done.
|
||||
- [S00-015](../tasks/S00-015.md): Устранить прерывание: Fix runner prompt delivery after partial stdin timeout — ci-cd; done.
|
||||
- [S00-016](../tasks/S00-016.md): Restore reviewer model availability after provider capacity failure — ci-cd; done.
|
||||
- [S00-017](../tasks/S00-017.md): Establish fail-closed SCRAM server-final validation — protocol; todo.
|
||||
- [S00-010](../tasks/S00-010.md): Gate: Профиль и проверка стека — qa; todo.
|
||||
|
||||
## Граница этапа
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
id,stage,operator,reviewer,status,owner,depends_on,title
|
||||
S00-001,S00,orchestrator,security,done,auto-orchestrator-48aab142ecde,,Утвердить Web-профиль
|
||||
S00-002,S00,orchestrator,security,done,auto-orchestrator-68a05c587e33,"S00-001, S00-011, S00-012",Выбрать framework и build runtime
|
||||
S00-003,S00,protocol,qa,todo,,"S00-001, S00-002",Проверить XMPP WSS/auth библиотеку
|
||||
S00-003,S00,protocol,qa,blocked,auto-protocol-826aa6bc12ef,"S00-001, S00-002, S00-017",Проверить XMPP WSS/auth библиотеку
|
||||
S00-004,S00,crypto,security,todo,,"S00-001, S00-002",Проверить browser OMEMO backend
|
||||
S00-005,S00,storage,qa,todo,,S00-002,Выбрать IndexedDB wrapper и migration policy
|
||||
S00-006,S00,orchestrator,security,todo,,S00-002,Зафиксировать browser/reference matrix
|
||||
@@ -14,6 +14,7 @@ S00-013,S00,ci-cd,qa,done,auto-ci-cd-5f68f03dd33b,"S00-001, S00-011",Bound overs
|
||||
S00-014,S00,ci-cd,qa,done,auto-ci-cd-14343249da62,"S00-001, S00-011, S00-013",Fix repeated runner cleanup after a submitted parent is reaped
|
||||
S00-015,S00,ci-cd,qa,done,auto-ci-cd-84e209103f24,"S00-001, S00-011, S00-013, S00-014, S00-016",Устранить прерывание: Fix runner prompt delivery after partial stdin timeout
|
||||
S00-016,S00,ci-cd,qa,done,auto-ci-cd-351a0cbbabef,"S00-001, S00-011, S00-013, S00-014",Restore reviewer model availability after provider capacity failure
|
||||
S00-017,S00,protocol,security,todo,,"S00-001, S00-002",Establish fail-closed SCRAM server-final validation
|
||||
S00-010,S00,qa,orchestrator,todo,,"S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009",Gate: Профиль и проверка стека
|
||||
S01-001,S01,orchestrator,security,todo,,S00-010,Описать identity/model contracts
|
||||
S01-002,S01,orchestrator,security,todo,,"S00-010, S01-001",Описать async account context
|
||||
|
||||
|
+56
-1
@@ -267,7 +267,8 @@
|
||||
"outcome": "Spike подтверждает WSS stream, SCRAM, parser limits и нужные module extension points выбранной библиотеки.",
|
||||
"depends_on": [
|
||||
"S00-001",
|
||||
"S00-002"
|
||||
"S00-002",
|
||||
"S00-017"
|
||||
],
|
||||
"requirements": [
|
||||
"ACC-004",
|
||||
@@ -940,6 +941,60 @@
|
||||
],
|
||||
"context_budget_chars": 48000
|
||||
},
|
||||
{
|
||||
"id": "S00-017",
|
||||
"stage": "S00",
|
||||
"kind": "blocker",
|
||||
"root_task": "S00-003",
|
||||
"blocker_depth": 1,
|
||||
"unblocks": [
|
||||
"S00-003"
|
||||
],
|
||||
"role": "protocol",
|
||||
"reviewer_role": "security",
|
||||
"title": "Establish fail-closed SCRAM server-final validation",
|
||||
"outcome": "One isolated, runnable and independently reviewed SASL integration experiment rejects unverified SCRAM server-final before reporting authentication success, using vetted existing crypto and a supported library extension path.",
|
||||
"depends_on": [
|
||||
"S00-001",
|
||||
"S00-002"
|
||||
],
|
||||
"requirements": [
|
||||
"ACC-004",
|
||||
"NET-003",
|
||||
"NET-004"
|
||||
],
|
||||
"scope": [
|
||||
"experiments/0002-xmpp-library/sasl-validation/**",
|
||||
"docs/decisions/0002-xmpp-sasl-validation.md"
|
||||
],
|
||||
"inputs": [
|
||||
"docs/WEB_PROFILE.md",
|
||||
"docs/ARCHITECTURE.md",
|
||||
"docs/CONTRACTS.md",
|
||||
"docs/TESTING.md",
|
||||
"roles/protocol.md",
|
||||
"docs/decisions/README.md",
|
||||
"state/blockers/S00-017.md"
|
||||
],
|
||||
"spec_sections": [],
|
||||
"ui_sections": [],
|
||||
"steps": [
|
||||
"Read S00-003 blocker evidence and reproduce the missing/forged/premature success defect with exact candidate versions.",
|
||||
"Evaluate supported SASL feature replacement or a maintained alternative; reuse vetted library crypto, never implement crypto primitives or modify ignored vendor source as the deliverable.",
|
||||
"Build only a fixture-bound SASL validation experiment with exact dependency pins and document how S00-003 can integrate it through supported extension points; do not build production adapters/shared contracts.",
|
||||
"Test valid RFC SCRAM transcript and missing/forged/premature server-final; record actual commands and limitations for independent security review."
|
||||
],
|
||||
"acceptance": [
|
||||
"Missing, forged and premature SCRAM server-final cannot emit auth:success or request authenticated restart in the demonstrated integration.",
|
||||
"A valid primary-spec SCRAM fixture is accepted only after server signature verification, with no handwritten crypto primitives, stub-success or plaintext fallback.",
|
||||
"A supported integration path and pinned dependencies/licenses are documented; original library/WSS/parser/extension task remains separate."
|
||||
],
|
||||
"checks": [
|
||||
"Reproduce original missing/forged/premature success rejection through the integrated SASL handler, not only a standalone mechanism.",
|
||||
"Execute valid RFC SCRAM transcript and negative server-final cases with actual vetted implementation; do not log real credentials."
|
||||
],
|
||||
"context_budget_chars": 48000
|
||||
},
|
||||
{
|
||||
"id": "S00-010",
|
||||
"stage": "S00",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
- Этап: S00
|
||||
- Оператор: protocol
|
||||
- Reviewer: qa
|
||||
- Зависимости: S00-001, S00-002
|
||||
- Зависимости: S00-001, S00-002, S00-017
|
||||
- Требования: ACC-004, NET-003, NET-004
|
||||
|
||||
## Один результат
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
# S00-017: Establish fail-closed SCRAM server-final validation
|
||||
|
||||
- Remediation для: S00-003; root: S00-003; depth: 1
|
||||
|
||||
> Generated from planning/tasks.json; status is in state/tasks.json.
|
||||
|
||||
- Этап: S00
|
||||
- Оператор: protocol
|
||||
- Reviewer: security
|
||||
- Зависимости: S00-001, S00-002
|
||||
- Требования: ACC-004, NET-003, NET-004
|
||||
|
||||
## Один результат
|
||||
|
||||
One isolated, runnable and independently reviewed SASL integration experiment rejects unverified SCRAM server-final before reporting authentication success, using vetted existing crypto and a supported library extension path.
|
||||
|
||||
## Разрешённые пути
|
||||
|
||||
- `experiments/0002-xmpp-library/sasl-validation/**`
|
||||
- `docs/decisions/0002-xmpp-sasl-validation.md`
|
||||
|
||||
Не изменять другие modules, shared contracts или spec snapshots без изменения плана. Stem без расширения разрешает принятые stack-specific extensions и focused test рядом.
|
||||
|
||||
## Прочитать
|
||||
|
||||
- docs/WEB_PROFILE.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/CONTRACTS.md
|
||||
- docs/TESTING.md
|
||||
- roles/protocol.md
|
||||
- docs/decisions/README.md
|
||||
- state/blockers/S00-017.md
|
||||
|
||||
## Шаги
|
||||
|
||||
1. Read S00-003 blocker evidence and reproduce the missing/forged/premature success defect with exact candidate versions.
|
||||
2. Evaluate supported SASL feature replacement or a maintained alternative; reuse vetted library crypto, never implement crypto primitives or modify ignored vendor source as the deliverable.
|
||||
3. Build only a fixture-bound SASL validation experiment with exact dependency pins and document how S00-003 can integrate it through supported extension points; do not build production adapters/shared contracts.
|
||||
4. Test valid RFC SCRAM transcript and missing/forged/premature server-final; record actual commands and limitations for independent security review.
|
||||
|
||||
## Приёмка
|
||||
|
||||
1. Missing, forged and premature SCRAM server-final cannot emit auth:success or request authenticated restart in the demonstrated integration.
|
||||
2. A valid primary-spec SCRAM fixture is accepted only after server signature verification, with no handwritten crypto primitives, stub-success or plaintext fallback.
|
||||
3. A supported integration path and pinned dependencies/licenses are documented; original library/WSS/parser/extension task remains separate.
|
||||
|
||||
## Focused checks
|
||||
|
||||
1. Reproduce original missing/forged/premature success rejection through the integrated SASL handler, not only a standalone mechanism.
|
||||
2. Execute valid RFC SCRAM transcript and negative server-final cases with actual vetted implementation; do not log real credentials.
|
||||
|
||||
## Блокер и завершение запуска
|
||||
|
||||
Для всех ролей scope — только эта задача. При блокере создать issue JSON по state/ISSUE_TEMPLATE.json, вызвать escalate с текущим ID/role/agent, проверить status=blocked и resolution_task, затем немедленно завершить запуск. Не решать blocker и не выбирать следующую задачу самому. Новый агент назначается runner. Правки metadata через CLI — единственное исключение scope.
|
||||
|
||||
## Передача
|
||||
|
||||
Сохранить evidence/handoff; submit → review и завершить запуск. Reviewer также выполняет только эту задачу, включая обязательное escalate при блокере.
|
||||
Reference in new issue
Block a user