@dezkareid/osddt 1.3.0 → 1.3.1
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/AGENTS.md +13 -2
- package/README.md +2 -2
- package/dist/index.js +11 -13
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -138,7 +138,7 @@ All commands available via `npx @dezkareid/osddt <command>`:
|
|
|
138
138
|
| `@dezkareid/osddt setup` | Generate agent command files for Claude and Gemini |
|
|
139
139
|
| `@dezkareid/osddt setup --agents <list> --repo-type <type>` | Non-interactive setup (for CI/scripted environments) |
|
|
140
140
|
| `@dezkareid/osddt meta-info` | Output current branch and date as JSON |
|
|
141
|
-
| `@dezkareid/osddt done <feature-name>`
|
|
141
|
+
| `@dezkareid/osddt done <feature-name> --dir <project-path>` | Move `working-on/<feature>` to `done/<feature>` |
|
|
142
142
|
|
|
143
143
|
#### `osddt setup` options
|
|
144
144
|
|
|
@@ -163,7 +163,7 @@ Templates are generated by `npx @dezkareid/osddt setup` and placed in each agent
|
|
|
163
163
|
| `osddt.plan` | Create a technical implementation plan from a specification |
|
|
164
164
|
| `osddt.tasks` | Generate actionable tasks from an implementation plan |
|
|
165
165
|
| `osddt.implement` | Execute tasks from the task list one by one |
|
|
166
|
-
| `osddt.done` |
|
|
166
|
+
| `osddt.done` | Resolve project path, verify tasks, and move the feature to done |
|
|
167
167
|
|
|
168
168
|
#### Template Workflow
|
|
169
169
|
|
|
@@ -214,6 +214,17 @@ osddt.start ──┘
|
|
|
214
214
|
2. Checks for an existing `working-on/<feature-name>/` folder — offers **Resume** or **Abort** if found, otherwise creates it.
|
|
215
215
|
3. Researches the topic (codebase exploration, external references) and writes `osddt.research.md`.
|
|
216
216
|
|
|
217
|
+
#### osddt.done behaviour
|
|
218
|
+
|
|
219
|
+
- **Input**: A feature name or branch name identifying the feature to close.
|
|
220
|
+
- **Actions performed by the agent**:
|
|
221
|
+
1. Reads `.osddtrc` to resolve the project path (single vs monorepo). For monorepos, asks the user which package.
|
|
222
|
+
2. Derives the feature name from the input (same rules as other commands — last segment of a branch name or kebab-cased slug, subject to the 30-character limit). Must match the folder under `working-on/`.
|
|
223
|
+
3. Confirms all tasks in `osddt.tasks.md` are checked off (`- [x]`).
|
|
224
|
+
4. Runs `npx @dezkareid/osddt done <feature-name> --dir <project-path>` to move the folder.
|
|
225
|
+
|
|
226
|
+
Note: the `osddt done` CLI command does **not** read `.osddtrc` — project path resolution is the agent's responsibility, handled in step 1 above.
|
|
227
|
+
|
|
217
228
|
### Template Data Convention
|
|
218
229
|
|
|
219
230
|
When a template needs dynamic information (e.g. current branch, date, repo config), **do not pass it as a build-time argument**. Instead:
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Other spec driven development tool but for monorepo
|
|
|
8
8
|
| `@dezkareid/osddt setup` | Generate agent command files for Claude and Gemini |
|
|
9
9
|
| `@dezkareid/osddt setup --agents <list> --repo-type <type>` | Non-interactive setup (for CI/scripted environments) |
|
|
10
10
|
| `@dezkareid/osddt meta-info` | Output current branch and date as JSON |
|
|
11
|
-
| `@dezkareid/osddt done <feature-name>`
|
|
11
|
+
| `@dezkareid/osddt done <feature-name> --dir <project-path>` | Move `working-on/<feature>` to `done/<feature>` |
|
|
12
12
|
|
|
13
13
|
### `osddt setup` options
|
|
14
14
|
|
|
@@ -51,7 +51,7 @@ osddt.start ──┘
|
|
|
51
51
|
| `osddt.plan` | Create a technical implementation plan from a specification |
|
|
52
52
|
| `osddt.tasks` | Generate actionable tasks from an implementation plan |
|
|
53
53
|
| `osddt.implement` | Execute tasks from the task list one by one |
|
|
54
|
-
| `osddt.done` |
|
|
54
|
+
| `osddt.done` | Resolve project path, verify tasks, and move the feature to done |
|
|
55
55
|
|
|
56
56
|
Generated files are placed in:
|
|
57
57
|
|
package/dist/index.js
CHANGED
|
@@ -332,17 +332,22 @@ Once all tasks are checked off, run the following command to mark the feature as
|
|
|
332
332
|
description: 'Mark a feature as done and move it from working-on to done',
|
|
333
333
|
body: (args) => `## Instructions
|
|
334
334
|
|
|
335
|
-
1.
|
|
336
|
-
|
|
335
|
+
1. Resolve the project path:
|
|
336
|
+
- Read \`.osddtrc\` from the repository root.
|
|
337
|
+
- If \`repoType\` is \`"single"\`: the project path is the repository root.
|
|
338
|
+
- If \`repoType\` is \`"monorepo"\`: ask the user which package to work on (e.g. \`packages/my-package\`), then use \`<repo-root>/<package>\` as the project path.
|
|
339
|
+
2. Derive the feature name from ${args} using the same rules as the other commands (last segment of a branch name, or a kebab-cased slug — subject to the 30-character limit). This must match the folder name under \`working-on/\`.
|
|
340
|
+
3. Confirm all tasks in \`osddt.tasks.md\` are checked off (\`- [x]\`)
|
|
341
|
+
4. Run the following command to move the feature folder from \`working-on\` to \`done\`:
|
|
337
342
|
|
|
338
343
|
\`\`\`
|
|
339
|
-
npx @dezkareid/osddt done
|
|
344
|
+
npx @dezkareid/osddt done <feature-name> --dir <project-path>
|
|
340
345
|
\`\`\`
|
|
341
346
|
|
|
342
347
|
The command will automatically prefix the destination folder name with today's date in \`YYYY-MM-DD\` format.
|
|
343
348
|
For example, \`working-on/feature-a\` will be moved to \`done/YYYY-MM-DD-feature-a\`.
|
|
344
349
|
|
|
345
|
-
|
|
350
|
+
5. Report the result of the command, including the full destination path
|
|
346
351
|
|
|
347
352
|
## Arguments
|
|
348
353
|
|
|
@@ -531,16 +536,9 @@ function todayPrefix() {
|
|
|
531
536
|
return `${yyyy}-${mm}-${dd}`;
|
|
532
537
|
}
|
|
533
538
|
async function runDone(featureName, cwd) {
|
|
534
|
-
const
|
|
535
|
-
if (!(await fs.pathExists(configPath))) {
|
|
536
|
-
console.error('Error: .osddtrc not found. Run `osddt setup` first.');
|
|
537
|
-
process.exit(1);
|
|
538
|
-
}
|
|
539
|
-
await fs.readJson(configPath);
|
|
540
|
-
const projectPath = cwd;
|
|
541
|
-
const src = path.join(projectPath, 'working-on', featureName);
|
|
539
|
+
const src = path.join(cwd, 'working-on', featureName);
|
|
542
540
|
const destName = `${todayPrefix()}-${featureName}`;
|
|
543
|
-
const dest = path.join(
|
|
541
|
+
const dest = path.join(cwd, 'done', destName);
|
|
544
542
|
if (!(await fs.pathExists(src))) {
|
|
545
543
|
console.error(`Error: working-on/${featureName} does not exist.`);
|
|
546
544
|
process.exit(1);
|