@zaip-ai/cli 1.3.1 → 1.3.2
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.
- package/README.md +3 -2
- package/dist/services/runtime-template.test.js +8 -8
- package/package.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +16 -16
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-BgVgrfhQ.js → DashboardHelpDialog-BXy6nti1.js} +28 -0
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-DLn-Mz2M.js → TraceabilityWorkspace-CTH2wDs5.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-CZQlsLV9.js → index-CuMcoUni.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +84 -84
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +64 -64
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +87 -87
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts +70 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts +74 -7
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +1 -1
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +15 -0
- package/templates/template-manifest.json +32 -32
package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
attachOperationsWorkListDevelopers,
|
|
5
5
|
operationsWorkListPayloadPage,
|
|
6
6
|
operationsWorkListSql,
|
|
7
|
+
operationsWorkListSqlPage,
|
|
7
8
|
} from "./sqlite-operations-work-list.js";
|
|
8
9
|
|
|
9
10
|
function page(input: Parameters<typeof operationsWorkListSql>[0]) {
|
|
@@ -178,6 +179,75 @@ describe("operations work list SQL", () => {
|
|
|
178
179
|
).toHaveLength(5);
|
|
179
180
|
});
|
|
180
181
|
|
|
182
|
+
it("uses the physical projection for export offsets when no views are available", () => {
|
|
183
|
+
const database = new DatabaseSync(":memory:");
|
|
184
|
+
database.exec(`
|
|
185
|
+
CREATE TABLE operations_work_projection (
|
|
186
|
+
entity_kind TEXT, id TEXT, title TEXT, risk TEXT, occurred_at TEXT, occurred_day_sp TEXT,
|
|
187
|
+
stage TEXT, spec_id TEXT, origin TEXT, kind TEXT
|
|
188
|
+
);
|
|
189
|
+
`);
|
|
190
|
+
const insert = database.prepare(`
|
|
191
|
+
INSERT INTO operations_work_projection VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
192
|
+
`);
|
|
193
|
+
for (let index = 0; index < 205; index += 1) {
|
|
194
|
+
insert.run(
|
|
195
|
+
"task",
|
|
196
|
+
`TASK-${String(index).padStart(3, "0")}`,
|
|
197
|
+
index === 4 ? "Needle task" : "Projected task",
|
|
198
|
+
index === 3 ? "lite" : "standard",
|
|
199
|
+
`2026-08-31T00:00:${String(index).padStart(3, "0")}Z`,
|
|
200
|
+
"2026-08-31",
|
|
201
|
+
index === 2 ? "executing" : "ready",
|
|
202
|
+
index % 2 === 0 ? "SPEC-1" : null,
|
|
203
|
+
index === 0 ? "prd" : null,
|
|
204
|
+
index % 2 === 0 ? "task" : "standalone-task",
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
const first = operationsWorkListSqlPage(database, { limit: 100, offset: 0 });
|
|
208
|
+
const second = operationsWorkListSqlPage(database, { limit: 100, offset: 100 });
|
|
209
|
+
const final = operationsWorkListSqlPage(database, { limit: 100, offset: 200 });
|
|
210
|
+
expect(first).toMatchObject({ total_count: 205, has_more: true, rows: expect.any(Array) });
|
|
211
|
+
expect(first.rows).toHaveLength(100);
|
|
212
|
+
expect(first.rows[0]).toMatchObject({ id: "TASK-204" });
|
|
213
|
+
expect(second).toMatchObject({ total_count: 205, has_more: true });
|
|
214
|
+
expect(second.rows).toHaveLength(100);
|
|
215
|
+
expect(final).toMatchObject({ total_count: 205, has_more: false });
|
|
216
|
+
expect(final.rows).toHaveLength(5);
|
|
217
|
+
expect(
|
|
218
|
+
operationsWorkListSqlPage(database, {
|
|
219
|
+
kind: "task",
|
|
220
|
+
origin: "spec",
|
|
221
|
+
status: "ready",
|
|
222
|
+
query: "TASK-004",
|
|
223
|
+
}).rows.map((row) => row.id),
|
|
224
|
+
).toContain("TASK-004");
|
|
225
|
+
expect(
|
|
226
|
+
operationsWorkListSqlPage(database, { kind: "standalone-task", risk: "lite" }).rows,
|
|
227
|
+
).toMatchObject([{ id: "TASK-003" }]);
|
|
228
|
+
expect(operationsWorkListSqlPage(database, { query: "needle" }).rows).toMatchObject([
|
|
229
|
+
{ id: "TASK-004" },
|
|
230
|
+
]);
|
|
231
|
+
database.close();
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
it("keeps the legacy view fallback when no physical projection exists", () => {
|
|
235
|
+
const database = new DatabaseSync(":memory:");
|
|
236
|
+
database.exec(`
|
|
237
|
+
CREATE TABLE canonical_work_items (entity_kind TEXT, id TEXT, stage TEXT, risk TEXT, spec_id TEXT, change_id TEXT, occurred_day_sp TEXT);
|
|
238
|
+
CREATE TABLE canonical_changes (id TEXT, source_type TEXT, task_ids_json TEXT, created_at TEXT);
|
|
239
|
+
CREATE TABLE operations_work_kanban (entity_kind TEXT, id TEXT, title TEXT, status TEXT, risk TEXT, occurred_at TEXT, occurred_day_sp TEXT);
|
|
240
|
+
INSERT INTO canonical_work_items VALUES ('task', 'TASK-LEGACY', 'ready', 'standard', NULL, NULL, '2026-08-01');
|
|
241
|
+
INSERT INTO operations_work_kanban VALUES ('task', 'TASK-LEGACY', 'Legacy task', 'active', 'standard', '2026-08-01T00:00:00Z', '2026-08-01');
|
|
242
|
+
`);
|
|
243
|
+
expect(operationsWorkListSqlPage(database, { limit: 10 })).toMatchObject({
|
|
244
|
+
total_count: 1,
|
|
245
|
+
has_more: false,
|
|
246
|
+
rows: [{ id: "TASK-LEGACY", kind: "standalone-task" }],
|
|
247
|
+
});
|
|
248
|
+
database.close();
|
|
249
|
+
});
|
|
250
|
+
|
|
181
251
|
it("projects each page's factual developer identities in one period-bounded set", () => {
|
|
182
252
|
const database = new DatabaseSync(":memory:");
|
|
183
253
|
database.exec(`
|
package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts
CHANGED
|
@@ -178,13 +178,85 @@ export function operationsWorkListSql(input: OperationsWorkListQuery) {
|
|
|
178
178
|
};
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
+
function hasOperationsWorkProjection(database: DatabaseSync): boolean {
|
|
182
|
+
return (
|
|
183
|
+
database
|
|
184
|
+
.prepare(
|
|
185
|
+
"SELECT 1 FROM sqlite_master WHERE type='table' AND name='operations_work_projection' LIMIT 1",
|
|
186
|
+
)
|
|
187
|
+
.get() !== undefined
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
function operationsWorkListProjectionSql(input: OperationsWorkListQuery) {
|
|
192
|
+
const clauses: string[] = [];
|
|
193
|
+
const values: Array<string | number> = [];
|
|
194
|
+
if (input.from) {
|
|
195
|
+
clauses.push("occurred_day_sp >= ?");
|
|
196
|
+
values.push(input.from.slice(0, 10));
|
|
197
|
+
}
|
|
198
|
+
if (input.to) {
|
|
199
|
+
clauses.push("occurred_day_sp <= ?");
|
|
200
|
+
values.push(input.to.slice(0, 10));
|
|
201
|
+
}
|
|
202
|
+
if (input.query) {
|
|
203
|
+
clauses.push("(id LIKE ? OR title LIKE ?)");
|
|
204
|
+
values.push(`%${input.query}%`, `%${input.query}%`);
|
|
205
|
+
}
|
|
206
|
+
if (input.status) {
|
|
207
|
+
clauses.push("stage = ?");
|
|
208
|
+
values.push(input.status);
|
|
209
|
+
}
|
|
210
|
+
if (input.risk) {
|
|
211
|
+
clauses.push("risk = ?");
|
|
212
|
+
values.push(input.risk);
|
|
213
|
+
}
|
|
214
|
+
if (input.origin) {
|
|
215
|
+
clauses.push("entity_kind = 'task'");
|
|
216
|
+
const fallback =
|
|
217
|
+
input.origin === "spec"
|
|
218
|
+
? "spec_id IS NOT NULL"
|
|
219
|
+
: input.origin === "task"
|
|
220
|
+
? "spec_id IS NULL"
|
|
221
|
+
: "0";
|
|
222
|
+
clauses.push(`(origin = ? OR (origin IS NULL AND ${fallback}))`);
|
|
223
|
+
values.push(input.origin);
|
|
224
|
+
}
|
|
225
|
+
if (input.kind === "prd" || input.kind === "spec") {
|
|
226
|
+
clauses.push("entity_kind = ?");
|
|
227
|
+
values.push(input.kind);
|
|
228
|
+
} else if (input.kind === "all-tasks") {
|
|
229
|
+
clauses.push("entity_kind = 'task'");
|
|
230
|
+
} else if (input.kind === "task" || input.kind === "standalone-task") {
|
|
231
|
+
clauses.push("kind = ?");
|
|
232
|
+
values.push(input.kind);
|
|
233
|
+
}
|
|
234
|
+
return { where: clauses.length === 0 ? "" : ` WHERE ${clauses.join(" AND ")}`, values };
|
|
235
|
+
}
|
|
236
|
+
|
|
181
237
|
export function operationsWorkListSqlPage(
|
|
182
238
|
database: DatabaseSync,
|
|
183
239
|
input: OperationsWorkListQuery & { offset?: number; limit?: number },
|
|
184
240
|
): OperationsWorkListPayloadPage {
|
|
185
|
-
const page = operationsWorkListSql(input);
|
|
186
241
|
const limit = Math.min(200, Math.max(1, input.limit ?? 50));
|
|
187
242
|
const offset = Math.max(0, input.offset ?? 0);
|
|
243
|
+
if (hasOperationsWorkProjection(database)) {
|
|
244
|
+
const page = operationsWorkListProjectionSql(input);
|
|
245
|
+
const total_count = Number(
|
|
246
|
+
(
|
|
247
|
+
database
|
|
248
|
+
.prepare(`SELECT COUNT(*) AS count FROM operations_work_projection${page.where}`)
|
|
249
|
+
.get(...page.values) as { count: number }
|
|
250
|
+
).count,
|
|
251
|
+
);
|
|
252
|
+
const rows = database
|
|
253
|
+
.prepare(
|
|
254
|
+
`SELECT * FROM operations_work_projection${page.where} ORDER BY occurred_at DESC, id DESC LIMIT ? OFFSET ?`,
|
|
255
|
+
)
|
|
256
|
+
.all(...page.values, limit, offset) as WorkRow[];
|
|
257
|
+
return { offset, limit, total_count, has_more: offset + rows.length < total_count, rows };
|
|
258
|
+
}
|
|
259
|
+
const page = operationsWorkListSql(input);
|
|
188
260
|
const total_count = Number(
|
|
189
261
|
(
|
|
190
262
|
database
|
|
@@ -275,12 +347,7 @@ export function attachOperationsWorkListDevelopers(
|
|
|
275
347
|
|
|
276
348
|
/** One physical expansion used only while materializing first-fold payloads. */
|
|
277
349
|
export function operationsWorkListSqlRows(database: DatabaseSync): WorkRow[] {
|
|
278
|
-
|
|
279
|
-
.prepare(
|
|
280
|
-
"SELECT 1 FROM sqlite_master WHERE type='table' AND name='operations_work_projection' LIMIT 1",
|
|
281
|
-
)
|
|
282
|
-
.get();
|
|
283
|
-
if (physical !== undefined)
|
|
350
|
+
if (hasOperationsWorkProjection(database))
|
|
284
351
|
return database
|
|
285
352
|
.prepare("SELECT * FROM operations_work_projection ORDER BY occurred_at DESC, id DESC")
|
|
286
353
|
.all() as WorkRow[];
|
|
@@ -50,6 +50,21 @@ sincronize/audite novamente o template público. Execute gates geradores em
|
|
|
50
50
|
checkout/worktree isolado para preservar trabalho concorrente. Gates locais,
|
|
51
51
|
artefato exato, CI terminal e produção continuam sendo provas distintas.
|
|
52
52
|
|
|
53
|
+
### Falhas de desempenho no dashboard
|
|
54
|
+
|
|
55
|
+
Reproduza a rota, período, filtro, offset e tamanho da página que falharam.
|
|
56
|
+
Separe a primeira consulta sem resultado em cache da navegação já aquecida;
|
|
57
|
+
uma página rápida em cache não comprova o custo de exportar páginas distintas.
|
|
58
|
+
Correlacione o clique com a requisição, a espera pelo servidor, o retorno e o
|
|
59
|
+
fechamento do arquivo. Registre a concorrência do teste e do ambiente.
|
|
60
|
+
|
|
61
|
+
Timeout não autoriza aumentar limites nem remover a matriz de performance.
|
|
62
|
+
Primeiro diferencie requisição ausente, cancelada, bloqueada e consulta lenta.
|
|
63
|
+
Uma correção de consulta deve preservar filtros, ordenação, total, IDs únicos,
|
|
64
|
+
offsets contíguos e exportação até `has_more=false`. Reexecute o cenário que
|
|
65
|
+
falhou e o gate correspondente no candidato corrigido. Se o pacote anterior
|
|
66
|
+
já estiver publicado, distribua a correção em nova versão imutável.
|
|
67
|
+
|
|
53
68
|
## Histórico e nova qualificação em 30/08/2026
|
|
54
69
|
|
|
55
70
|
Snapshot bloqueado em 2026-08-30 para o candidato
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"templateVersion": "1.3.
|
|
4
|
-
"minimumCliVersion": "1.3.
|
|
3
|
+
"templateVersion": "1.3.2",
|
|
4
|
+
"minimumCliVersion": "1.3.2",
|
|
5
5
|
"source": "portable projection of ZAIP Rules, Requirements, skills, design catalog and dashboard runtime",
|
|
6
|
-
"sourceFilesSha256": "
|
|
6
|
+
"sourceFilesSha256": "581cdcec953907463ed6933cfe5171ba9046575413e3a2f80ed9cdb5a2823662",
|
|
7
7
|
"files": [
|
|
8
8
|
{
|
|
9
9
|
"path": ".agents/architecture/software-architecture.md",
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
170
|
"path": ".agents/dashboard/.zaip-managed.json",
|
|
171
|
-
"sha256": "
|
|
171
|
+
"sha256": "83a9062b8a3429db422a9473bb54dacd7ea7b7839d2b2fbd8f5c4ae1d6d101ca"
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
174
|
"path": ".agents/dashboard/apps/frontend/dist/assets/cost-monitor-DKwP1stV.js",
|
|
@@ -187,8 +187,8 @@
|
|
|
187
187
|
"sha256": "8cc193dc078b845250b86e2eb5b406bf3a521c2582099f8a60e7b111b417d7e4"
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
|
-
"path": ".agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-
|
|
191
|
-
"sha256": "
|
|
190
|
+
"path": ".agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-BXy6nti1.js",
|
|
191
|
+
"sha256": "d9c312a6e562000475fc29059da59af99470fffca73df1fb44be5b2deaf56298"
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"path": ".agents/dashboard/apps/frontend/dist/assets/DashboardHelpDialog-Je5nK-Et.css",
|
|
@@ -203,8 +203,8 @@
|
|
|
203
203
|
"sha256": "2d1180a1ac0828c6e68a4e1d5e090e92aa32a9f999b86d7153d0262c83d62a9f"
|
|
204
204
|
},
|
|
205
205
|
{
|
|
206
|
-
"path": ".agents/dashboard/apps/frontend/dist/assets/index-
|
|
207
|
-
"sha256": "
|
|
206
|
+
"path": ".agents/dashboard/apps/frontend/dist/assets/index-CuMcoUni.js",
|
|
207
|
+
"sha256": "d3c72b2f609e92cc8ea86e26f022099e7814dd4be1f7be97a7a140ef259cc822"
|
|
208
208
|
},
|
|
209
209
|
{
|
|
210
210
|
"path": ".agents/dashboard/apps/frontend/dist/assets/logo_novo_azul-BBx5pA2B.png",
|
|
@@ -240,8 +240,8 @@
|
|
|
240
240
|
"sha256": "3134c9eb5bbbdb1e48e1001fe6c4b7fd32840db04d9782587f2c4f6eacc21a64"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
|
-
"path": ".agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-
|
|
244
|
-
"sha256": "
|
|
243
|
+
"path": ".agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-CTH2wDs5.js",
|
|
244
|
+
"sha256": "bc0e4e8ef20625ebb5869ac1f88ee7e15c8f49c8fca49ba2b70aa66ccac188ff"
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
"path": ".agents/dashboard/apps/frontend/dist/assets/TraceabilityWorkspace-DvvavDLY.css",
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
},
|
|
255
255
|
{
|
|
256
256
|
"path": ".agents/dashboard/apps/frontend/dist/index.html",
|
|
257
|
-
"sha256": "
|
|
257
|
+
"sha256": "d54d70e2ac30944a918b108d90c6311076da7a2415cdb4bb46c7436456a4ce07"
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
260
|
"path": ".agents/dashboard/apps/frontend/dist/logo_novo_azul.png",
|
|
@@ -1918,12 +1918,12 @@
|
|
|
1918
1918
|
},
|
|
1919
1919
|
{
|
|
1920
1920
|
"path": ".agents/dashboard/packages/local-runtime/dist/server.cjs",
|
|
1921
|
-
"sha256": "
|
|
1921
|
+
"sha256": "afa0ffec725ba10a8175525805d84077019dc916a9dfcf3b98b87b7d9db18b20",
|
|
1922
1922
|
"binary": true
|
|
1923
1923
|
},
|
|
1924
1924
|
{
|
|
1925
1925
|
"path": ".agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs",
|
|
1926
|
-
"sha256": "
|
|
1926
|
+
"sha256": "c1f5982265d2267d039e0515b0010fd15fc5681233eb529e71fffa95156015aa",
|
|
1927
1927
|
"binary": true
|
|
1928
1928
|
},
|
|
1929
1929
|
{
|
|
@@ -1960,7 +1960,7 @@
|
|
|
1960
1960
|
},
|
|
1961
1961
|
{
|
|
1962
1962
|
"path": ".agents/dashboard/packages/local-runtime/server.mjs",
|
|
1963
|
-
"sha256": "
|
|
1963
|
+
"sha256": "1572db115912d9738dcb82b7083fffedede0eaa4b63334ed73c974e3dd7fdb80"
|
|
1964
1964
|
},
|
|
1965
1965
|
{
|
|
1966
1966
|
"path": ".agents/dashboard/packages/local-runtime/src/agent-adapter-sync.ts",
|
|
@@ -2228,12 +2228,12 @@
|
|
|
2228
2228
|
},
|
|
2229
2229
|
{
|
|
2230
2230
|
"path": ".agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.test.ts",
|
|
2231
|
-
"sha256": "
|
|
2231
|
+
"sha256": "dedafac62284c63d7afffc1936bd2d7db4c37963d3e5f247a68ff6284e89308e",
|
|
2232
2232
|
"binary": true
|
|
2233
2233
|
},
|
|
2234
2234
|
{
|
|
2235
2235
|
"path": ".agents/dashboard/packages/local-runtime/src/sqlite-operations-work-list.ts",
|
|
2236
|
-
"sha256": "
|
|
2236
|
+
"sha256": "c390ecebfc2838427ea5a02cb491e1eb020a3683d9c32bbaeffb21f12d7a1207",
|
|
2237
2237
|
"binary": true
|
|
2238
2238
|
},
|
|
2239
2239
|
{
|
|
@@ -2912,63 +2912,63 @@
|
|
|
2912
2912
|
},
|
|
2913
2913
|
{
|
|
2914
2914
|
"path": ".agents/requirements/autonomous-assurance.md",
|
|
2915
|
-
"sha256": "
|
|
2915
|
+
"sha256": "407316c801ccccaee8b96bacb09d92217361768a1204b9deb6716ad9dc684953"
|
|
2916
2916
|
},
|
|
2917
2917
|
{
|
|
2918
2918
|
"path": ".agents/requirements/comparative-audit.md",
|
|
2919
|
-
"sha256": "
|
|
2919
|
+
"sha256": "a0be080f4c0927297618a8e2023282404bb7a2a7875d871926419ced224b4577"
|
|
2920
2920
|
},
|
|
2921
2921
|
{
|
|
2922
2922
|
"path": ".agents/requirements/context-engine.md",
|
|
2923
|
-
"sha256": "
|
|
2923
|
+
"sha256": "6270f75c418c910115ad06bb7a7a6db9f92188c0c3b6ae17e1984849b9bb6c81"
|
|
2924
2924
|
},
|
|
2925
2925
|
{
|
|
2926
2926
|
"path": ".agents/requirements/cost-observability.md",
|
|
2927
|
-
"sha256": "
|
|
2927
|
+
"sha256": "8ae7b5c5b36c6b229dc0c7ed798c727fd66bcf23816b13bd4b2cad10de0d896e"
|
|
2928
2928
|
},
|
|
2929
2929
|
{
|
|
2930
2930
|
"path": ".agents/requirements/dashboard-launch.md",
|
|
2931
|
-
"sha256": "
|
|
2931
|
+
"sha256": "6ec4b8a8e99704fd8c660cd635d2ff1e75317adb2d21e6d22fd5ecd5ade22cb2"
|
|
2932
2932
|
},
|
|
2933
2933
|
{
|
|
2934
2934
|
"path": ".agents/requirements/data-export.md",
|
|
2935
|
-
"sha256": "
|
|
2935
|
+
"sha256": "dd156dfb0be04c402d02ff9ff486d0d3d5835932c273eca604369b4b32ac7bdd"
|
|
2936
2936
|
},
|
|
2937
2937
|
{
|
|
2938
2938
|
"path": ".agents/requirements/design-system.md",
|
|
2939
|
-
"sha256": "
|
|
2939
|
+
"sha256": "e5e97ff55b2b21b0a3bb563dbc04f162e481a1cad8c2c0ad7e355a80c9e65edd"
|
|
2940
2940
|
},
|
|
2941
2941
|
{
|
|
2942
2942
|
"path": ".agents/requirements/execution-engine.md",
|
|
2943
|
-
"sha256": "
|
|
2943
|
+
"sha256": "59c13751ba1b84129605b9a85f61c4e6aa3035b21b3d6e0a743af35ef64f8db6"
|
|
2944
2944
|
},
|
|
2945
2945
|
{
|
|
2946
2946
|
"path": ".agents/requirements/kanban-dashboard.md",
|
|
2947
|
-
"sha256": "
|
|
2947
|
+
"sha256": "e5e681e8283ece13d95f0444eadadb2c3439d65d83b36fa5a45856571b5687be"
|
|
2948
2948
|
},
|
|
2949
2949
|
{
|
|
2950
2950
|
"path": ".agents/requirements/model-orchestration.md",
|
|
2951
|
-
"sha256": "
|
|
2951
|
+
"sha256": "d2da115be37908bca3ef03d32f39ffe4c1824f09674960a49640fe6835b1040a"
|
|
2952
2952
|
},
|
|
2953
2953
|
{
|
|
2954
2954
|
"path": ".agents/requirements/public-distribution.md",
|
|
2955
|
-
"sha256": "
|
|
2955
|
+
"sha256": "8232da3c51ebaf552990abe6d5d635fbeaf79fe77bbaf73909d30aeaac5b7938"
|
|
2956
2956
|
},
|
|
2957
2957
|
{
|
|
2958
2958
|
"path": ".agents/requirements/software-architecture.md",
|
|
2959
|
-
"sha256": "
|
|
2959
|
+
"sha256": "4c97bcbf3fc49b60ccb40d7d8600553056f12b2bd828402ca9aec181ad0c1624"
|
|
2960
2960
|
},
|
|
2961
2961
|
{
|
|
2962
2962
|
"path": ".agents/requirements/strategic-improvements.md",
|
|
2963
|
-
"sha256": "
|
|
2963
|
+
"sha256": "98accb08563aaddcf0703f23db333c09917550186e63596964182096265a1f22"
|
|
2964
2964
|
},
|
|
2965
2965
|
{
|
|
2966
2966
|
"path": ".agents/requirements/work-lifecycle.md",
|
|
2967
|
-
"sha256": "
|
|
2967
|
+
"sha256": "4439cad412bb4b72da12f633e3a7c6946fd90b85d6284b16b44b8c5543b579a4"
|
|
2968
2968
|
},
|
|
2969
2969
|
{
|
|
2970
2970
|
"path": ".agents/requirements/zaip-strategic-95.md",
|
|
2971
|
-
"sha256": "
|
|
2971
|
+
"sha256": "5bd7111402e4b347790679a4215490af350d89bdae8ab12d88c4bb1e87c55289"
|
|
2972
2972
|
},
|
|
2973
2973
|
{
|
|
2974
2974
|
"path": ".agents/rules/architecture.md",
|
|
@@ -4348,7 +4348,7 @@
|
|
|
4348
4348
|
},
|
|
4349
4349
|
{
|
|
4350
4350
|
"path": ".agents/zaip-aios/guides/26-qualidade-e-release.md",
|
|
4351
|
-
"sha256": "
|
|
4351
|
+
"sha256": "4caac76e977c70db026b89916eb2a6c65ca194e0ae8b2e5d1900a70208e5d5e9"
|
|
4352
4352
|
},
|
|
4353
4353
|
{
|
|
4354
4354
|
"path": ".agents/zaip-aios/guides/27-telemetria-git-native.md",
|