@hasna/skills 0.1.51 → 0.1.52
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/bin/index.js
CHANGED
|
@@ -36860,7 +36860,7 @@ var package_default;
|
|
|
36860
36860
|
var init_package = __esm(() => {
|
|
36861
36861
|
package_default = {
|
|
36862
36862
|
name: "@hasna/skills",
|
|
36863
|
-
version: "0.1.
|
|
36863
|
+
version: "0.1.52",
|
|
36864
36864
|
description: "Skills library for AI coding agents",
|
|
36865
36865
|
type: "module",
|
|
36866
36866
|
bin: {
|
|
@@ -40146,6 +40146,13 @@ var init_project_management = __esm(() => {
|
|
|
40146
40146
|
description: "Facilitate project retrospectives with structured reflection and action items",
|
|
40147
40147
|
category: "Project Management",
|
|
40148
40148
|
tags: ["retrospective", "project", "feedback", "improvement"]
|
|
40149
|
+
},
|
|
40150
|
+
{
|
|
40151
|
+
name: "project-dashboard-reports",
|
|
40152
|
+
displayName: "Project Dashboard Reports",
|
|
40153
|
+
description: "Create, validate, and serve standardized Hasna project dashboard reports",
|
|
40154
|
+
category: "Project Management",
|
|
40155
|
+
tags: ["projects", "dashboard", "reports", "json-render"]
|
|
40149
40156
|
}
|
|
40150
40157
|
];
|
|
40151
40158
|
});
|
package/bin/mcp.js
CHANGED
|
@@ -21819,7 +21819,7 @@ class StdioServerTransport {
|
|
|
21819
21819
|
// package.json
|
|
21820
21820
|
var package_default = {
|
|
21821
21821
|
name: "@hasna/skills",
|
|
21822
|
-
version: "0.1.
|
|
21822
|
+
version: "0.1.52",
|
|
21823
21823
|
description: "Skills library for AI coding agents",
|
|
21824
21824
|
type: "module",
|
|
21825
21825
|
bin: {
|
|
@@ -31143,6 +31143,13 @@ var PROJECT_MANAGEMENT_SKILLS = [
|
|
|
31143
31143
|
description: "Facilitate project retrospectives with structured reflection and action items",
|
|
31144
31144
|
category: "Project Management",
|
|
31145
31145
|
tags: ["retrospective", "project", "feedback", "improvement"]
|
|
31146
|
+
},
|
|
31147
|
+
{
|
|
31148
|
+
name: "project-dashboard-reports",
|
|
31149
|
+
displayName: "Project Dashboard Reports",
|
|
31150
|
+
description: "Create, validate, and serve standardized Hasna project dashboard reports",
|
|
31151
|
+
category: "Project Management",
|
|
31152
|
+
tags: ["projects", "dashboard", "reports", "json-render"]
|
|
31146
31153
|
}
|
|
31147
31154
|
];
|
|
31148
31155
|
|
package/dist/index.js
CHANGED
|
@@ -2346,6 +2346,13 @@ var PROJECT_MANAGEMENT_SKILLS = [
|
|
|
2346
2346
|
description: "Facilitate project retrospectives with structured reflection and action items",
|
|
2347
2347
|
category: "Project Management",
|
|
2348
2348
|
tags: ["retrospective", "project", "feedback", "improvement"]
|
|
2349
|
+
},
|
|
2350
|
+
{
|
|
2351
|
+
name: "project-dashboard-reports",
|
|
2352
|
+
displayName: "Project Dashboard Reports",
|
|
2353
|
+
description: "Create, validate, and serve standardized Hasna project dashboard reports",
|
|
2354
|
+
category: "Project Management",
|
|
2355
|
+
tags: ["projects", "dashboard", "reports", "json-render"]
|
|
2349
2356
|
}
|
|
2350
2357
|
];
|
|
2351
2358
|
|
|
@@ -18833,7 +18840,7 @@ import { dirname as dirname4, relative as relative3 } from "path";
|
|
|
18833
18840
|
// package.json
|
|
18834
18841
|
var package_default = {
|
|
18835
18842
|
name: "@hasna/skills",
|
|
18836
|
-
version: "0.1.
|
|
18843
|
+
version: "0.1.52",
|
|
18837
18844
|
description: "Skills library for AI coding agents",
|
|
18838
18845
|
type: "module",
|
|
18839
18846
|
bin: {
|
package/package.json
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-dashboard-reports
|
|
3
|
+
description: Use when creating, validating, serving, or documenting Hasna agent-managed project dashboards and JSON Render reports with the Projects CLI, provider panels, .hasna/project layout, or #iproj-* project channels.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Dashboard Reports
|
|
7
|
+
|
|
8
|
+
Use the Projects-owned dashboard surface for agent-managed project folders.
|
|
9
|
+
Do not build a one-off app or chat UI unless `open-projects` cannot express the
|
|
10
|
+
surface.
|
|
11
|
+
|
|
12
|
+
## Canonical Layout
|
|
13
|
+
|
|
14
|
+
- Project folder: `Workspace/<division>/project/<project-slug>`
|
|
15
|
+
- Dashboard root: `.hasna/project/`
|
|
16
|
+
- Render manifest: `.hasna/project/dashboard/render.json`
|
|
17
|
+
- Latest snapshot: `.hasna/project/dashboard/snapshots/latest.snapshot.json`
|
|
18
|
+
- Conversation channel: CLI name `iproj-<project-slug>`, human display
|
|
19
|
+
`#iproj-<project-slug>`
|
|
20
|
+
|
|
21
|
+
Project folders may contain private documents. Dashboard JSON should use ids,
|
|
22
|
+
counts, statuses, resource refs, evidence refs, and redacted summaries rather
|
|
23
|
+
than raw emails, contract clauses, account numbers, identity documents, or
|
|
24
|
+
credentials.
|
|
25
|
+
|
|
26
|
+
## Viewer Workflow
|
|
27
|
+
|
|
28
|
+
Use the explicit dashboard namespace:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
projects dashboard snapshot <project> --write --json
|
|
32
|
+
projects dashboard render <project> --json
|
|
33
|
+
projects dashboard validate <project> --json
|
|
34
|
+
PROJECTS_DASHBOARD_TOKEN=<token> projects dashboard serve <project> --host 0.0.0.0 --port <port>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`snapshot`, `render`, and `validate` are read-only unless `--write` is passed.
|
|
38
|
+
For non-loopback serving, use `--token`, `PROJECTS_DASHBOARD_TOKEN`, or an
|
|
39
|
+
explicit `--trust-network` choice. Do not put dashboard access tokens in URLs,
|
|
40
|
+
tasks, reports, render specs, or chat messages.
|
|
41
|
+
|
|
42
|
+
## Provider Panels
|
|
43
|
+
|
|
44
|
+
Provider CLIs should emit bounded `hasna.project_panel.v1` JSON:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
todos project-panel --project <project> --json --contract
|
|
48
|
+
files project-panel --project <project> --json --contract
|
|
49
|
+
mailery status project-panel --project <project> --limit 20 --json --contract
|
|
50
|
+
conversations project-panel --project <project> --limit 30 --json --contract
|
|
51
|
+
knowledge project-panel --project <project> --scope project --limit 30 --json --contract
|
|
52
|
+
mementos --json project-panel --project <project> --contract
|
|
53
|
+
reports project-panel --project <project> --json --contract
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Run provider commands from the project cwd when project-local stores matter.
|
|
57
|
+
Mailery remains workspace-scoped until explicit project-email mapping exists.
|
|
58
|
+
Providers should degrade to unavailable/error panels instead of dumping raw
|
|
59
|
+
content.
|
|
60
|
+
|
|
61
|
+
## Agent Workflow
|
|
62
|
+
|
|
63
|
+
- Track work in `todos`; use messages only for coordination.
|
|
64
|
+
- Use durable Codewith goals or goal plans for long-running project work.
|
|
65
|
+
- Route new implementation and verification through fresh task-triggered agents,
|
|
66
|
+
not existing tmux panes.
|
|
67
|
+
- Record evidence as task ids, project ids, commit ids, local artifact paths, and
|
|
68
|
+
dashboard URLs.
|
|
69
|
+
- Update durable knowledge with stable architecture or policy decisions, but do
|
|
70
|
+
not store secrets or raw private document text as knowledge.
|
|
71
|
+
|
|
72
|
+
## Done Criteria
|
|
73
|
+
|
|
74
|
+
- `projects dashboard validate <project> --json` passes.
|
|
75
|
+
- Dashboard render is a React Flow/JSON Render canvas from `open-projects`.
|
|
76
|
+
- Provider failures are visible as bounded error/unavailable panels.
|
|
77
|
+
- Sensitive content appears only as redacted summaries and ids.
|
|
78
|
+
- The task has validation evidence and the served dashboard URL when requested.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "project-dashboard-reports",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "Project dashboard and JSON Render reporting guidance for agent-managed Hasna projects",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"project-dashboard-reports": "./src/index.ts"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "bun run src/index.ts",
|
|
12
|
+
"build": "bun build src/index.ts --outdir dist --target node",
|
|
13
|
+
"typecheck": "tsc --noEmit"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@types/bun": "latest",
|
|
18
|
+
"typescript": "^5.7.0"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"src",
|
|
22
|
+
"SKILL.md",
|
|
23
|
+
"tsconfig.json"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
type GuideSection = {
|
|
4
|
+
title: string;
|
|
5
|
+
items: string[];
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const sections: GuideSection[] = [
|
|
9
|
+
{
|
|
10
|
+
title: "layout",
|
|
11
|
+
items: [
|
|
12
|
+
"Keep dashboard assets under .hasna/project/.",
|
|
13
|
+
"Use .hasna/project/dashboard/render.json as the render manifest.",
|
|
14
|
+
"Write snapshots under .hasna/project/dashboard/snapshots/.",
|
|
15
|
+
"Use iproj-<project-slug> for the conversation channel name.",
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
title: "commands",
|
|
20
|
+
items: [
|
|
21
|
+
"projects dashboard snapshot <project> --write --json",
|
|
22
|
+
"projects dashboard render <project> --json",
|
|
23
|
+
"projects dashboard validate <project> --json",
|
|
24
|
+
"PROJECTS_DASHBOARD_TOKEN=<token> projects dashboard serve <project> --host 0.0.0.0 --port <port>",
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title: "provider-panels",
|
|
29
|
+
items: [
|
|
30
|
+
"todos project-panel --project <project> --json --contract",
|
|
31
|
+
"files project-panel --project <project> --json --contract",
|
|
32
|
+
"mailery status project-panel --project <project> --json --contract",
|
|
33
|
+
"conversations project-panel --project <project> --json --contract",
|
|
34
|
+
"knowledge project-panel --project <project> --json --contract",
|
|
35
|
+
"mementos --json project-panel --project <project> --contract",
|
|
36
|
+
"reports project-panel --project <project> --json --contract",
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
function printHelp() {
|
|
42
|
+
console.log(`project-dashboard-reports
|
|
43
|
+
|
|
44
|
+
Prints the Hasna project dashboard reporting checklist.
|
|
45
|
+
|
|
46
|
+
Usage:
|
|
47
|
+
project-dashboard-reports [--json]
|
|
48
|
+
|
|
49
|
+
The full agent-facing guidance lives in SKILL.md.`);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function printText() {
|
|
53
|
+
for (const section of sections) {
|
|
54
|
+
console.log(`${section.title}:`);
|
|
55
|
+
for (const item of section.items) {
|
|
56
|
+
console.log(` - ${item}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (Bun.argv.includes("--help") || Bun.argv.includes("-h")) {
|
|
62
|
+
printHelp();
|
|
63
|
+
} else if (Bun.argv.includes("--json")) {
|
|
64
|
+
console.log(JSON.stringify({ skill: "project-dashboard-reports", sections }, null, 2));
|
|
65
|
+
} else {
|
|
66
|
+
printText();
|
|
67
|
+
}
|