@rashidee/co2 1.3.27 → 1.3.28
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/dist/.co2-dat/app.db +0 -0
- package/dist/.co2-dat/app.db-shm +0 -0
- package/dist/.co2-dat/app.db-wal +0 -0
- package/dist/index.js +55 -9
- package/package.json +2 -2
- package/plugin/.claude-plugin/plugin.json +22 -22
- package/plugin/skills/conductor-defect/SKILL.md +924 -905
- package/static/assets/{abnfDiagram-VRR7QNED-BqqVu83_.js → abnfDiagram-VRR7QNED-DGTYgRnP.js} +1 -1
- package/static/assets/{arc-D9zT1NvB.js → arc-7174fU_E.js} +1 -1
- package/static/assets/{architectureDiagram-ZJ3FMSHR-D-34OZne.js → architectureDiagram-ZJ3FMSHR-iMcDhvoF.js} +1 -1
- package/static/assets/{blockDiagram-677ZJIJ3-DzXrZXuu.js → blockDiagram-677ZJIJ3-kM7BtLQy.js} +1 -1
- package/static/assets/{c4Diagram-LMCZKHZV-CZWILWBU.js → c4Diagram-LMCZKHZV-CIYw9y0n.js} +1 -1
- package/static/assets/channel-CZ6M3VBW.js +1 -0
- package/static/assets/{chunk-2Q5K7J3B-BnyVGcHp.js → chunk-2Q5K7J3B-CwNDUll4.js} +1 -1
- package/static/assets/{chunk-32BRIVSS-D6kWVoTq.js → chunk-32BRIVSS-xUXN4448.js} +1 -1
- package/static/assets/{chunk-5VM5RSS4-BDuQxGsi.js → chunk-5VM5RSS4-DSuopQRa.js} +1 -1
- package/static/assets/{chunk-EX3LRPZG-CzemsC9C.js → chunk-EX3LRPZG-DaP1AUXn.js} +1 -1
- package/static/assets/{chunk-JWPE2WC7-D9BTDnXt.js → chunk-JWPE2WC7-BbcXokVM.js} +1 -1
- package/static/assets/{chunk-MOJQB5TN-DMVlpoSf.js → chunk-MOJQB5TN-BEvtZ0cJ.js} +1 -1
- package/static/assets/{chunk-RYQCIY6F-Cr59tI34.js → chunk-RYQCIY6F-Cf9iaXLG.js} +1 -1
- package/static/assets/{chunk-V7JOEXUC-CItFH4TC.js → chunk-V7JOEXUC-VoptRUQS.js} +1 -1
- package/static/assets/{chunk-VR4S4FIN-D-5bD2Rp.js → chunk-VR4S4FIN-D8MhSl2b.js} +1 -1
- package/static/assets/{chunk-XXDRQBXY-BYTedp-b.js → chunk-XXDRQBXY-ChGrQH2-.js} +1 -1
- package/static/assets/classDiagram-OUVF2IWQ-BNo52yZj.js +1 -0
- package/static/assets/classDiagram-v2-EOCWNBFH-BNo52yZj.js +1 -0
- package/static/assets/{cose-bilkent-JH36ORCC-ph9z6Rag.js → cose-bilkent-JH36ORCC-_7_J1ueO.js} +1 -1
- package/static/assets/{cynefin-VYW2F7L2-DNym54iM.js → cynefin-VYW2F7L2-D7ojj48a.js} +1 -1
- package/static/assets/{cynefinDiagram-TSTJHNR4-BFhXROr4.js → cynefinDiagram-TSTJHNR4-CzZCuws6.js} +1 -1
- package/static/assets/{dagre-VKFMJZFB-C8Bvbfep.js → dagre-VKFMJZFB-DrShlPqK.js} +1 -1
- package/static/assets/{diagram-FQU43EPY-dou1k9fZ.js → diagram-FQU43EPY-Ba6vyx0R.js} +1 -1
- package/static/assets/{diagram-G47NLZAW-DTVkGSut.js → diagram-G47NLZAW-g1iqjkWC.js} +1 -1
- package/static/assets/{diagram-NH7WQ7WH-CLF_alfd.js → diagram-NH7WQ7WH-Yn0iGo61.js} +1 -1
- package/static/assets/{diagram-OA4YK3LP-CVQqfvRy.js → diagram-OA4YK3LP-BqNMfzEH.js} +1 -1
- package/static/assets/{diagram-WEI45ONY-X6ugzDOD.js → diagram-WEI45ONY-Jv0HskWN.js} +1 -1
- package/static/assets/{ebnfDiagram-CCIWWBDH-PgskU8v_.js → ebnfDiagram-CCIWWBDH-EVPmY5ND.js} +1 -1
- package/static/assets/{erDiagram-Q63AITRT-CBW5aC2C.js → erDiagram-Q63AITRT-BrFEQzOf.js} +1 -1
- package/static/assets/{flowDiagram-23GEKE2U-BbyDOz5x.js → flowDiagram-23GEKE2U-CKQmfCK8.js} +1 -1
- package/static/assets/{ganttDiagram-NO4QXBWP-CceMROcR.js → ganttDiagram-NO4QXBWP-DOQ3sYfu.js} +1 -1
- package/static/assets/{gitGraphDiagram-IHSO6WYX-t2R0tkUO.js → gitGraphDiagram-IHSO6WYX-DamxyOBX.js} +1 -1
- package/static/assets/{index-BM5AGe_l.css → index-BRho3Z-u.css} +1 -1
- package/static/assets/index-DKK3AwQd.js +496 -0
- package/static/assets/{infoDiagram-FWYZ7A6U-Du1gMFcI.js → infoDiagram-FWYZ7A6U-BvfLUhKQ.js} +1 -1
- package/static/assets/{ishikawaDiagram-FXEZZL3T-VAYbdalo.js → ishikawaDiagram-FXEZZL3T-Bjcn3YwT.js} +1 -1
- package/static/assets/{journeyDiagram-5HDEW3XC-DkLYEpM2.js → journeyDiagram-5HDEW3XC-C7zgXG_P.js} +1 -1
- package/static/assets/{kanban-definition-HUTT4EX6-BCzd09tX.js → kanban-definition-HUTT4EX6-DkQNMRHb.js} +1 -1
- package/static/assets/{linear-Dm0uNoIF.js → linear-DUJurxs_.js} +1 -1
- package/static/assets/{mindmap-definition-LN4V7U3C-D69_xTUO.js → mindmap-definition-LN4V7U3C-Ca8Rx7ow.js} +1 -1
- package/static/assets/{pegDiagram-2B236MQR-D6t8-mr5.js → pegDiagram-2B236MQR-DM2f6zFq.js} +1 -1
- package/static/assets/{pieDiagram-ENE6RG2P-CRhMSL7L.js → pieDiagram-ENE6RG2P-DZQJ9aJe.js} +1 -1
- package/static/assets/{quadrantDiagram-ABIIQ3AL-DLSgxv-x.js → quadrantDiagram-ABIIQ3AL-dN5N3iXz.js} +1 -1
- package/static/assets/{railroadDiagram-RFXS5EU6-b1SreCxV.js → railroadDiagram-RFXS5EU6-CxVvDIJC.js} +1 -1
- package/static/assets/{requirementDiagram-TGXJPOKE-BV4CNLIo.js → requirementDiagram-TGXJPOKE-D8gSZdJO.js} +1 -1
- package/static/assets/{sankeyDiagram-HTMAVEWB-BiFv1ux8.js → sankeyDiagram-HTMAVEWB-CKqKdt9n.js} +1 -1
- package/static/assets/{sequenceDiagram-DBY2YBRQ-Dx4t2iJL.js → sequenceDiagram-DBY2YBRQ-BUTyVZbB.js} +1 -1
- package/static/assets/{sizeCapture-X5ZJPWSS-CnQy7abz.js → sizeCapture-X5ZJPWSS-BfeUsrrc.js} +1 -1
- package/static/assets/{stateDiagram-2N3HPSRC-Dydsj0oL.js → stateDiagram-2N3HPSRC-CccstMMZ.js} +1 -1
- package/static/assets/stateDiagram-v2-6OUMAXLB-BYik3bHQ.js +1 -0
- package/static/assets/{swimlanes-5IMT3BWC-CxCwYCDy.js → swimlanes-5IMT3BWC-WuBhb5Nm.js} +2 -2
- package/static/assets/swimlanesDiagram-G3AALYLV-pwhS7TR2.js +8 -0
- package/static/assets/{timeline-definition-FHXFAJF6-C_Fi6bNQ.js → timeline-definition-FHXFAJF6-DE4hFXfn.js} +1 -1
- package/static/assets/{vennDiagram-L72KCM5P-CgwC5qPZ.js → vennDiagram-L72KCM5P-lV9K4hR0.js} +1 -1
- package/static/assets/{wardleyDiagram-EHGQE667-s9kPgnSC.js → wardleyDiagram-EHGQE667-Dbkoleze.js} +1 -1
- package/static/assets/{xychartDiagram-FW5EYKEG-DBDMMVMd.js → xychartDiagram-FW5EYKEG-BHYUnMjh.js} +1 -1
- package/static/index.html +2 -2
- package/static/assets/channel-DKYjk4Z0.js +0 -1
- package/static/assets/classDiagram-OUVF2IWQ-BypGwdom.js +0 -1
- package/static/assets/classDiagram-v2-EOCWNBFH-BypGwdom.js +0 -1
- package/static/assets/index-C26387Mq.js +0 -496
- package/static/assets/stateDiagram-v2-6OUMAXLB-C8SPn3Oh.js +0 -1
- package/static/assets/swimlanesDiagram-G3AALYLV-74ote7Bb.js +0 -8
package/dist/.co2-dat/app.db
CHANGED
|
Binary file
|
package/dist/.co2-dat/app.db-shm
CHANGED
|
Binary file
|
package/dist/.co2-dat/app.db-wal
CHANGED
|
Binary file
|
package/dist/index.js
CHANGED
|
@@ -6809,8 +6809,8 @@ var {
|
|
|
6809
6809
|
// package.json
|
|
6810
6810
|
var package_default = {
|
|
6811
6811
|
name: "@rashidee/co2",
|
|
6812
|
-
version: "1.3.
|
|
6813
|
-
description: "Compound Context Studio \xC3\xA2\xE2\
|
|
6812
|
+
version: "1.3.28",
|
|
6813
|
+
description: "Compound Context Studio \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D self-hosted team context authoring for CO2 projects",
|
|
6814
6814
|
type: "module",
|
|
6815
6815
|
license: "MIT",
|
|
6816
6816
|
publishConfig: {
|
|
@@ -12320,8 +12320,10 @@ var bugReports = sqliteTable("bug_reports", {
|
|
|
12320
12320
|
title: text("title").notNull(),
|
|
12321
12321
|
description: text("description"),
|
|
12322
12322
|
// [v1.5.1] severity dropped — the CO2 BUG.md standard carries no severity level.
|
|
12323
|
+
// 'rejected' — withdrawn report, superseded by a new one (type-level only; the column has
|
|
12324
|
+
// no CHECK constraint, so no migration is needed).
|
|
12323
12325
|
status: text("status", {
|
|
12324
|
-
enum: ["open", "in_fix", "fixed", "verified", "closed"]
|
|
12326
|
+
enum: ["open", "in_fix", "fixed", "verified", "closed", "rejected"]
|
|
12325
12327
|
}).notNull().default("open"),
|
|
12326
12328
|
// [v1.8.0] CO2 BUG.md is grouped by module — the module name verbatim from the CLAUDE.md
|
|
12327
12329
|
// registry / imported BUG.md section (migration 0014 ALTER ADD). NULL → `# Common Module`.
|
|
@@ -19567,7 +19569,7 @@ var dashboardProjectSchema = external_exports.object({
|
|
|
19567
19569
|
});
|
|
19568
19570
|
|
|
19569
19571
|
// ../core/src/schemas/defect.ts
|
|
19570
|
-
var bugStatusSchema = external_exports.enum(["open", "in_fix", "fixed", "verified", "closed"]);
|
|
19572
|
+
var bugStatusSchema = external_exports.enum(["open", "in_fix", "fixed", "verified", "closed", "rejected"]);
|
|
19571
19573
|
var EDITABLE_BUG_STATUSES = ["open", "in_fix"];
|
|
19572
19574
|
var REOPENABLE_BUG_STATUSES = ["open", "in_fix", "fixed"];
|
|
19573
19575
|
var reopenBugsSchema = external_exports.object({
|
|
@@ -24579,10 +24581,18 @@ function updateBugReport(db, workspacePath, bugId, input) {
|
|
|
24579
24581
|
syncBugMdToDisk(db, workspacePath, existing.applicationId, bugId);
|
|
24580
24582
|
}
|
|
24581
24583
|
function updateBugStatus(db, workspacePath, bugId, status) {
|
|
24582
|
-
const existing = db.select({
|
|
24584
|
+
const existing = db.select({
|
|
24585
|
+
id: bugReports.id,
|
|
24586
|
+
title: bugReports.title,
|
|
24587
|
+
applicationId: bugReports.applicationId
|
|
24588
|
+
}).from(bugReports).where(and(eq(bugReports.id, bugId), eq(bugReports.isDeleted, 0))).get();
|
|
24583
24589
|
if (!existing) throw svcError11("BUG_NOT_FOUND", 404);
|
|
24584
24590
|
db.update(bugReports).set({ status, updatedAt: (/* @__PURE__ */ new Date()).toISOString() }).where(eq(bugReports.id, bugId)).run();
|
|
24585
|
-
|
|
24591
|
+
if (status === "rejected") {
|
|
24592
|
+
removeBugBulletFromDisk(db, workspacePath, existing.applicationId, existing);
|
|
24593
|
+
} else {
|
|
24594
|
+
syncBugMdToDisk(db, workspacePath, existing.applicationId, bugId);
|
|
24595
|
+
}
|
|
24586
24596
|
}
|
|
24587
24597
|
function moveBugReport(db, workspacePath, bugId, input) {
|
|
24588
24598
|
const existing = db.select().from(bugReports).where(and(eq(bugReports.id, bugId), eq(bugReports.isDeleted, 0))).get();
|
|
@@ -24838,7 +24848,13 @@ function mergeBugIntoBugMd(content, bug, semver, moduleCategory, mode) {
|
|
|
24838
24848
|
return bom + lines.join(eol);
|
|
24839
24849
|
}
|
|
24840
24850
|
function writeBugMdFile(db, workspacePath, app, projectFolderName) {
|
|
24841
|
-
const bugs = db.select().from(bugReports).where(
|
|
24851
|
+
const bugs = db.select().from(bugReports).where(
|
|
24852
|
+
and(
|
|
24853
|
+
eq(bugReports.applicationId, app.id),
|
|
24854
|
+
eq(bugReports.isDeleted, 0),
|
|
24855
|
+
ne(bugReports.status, "rejected")
|
|
24856
|
+
)
|
|
24857
|
+
).all();
|
|
24842
24858
|
const modules = db.select({ name: projectModules.name, category: projectModules.category }).from(projectModules).where(and(eq(projectModules.applicationId, app.id), eq(projectModules.isDeleted, 0))).orderBy(projectModules.displayOrder, projectModules.id).all();
|
|
24843
24859
|
const semverByVersionId = new Map(
|
|
24844
24860
|
db.select({ id: prdVersions.id, semver: prdVersions.semver }).from(prdVersions).where(eq(prdVersions.projectId, app.projectId)).all().map((v) => [v.id, v.semver])
|
|
@@ -24864,7 +24880,8 @@ function syncBugStatusesFromMaster(db, trackingFilePath, applicationId) {
|
|
|
24864
24880
|
let updated = 0;
|
|
24865
24881
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
24866
24882
|
for (const row of rows) {
|
|
24867
|
-
if (row.status === "verified" || row.status === "closed")
|
|
24883
|
+
if (row.status === "verified" || row.status === "closed" || row.status === "rejected")
|
|
24884
|
+
continue;
|
|
24868
24885
|
const entry = entries.get(bugCodeAndTitle(row).code);
|
|
24869
24886
|
if (!entry) continue;
|
|
24870
24887
|
const next = mapBugStatus(entry.status);
|
|
@@ -26683,6 +26700,32 @@ function rescanProjectWorkflows(db, workspacePath, projectId, user, watcherInter
|
|
|
26683
26700
|
const currentVersionId = ensureBaselineVersion(db, projectId, user.id);
|
|
26684
26701
|
const semver = db.select({ semver: prdVersions.semver }).from(prdVersions).where(eq(prdVersions.id, currentVersionId)).get()?.semver ?? null;
|
|
26685
26702
|
const affectedForCurrentVersion = getVersionAffectedAppIds(db, projectId, currentVersionId);
|
|
26703
|
+
const bugAppsForCurrentVersion = getAppsWithBugsInVersion(db, projectId, currentVersionId);
|
|
26704
|
+
let prunedRuns = 0;
|
|
26705
|
+
const bugAppsByVersion = /* @__PURE__ */ new Map([
|
|
26706
|
+
[currentVersionId, bugAppsForCurrentVersion]
|
|
26707
|
+
]);
|
|
26708
|
+
const discoveredQualityRows = db.select({ run: conductorRuns, wfmId: workflowMarkdowns.id, filePath: workflowMarkdowns.filePath }).from(conductorRuns).innerJoin(workflowMarkdowns, eq(workflowMarkdowns.id, conductorRuns.workflowMarkdownId)).where(
|
|
26709
|
+
and(
|
|
26710
|
+
eq(conductorRuns.projectId, projectId),
|
|
26711
|
+
inArray(conductorRuns.conductorType, ["quality", "defect"])
|
|
26712
|
+
)
|
|
26713
|
+
).all();
|
|
26714
|
+
for (const { run, wfmId, filePath } of discoveredQualityRows) {
|
|
26715
|
+
if (!filePath.endsWith("BUG_MASTER.md")) continue;
|
|
26716
|
+
const versionId = run.prdVersionId ?? currentVersionId;
|
|
26717
|
+
let bugApps = bugAppsByVersion.get(versionId);
|
|
26718
|
+
if (!bugApps) {
|
|
26719
|
+
bugApps = getAppsWithBugsInVersion(db, projectId, versionId);
|
|
26720
|
+
bugAppsByVersion.set(versionId, bugApps);
|
|
26721
|
+
}
|
|
26722
|
+
if (bugApps.has(run.applicationId)) continue;
|
|
26723
|
+
stopWatcher(run.id);
|
|
26724
|
+
db.delete(conductorRuns).where(eq(conductorRuns.id, run.id)).run();
|
|
26725
|
+
const remaining = db.select({ id: conductorRuns.id }).from(conductorRuns).where(eq(conductorRuns.workflowMarkdownId, wfmId)).limit(1).get();
|
|
26726
|
+
if (!remaining) db.delete(workflowMarkdowns).where(eq(workflowMarkdowns.id, wfmId)).run();
|
|
26727
|
+
prunedRuns++;
|
|
26728
|
+
}
|
|
26686
26729
|
let discoveredRuns = 0;
|
|
26687
26730
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
26688
26731
|
for (const app of apps) {
|
|
@@ -26693,6 +26736,9 @@ function rescanProjectWorkflows(db, workspacePath, projectId, user, watcherInter
|
|
|
26693
26736
|
if ((conductorType === "prepare" || conductorType === "develop") && affectedForCurrentVersion !== null && !affectedForCurrentVersion.has(app.id)) {
|
|
26694
26737
|
continue;
|
|
26695
26738
|
}
|
|
26739
|
+
if (conductorType === "quality" && !bugAppsForCurrentVersion.has(app.id)) {
|
|
26740
|
+
continue;
|
|
26741
|
+
}
|
|
26696
26742
|
const aliases = conductorType === "quality" ? ["quality", "defect"] : [conductorType];
|
|
26697
26743
|
const known = db.select({
|
|
26698
26744
|
status: conductorRuns.status,
|
|
@@ -26786,7 +26832,7 @@ function rescanProjectWorkflows(db, workspacePath, projectId, user, watcherInter
|
|
|
26786
26832
|
}
|
|
26787
26833
|
}
|
|
26788
26834
|
}
|
|
26789
|
-
return { rescannedRuns, discoveredRuns };
|
|
26835
|
+
return { rescannedRuns, discoveredRuns, prunedRuns };
|
|
26790
26836
|
}
|
|
26791
26837
|
function getWorkflowRun(db, workflowMarkdownId, workspacePath) {
|
|
26792
26838
|
const wfm = db.select().from(workflowMarkdowns).where(eq(workflowMarkdowns.id, workflowMarkdownId)).get();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rashidee/co2",
|
|
3
|
-
"version": "1.3.
|
|
4
|
-
"description": "Compound Context Studio
|
|
3
|
+
"version": "1.3.28",
|
|
4
|
+
"description": "Compound Context Studio  self-hosted team context authoring for CO2 projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"publishConfig": {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "co2-skills",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"description": "Compound Context Skills
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Rashidee M.Rashid"
|
|
7
|
-
},
|
|
8
|
-
"repository": "https://github.com/rashidee/co2-skills",
|
|
9
|
-
"license": "MIT",
|
|
10
|
-
"keywords": [
|
|
11
|
-
"context-engineering",
|
|
12
|
-
"user-stories",
|
|
13
|
-
"code-generation",
|
|
14
|
-
"ddd",
|
|
15
|
-
"spring-boot",
|
|
16
|
-
"laravel",
|
|
17
|
-
"playwright",
|
|
18
|
-
"mockups",
|
|
19
|
-
"specifications",
|
|
20
|
-
"data-modeling"
|
|
21
|
-
]
|
|
22
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "co2-skills",
|
|
3
|
+
"version": "1.8.5",
|
|
4
|
+
"description": "Compound Context Skills — an opinionated context engineering methodology for AI-driven software development. Generates data models, HTML mockups, technical specifications, test specifications, and orchestrates full-stack development from Agile user stories.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Rashidee M.Rashid"
|
|
7
|
+
},
|
|
8
|
+
"repository": "https://github.com/rashidee/co2-skills",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"keywords": [
|
|
11
|
+
"context-engineering",
|
|
12
|
+
"user-stories",
|
|
13
|
+
"code-generation",
|
|
14
|
+
"ddd",
|
|
15
|
+
"spring-boot",
|
|
16
|
+
"laravel",
|
|
17
|
+
"playwright",
|
|
18
|
+
"mockups",
|
|
19
|
+
"specifications",
|
|
20
|
+
"data-modeling"
|
|
21
|
+
]
|
|
22
|
+
}
|