@schalkneethling/calavera-skill-project-goal 0.2.0-next.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Schalk Neethling
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://calavera.schalkneethling.com/schemas/calavera-artifact.schema.json",
3
+ "schemaVersion": 1,
4
+ "id": "skill-project-goal",
5
+ "type": "skill",
6
+ "displayName": "Project goal",
7
+ "payload": "payload/project-goal",
8
+ "compatibility": {
9
+ "calavera": ">=2.2.0 <3"
10
+ }
11
+ }
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@schalkneethling/calavera-skill-project-goal",
3
+ "version": "0.2.0-next.2",
4
+ "description": "Project goal artifact for Calavera.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+ssh://git@github.com/schalkneethling/create-project-calavera.git",
9
+ "directory": "packages/artifacts/skill-project-goal"
10
+ },
11
+ "files": [
12
+ "calavera-artifact.json",
13
+ "payload"
14
+ ],
15
+ "type": "module",
16
+ "exports": {
17
+ ".": "./calavera-artifact.json",
18
+ "./package.json": "./package.json"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public",
22
+ "provenance": true
23
+ }
24
+ }
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: project-goal
3
+ description: Inspect a project, ask targeted user questions, and write a root GOAL.md that clearly defines the project's goals, intended audience, success criteria, constraints, and explicit non-goals. Use when asked to create, draft, update, clarify, document, or recover a project's goal, north star, mission, scope, or GOAL.md from an existing repository.
4
+ ---
5
+
6
+ # Project Goal
7
+
8
+ Use this skill to create a clear `GOAL.md` in the project root. The file should help future agents and maintainers understand what the project is trying to accomplish and what it deliberately is not trying to be.
9
+
10
+ ## Workflow
11
+
12
+ 1. Determine the project root. Prefer the git repository root. If there is no git repository, use the current working directory unless the user named a different root.
13
+ 2. Inspect the project before asking questions:
14
+ - Read existing project-level docs such as `README.md`, `GOAL.md`, `CONTRIBUTING.md`, docs indexes, package manifests, config files, and examples.
15
+ - Inspect source layout, tests, CLI or app entry points, public APIs, bundled assets, and install or build scripts.
16
+ - Review issue, roadmap, changelog, or planning files when present.
17
+ 3. Form a concise working theory of:
18
+ - The project purpose.
19
+ - Primary users or consumers, limited to the audiences supported by project evidence or user confirmation.
20
+ - Core capabilities.
21
+ - Success signals.
22
+ - Constraints or principles.
23
+ - Explicit non-goals.
24
+ - Unknowns or contradictions.
25
+ 4. Ask the user only the questions that materially affect the final `GOAL.md`.
26
+ - Use the available Ask User tool when one exists. If no Ask User tool is available, ask directly in chat.
27
+ - Ask one question at a time by default.
28
+ - Set a sensible upper limit before asking follow-ups, usually no more than 3-5 total questions unless the project evidence is genuinely contradictory.
29
+ - Prefer confirmation questions when the answer can be inferred: "I infer X from Y; should GOAL.md state that?"
30
+ - Ask open questions only for real gaps, conflicts, or values that cannot be discovered from the repository.
31
+ - Stop asking once the document can be accurate enough. Do not turn the process into an interview.
32
+ 5. Write or update `<project-root>/GOAL.md`.
33
+ - If `GOAL.md` already exists, preserve accurate useful content and revise it in place.
34
+ - If discovered evidence conflicts with user answers, treat the user as authoritative but mention the conflict in the final response.
35
+ - If the user cannot answer a question, write the best-supported goal and mark unresolved uncertainty in the document.
36
+ 6. Report the file path written and summarize the most important assumptions or unresolved items.
37
+
38
+ ## GOAL.md Content
39
+
40
+ Use Markdown features that make the project intent easy to scan. A good default structure is:
41
+
42
+ ```markdown
43
+ # Project Goal
44
+
45
+ ## North Star
46
+
47
+ ## Who This Is For
48
+
49
+ ## Core Goals
50
+
51
+ ## Success Looks Like
52
+
53
+ ## Non-Goals
54
+
55
+ ## Principles and Constraints
56
+
57
+ ## Current Focus
58
+
59
+ ## Open Questions
60
+ ```
61
+
62
+ Adapt the headings to the project. Keep the file practical rather than ceremonial.
63
+
64
+ `GOAL.md` must include:
65
+
66
+ - A short north-star statement.
67
+ - The intended audience or users. If there is only one clear audience, name that single group instead of inventing additional end users or use cases.
68
+ - The concrete outcomes the project exists to create.
69
+ - A prioritized or grouped list of core goals.
70
+ - A `Non-Goals` section that clearly states what the project is not, will not optimize for, or should avoid becoming.
71
+ - Success criteria or observable signs of progress.
72
+ - Any important constraints, tradeoffs, principles, or scope boundaries.
73
+ - Open questions only when they genuinely remain unresolved after discovery and user input.
74
+
75
+ ## Discovery Guidance
76
+
77
+ Look for evidence in:
78
+
79
+ - Project name, README, package metadata, CLI help text, app copy, examples, and tests.
80
+ - Dependency choices, framework configuration, deployment files, and build scripts.
81
+ - Directory names such as `src/`, `docs/`, `examples/`, `packages/`, `apps/`, `hooks/`, `skills/`, or `templates/`.
82
+ - Existing planning artifacts, comments, release notes, or issue templates.
83
+
84
+ Avoid overfitting to implementation details. The goal should describe why the project exists and what outcomes matter, not merely list files or current implementation tasks.
85
+
86
+ ## Writing Standards
87
+
88
+ - Be specific, plainspoken, and falsifiable where possible.
89
+ - Separate facts discovered from the repo from assumptions confirmed by the user.
90
+ - Do not make up audiences, personas, or use cases to make the project seem broader. Specific and narrow is better than blurry.
91
+ - Prefer durable project intent over short-lived task lists.
92
+ - Make non-goals explicit enough to guide prioritization and issue triage.
93
+ - Keep the document concise enough to be read before working on the project.
94
+ - Do not include private chain-of-thought, exhaustive discovery notes, or a transcript of user questions.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Project Goal"
3
+ short_description: "Draft a project GOAL.md from discovery."
4
+ default_prompt: "Use $project-goal to inspect this repository and write a clear GOAL.md."