thoth-agents 0.2.11 → 0.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/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +21 -0
- package/README.md +301 -311
- package/dist/agents/configured-role-prompt.d.ts +9 -0
- package/dist/agents/prompt-sections.d.ts +8 -4
- package/dist/agents/prompt-utils.d.ts +0 -4
- package/dist/{chunk-ASKXWU6E.js → chunk-2MZ5C2RN.js} +1078 -1725
- package/dist/chunk-XO74DXBZ.js +1781 -0
- package/dist/{chunk-6BNAV534.js → chunk-YUCGIJPP.js} +12 -30
- package/dist/cli/claude-code-install.d.ts +24 -26
- package/dist/cli/claude-code-paths.d.ts +0 -28
- package/dist/cli/codex-install.d.ts +2 -2
- package/dist/cli/codex-paths.d.ts +0 -2
- package/dist/cli/index.js +279 -119
- package/dist/cli/install.d.ts +5 -1
- package/dist/cli/model-catalog/cache.d.ts +1 -1
- package/dist/cli/operations/claude-code.d.ts +6 -3
- package/dist/cli/operations/codex.d.ts +2 -1
- package/dist/cli/operations/opencode.d.ts +2 -1
- package/dist/cli/operations/types.d.ts +9 -1
- package/dist/cli/package-root.d.ts +1 -0
- package/dist/cli/providers.d.ts +6 -116
- package/dist/cli/skills.d.ts +19 -32
- package/dist/cli/thoth-mem-install.d.ts +45 -0
- package/dist/cli/tui/components/StatusView.d.ts +12 -1
- package/dist/cli/tui/index.js +256 -142
- package/dist/cli/tui/operations.d.ts +4 -3
- package/dist/cli/types.d.ts +0 -10
- package/dist/config/constants.d.ts +20 -16
- package/dist/config/index.d.ts +0 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/schema.d.ts +2 -38
- package/dist/config/utils.d.ts +1 -2
- package/dist/harness/adapters/codex-surfaces.d.ts +3 -3
- package/dist/harness/core/agent-pack.d.ts +37 -29
- package/dist/harness/core/memory-governance.d.ts +24 -48
- package/dist/harness/core/sdd.d.ts +364 -131
- package/dist/harness/generate-integration-packages.d.ts +20 -0
- package/dist/harness/opencode-init-command.d.ts +11 -0
- package/dist/harness/types.d.ts +14 -1
- package/dist/harness/writers/claude-code-subagent.d.ts +3 -1
- package/dist/hooks/index.d.ts +0 -5
- package/dist/index.js +562 -1314
- package/dist/mcp/index.d.ts +1 -2
- package/package.json +17 -12
- package/plugin/.claude-plugin/.thoth-agents-plugin-assets.json +50 -0
- package/plugin/.claude-plugin/plugin.json +8 -0
- package/plugin/.codex-plugin/.thoth-agents-plugin-assets.json +16 -0
- package/plugin/.codex-plugin/plugin.json +7 -0
- package/plugin/.mcp.json +19 -0
- package/plugin/agents/deep.md +89 -0
- package/plugin/agents/designer.md +89 -0
- package/plugin/agents/explorer.md +90 -0
- package/plugin/agents/librarian.md +90 -0
- package/plugin/agents/oracle.md +92 -0
- package/plugin/agents/orchestrator.md +128 -0
- package/plugin/agents/quick.md +89 -0
- package/plugin/codex.mcp.json +17 -0
- package/plugin/settings.json +3 -0
- package/plugin/skills/thoth-archive/SKILL.md +40 -0
- package/plugin/skills/thoth-archive/scripts/archive.mjs +748 -0
- package/plugin/skills/thoth-constitution/SKILL.md +45 -0
- package/plugin/skills/thoth-constitution/scripts/validate.mjs +167 -0
- package/plugin/skills/thoth-constitution/templates/constitution.md +54 -0
- package/plugin/skills/thoth-init/SKILL.md +30 -0
- package/plugin/skills/thoth-init/scripts/init.mjs +141 -0
- package/plugin/skills/thoth-sdd/SKILL.md +83 -0
- package/plugin/skills/thoth-sdd/references/phases/analyze.md +21 -0
- package/plugin/skills/thoth-sdd/references/phases/checklist.md +20 -0
- package/plugin/skills/thoth-sdd/references/phases/clarify.md +15 -0
- package/plugin/skills/thoth-sdd/references/phases/converge.md +14 -0
- package/plugin/skills/thoth-sdd/references/phases/explore.md +10 -0
- package/plugin/skills/thoth-sdd/references/phases/implement.md +19 -0
- package/plugin/skills/thoth-sdd/references/phases/plan.md +15 -0
- package/plugin/skills/thoth-sdd/references/phases/specify.md +21 -0
- package/plugin/skills/thoth-sdd/references/phases/tasks.md +20 -0
- package/plugin/skills/thoth-sdd/references/phases/verify.md +22 -0
- package/plugin/skills/thoth-sdd/scripts/validate.mjs +1117 -0
- package/plugin/skills/thoth-sdd/templates/archive-report.md +25 -0
- package/plugin/skills/thoth-sdd/templates/checklist.md +27 -0
- package/plugin/skills/thoth-sdd/templates/plan.md +38 -0
- package/plugin/skills/thoth-sdd/templates/spec.md +54 -0
- package/plugin/skills/thoth-sdd/templates/tasks.md +29 -0
- package/plugin/skills/thoth-sdd/templates/verify-report.md +28 -0
- package/skills/README.md +12 -0
- package/skills/thoth-archive/SKILL.md +40 -0
- package/skills/thoth-archive/scripts/archive.mjs +748 -0
- package/skills/thoth-constitution/SKILL.md +45 -0
- package/skills/thoth-constitution/scripts/validate.mjs +167 -0
- package/skills/thoth-constitution/templates/constitution.md +54 -0
- package/skills/thoth-init/SKILL.md +30 -0
- package/skills/thoth-init/scripts/init.mjs +141 -0
- package/skills/thoth-sdd/SKILL.md +83 -0
- package/skills/thoth-sdd/references/phases/analyze.md +21 -0
- package/skills/thoth-sdd/references/phases/checklist.md +20 -0
- package/skills/thoth-sdd/references/phases/clarify.md +15 -0
- package/skills/thoth-sdd/references/phases/converge.md +14 -0
- package/skills/thoth-sdd/references/phases/explore.md +10 -0
- package/skills/thoth-sdd/references/phases/implement.md +19 -0
- package/skills/thoth-sdd/references/phases/plan.md +15 -0
- package/skills/thoth-sdd/references/phases/specify.md +21 -0
- package/skills/thoth-sdd/references/phases/tasks.md +20 -0
- package/skills/thoth-sdd/references/phases/verify.md +22 -0
- package/skills/thoth-sdd/scripts/validate.mjs +1117 -0
- package/skills/thoth-sdd/templates/archive-report.md +25 -0
- package/skills/thoth-sdd/templates/checklist.md +27 -0
- package/skills/thoth-sdd/templates/plan.md +38 -0
- package/skills/thoth-sdd/templates/spec.md +54 -0
- package/skills/thoth-sdd/templates/tasks.md +29 -0
- package/skills/thoth-sdd/templates/verify-report.md +28 -0
- package/thoth-agents.schema.json +0 -39
- package/dist/chunk-OZE7JVGS.js +0 -2344
- package/dist/cli/custom-skills.d.ts +0 -49
- package/dist/cli/skill-manifest.d.ts +0 -32
- package/dist/harness/core/skills.d.ts +0 -211
- package/dist/harness/generate-codex-plugin.d.ts +0 -9
- package/dist/harness/writers/claude-code-skill-layout.d.ts +0 -16
- package/dist/harness/writers/fs-skill-collect.d.ts +0 -7
- package/dist/harness/writers/skill-layout.d.ts +0 -16
- package/dist/hooks/chat-headers.d.ts +0 -16
- package/dist/hooks/phase-reminder/index.d.ts +0 -28
- package/dist/hooks/post-read-nudge/index.d.ts +0 -18
- package/dist/hooks/skill-sync.d.ts +0 -10
- package/dist/hooks/thoth-mem/index.d.ts +0 -46
- package/dist/hooks/thoth-mem/protocol.d.ts +0 -7
- package/dist/mcp/thoth.d.ts +0 -3
- package/dist/sdd/artifact-governance/artifact-loader.d.ts +0 -130
- package/dist/sdd/artifact-governance/index.d.ts +0 -6
- package/dist/sdd/artifact-governance/tasks-validator.d.ts +0 -17
- package/dist/sdd/artifact-governance/types.d.ts +0 -52
- package/dist/thoth/client.d.ts +0 -14
- package/dist/thoth/index.d.ts +0 -2
- package/src/skills/_shared/openspec-convention.md +0 -350
- package/src/skills/_shared/persistence-contract.md +0 -163
- package/src/skills/_shared/thoth-mem-convention.md +0 -123
- package/src/skills/executing-plans/SKILL.md +0 -288
- package/src/skills/plan-reviewer/SKILL.md +0 -219
- package/src/skills/requirements-interview/SKILL.md +0 -233
- package/src/skills/sdd-apply/SKILL.md +0 -89
- package/src/skills/sdd-archive/SKILL.md +0 -92
- package/src/skills/sdd-clarify/SKILL.md +0 -105
- package/src/skills/sdd-constitution/SKILL.md +0 -107
- package/src/skills/sdd-design/SKILL.md +0 -155
- package/src/skills/sdd-init/SKILL.md +0 -233
- package/src/skills/sdd-propose/SKILL.md +0 -101
- package/src/skills/sdd-spec/SKILL.md +0 -136
- package/src/skills/sdd-tasks/SKILL.md +0 -232
- package/src/skills/sdd-verify/SKILL.md +0 -131
- package/src/skills/thoth-mem-agents/SKILL.md +0 -210
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Archive Report: [Feature name]
|
|
2
|
+
|
|
3
|
+
**Status**: READY<br>
|
|
4
|
+
**Oracle verdict**: PASS<br>
|
|
5
|
+
**Archive path**: `openspec/changes/archive/YYYY-MM-DD-[feature]/`
|
|
6
|
+
|
|
7
|
+
## Completed scope
|
|
8
|
+
|
|
9
|
+
- [Story and FR/buildable-SC summary.]
|
|
10
|
+
|
|
11
|
+
## Verification lineage
|
|
12
|
+
|
|
13
|
+
- `verify-report.md` records independent oracle PASS with executed evidence.
|
|
14
|
+
|
|
15
|
+
## Canonical specification sync
|
|
16
|
+
|
|
17
|
+
- Pending: archive applies declared durable deltas transactionally.
|
|
18
|
+
|
|
19
|
+
## Deviations and residual warnings
|
|
20
|
+
|
|
21
|
+
- [Deviation/warning or None.]
|
|
22
|
+
|
|
23
|
+
## Follow-up
|
|
24
|
+
|
|
25
|
+
- [Explicit follow-up or None.]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Requirements checklist: [Feature name]
|
|
2
|
+
|
|
3
|
+
**Activation reason**: [Concrete risk, compliance need, or ambiguity.]
|
|
4
|
+
|
|
5
|
+
## Initial validation
|
|
6
|
+
|
|
7
|
+
- [ ] CHK001 [Completeness] [Question covering required actors, flows, failures, and constraints with an evidence anchor.]
|
|
8
|
+
- [ ] CHK002 [Clarity] [Question proving each requirement has one observable interpretation.]
|
|
9
|
+
- [ ] CHK003 [Consistency] [Question comparing stories, FRs, SCs, assumptions, and non-goals.]
|
|
10
|
+
- [ ] CHK004 [Measurability] [Question proving every FR/SC has objective evidence.]
|
|
11
|
+
- [ ] CHK005 [Coverage] [Question mapping every US/FR/SC and failure mode.]
|
|
12
|
+
|
|
13
|
+
## Domain lenses
|
|
14
|
+
|
|
15
|
+
[Add sequential CHK items only for applicable lenses such as security,
|
|
16
|
+
accessibility, compliance, performance, migration, or domain rules; otherwise
|
|
17
|
+
keep the evidence-backed None line.]
|
|
18
|
+
|
|
19
|
+
- None: [evidence-backed reason no domain-specific lens applies]
|
|
20
|
+
|
|
21
|
+
## Revalidation
|
|
22
|
+
|
|
23
|
+
[After requirement-affecting changes, add checked CHK items. If none occurred,
|
|
24
|
+
keep only the evidence-backed no-op.]
|
|
25
|
+
|
|
26
|
+
- [ ] CHK006 [Coverage] [Confirm affected US/FR/SC were revalidated after the change.]
|
|
27
|
+
- Not required: [evidence-backed reason]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Implementation Plan: [Feature name]
|
|
2
|
+
|
|
3
|
+
## Technical context
|
|
4
|
+
|
|
5
|
+
[Current behavior, constraints, and affected surfaces.]
|
|
6
|
+
|
|
7
|
+
## Constitution Check (pre-design)
|
|
8
|
+
|
|
9
|
+
Repeat every active Constitution principle by its exact heading. Each entry must
|
|
10
|
+
use one status and concrete evidence; placeholders are invalid in a completed
|
|
11
|
+
plan.
|
|
12
|
+
|
|
13
|
+
- **[Exact principle heading]**: PASS | JUSTIFIED EXCEPTION | FAIL — [concrete evidence]
|
|
14
|
+
|
|
15
|
+
## Design
|
|
16
|
+
|
|
17
|
+
### Requirement mapping
|
|
18
|
+
|
|
19
|
+
| Requirement | Technical decision | Files/interfaces | Verification seam |
|
|
20
|
+
| --- | --- | --- | --- |
|
|
21
|
+
| FR-001 | [Decision] | `[exact/path]` | [Public seam] |
|
|
22
|
+
|
|
23
|
+
## Optional support artifacts
|
|
24
|
+
|
|
25
|
+
- `research.md`: [reason or not needed]
|
|
26
|
+
- `data-model.md`: [reason or not needed]
|
|
27
|
+
- `contracts/`: [reason or not needed]
|
|
28
|
+
- `quickstart.md`: [reason or not needed]
|
|
29
|
+
|
|
30
|
+
## Risks and migrations
|
|
31
|
+
|
|
32
|
+
- [Risk, mitigation, rollback or migration.]
|
|
33
|
+
|
|
34
|
+
## Constitution Check (post-design)
|
|
35
|
+
|
|
36
|
+
Repeat the same active principles used by the pre-design check.
|
|
37
|
+
|
|
38
|
+
- **[Exact principle heading]**: PASS | JUSTIFIED EXCEPTION | FAIL — [concrete design evidence]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Feature Specification: [Feature name]
|
|
2
|
+
|
|
3
|
+
**Change ID**: `[feature]`<br>
|
|
4
|
+
**Route**: Accelerated | Full<br>
|
|
5
|
+
**Status**: Draft
|
|
6
|
+
|
|
7
|
+
## Intent and scope
|
|
8
|
+
|
|
9
|
+
**Why**: [User or operator value.]<br>
|
|
10
|
+
**Impact**: [Observable behavior and compatibility impact.]<br>
|
|
11
|
+
**Affected capabilities**: `[capability-slug]` | None
|
|
12
|
+
|
|
13
|
+
## User stories
|
|
14
|
+
|
|
15
|
+
### US1 - [Outcome] (Priority: P1)
|
|
16
|
+
|
|
17
|
+
As a [actor], I can [capability] so that [value].
|
|
18
|
+
|
|
19
|
+
**Independent test**: [How this story is demonstrated in isolation.]
|
|
20
|
+
|
|
21
|
+
**Covers**: FR-001, SC-001
|
|
22
|
+
|
|
23
|
+
**Acceptance scenarios**:
|
|
24
|
+
|
|
25
|
+
1. **Given** [context], **When** [action], **Then** [observable result].
|
|
26
|
+
|
|
27
|
+
## Edge cases
|
|
28
|
+
|
|
29
|
+
- [Boundary or failure scenario.]
|
|
30
|
+
|
|
31
|
+
## Functional requirements
|
|
32
|
+
|
|
33
|
+
- **FR-001 — [Requirement name]**: `[ADDED capability-slug]` The system MUST [observable behavior].
|
|
34
|
+
|
|
35
|
+
Use exactly one delta marker per FR: `[INTERNAL]`, `[ADDED capability-slug]`,
|
|
36
|
+
`[MODIFIED capability-slug]`, `[REMOVED capability-slug]`, or
|
|
37
|
+
`[RENAMED capability-slug FROM Previous requirement name]`.
|
|
38
|
+
|
|
39
|
+
## Success criteria
|
|
40
|
+
|
|
41
|
+
- **SC-001** `[buildable]`: [Measurable criterion implemented by this change.]
|
|
42
|
+
- **SC-002** `[outcome]`: [Measurable product or operational outcome observed later.]
|
|
43
|
+
|
|
44
|
+
## Assumptions
|
|
45
|
+
|
|
46
|
+
- [Documented safe assumption.]
|
|
47
|
+
|
|
48
|
+
## Dependencies
|
|
49
|
+
|
|
50
|
+
- [External or internal dependency, or None.]
|
|
51
|
+
|
|
52
|
+
## Out of scope
|
|
53
|
+
|
|
54
|
+
- [Explicit non-goal.]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Tasks: [Feature name]
|
|
2
|
+
|
|
3
|
+
## MVP scope
|
|
4
|
+
|
|
5
|
+
[Name the first independently testable story and its completion evidence.]
|
|
6
|
+
|
|
7
|
+
## Dependencies
|
|
8
|
+
|
|
9
|
+
`T001 -> T002`; [cross-story dependency notes, or None.]
|
|
10
|
+
|
|
11
|
+
## Story US1
|
|
12
|
+
|
|
13
|
+
- [ ] T001 [US1] Add the failing behavior test for FR-001 and buildable SC-001 in `[exact/test/path]` | Verify: the focused test fails for the missing behavior
|
|
14
|
+
- [ ] T002 [US1] Implement FR-001 and buildable SC-001 in `[exact/source/path]` | Verify: the focused test passes
|
|
15
|
+
- [ ] T003 [P] [US1] Update independent documentation for FR-001 in `[exact/doc/path]` | Verify: the documented contract matches the tested behavior
|
|
16
|
+
|
|
17
|
+
Outcome SCs remain verification targets; do not manufacture implementation tasks
|
|
18
|
+
for them.
|
|
19
|
+
|
|
20
|
+
## Parallel execution
|
|
21
|
+
|
|
22
|
+
[Keep exactly one form below. Use `[P]` only when mutable paths cannot overlap.]
|
|
23
|
+
|
|
24
|
+
- T003 may run with T001 because `[exact/doc/path]` and `[exact/test/path]` do not overlap.
|
|
25
|
+
- None: [reason no tasks can safely overlap]
|
|
26
|
+
|
|
27
|
+
## Final verification
|
|
28
|
+
|
|
29
|
+
- [ ] T004 [US1] Map FR-001 and buildable SC-001 evidence in `[verify-report path]` | Verify: oracle records a passing verdict with executed evidence
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Verification Report: [Feature name]
|
|
2
|
+
|
|
3
|
+
**Reviewer**: oracle<br>
|
|
4
|
+
**Independent from implementer**: Yes<br>
|
|
5
|
+
**Verdict**: PASS | FAIL
|
|
6
|
+
|
|
7
|
+
## Review dimensions
|
|
8
|
+
|
|
9
|
+
- **Completeness**: [All accepted scope represented or finding IDs.]
|
|
10
|
+
- **Correctness**: [Behavior matches each contract or finding IDs.]
|
|
11
|
+
- **Coherence**: [Spec, plan, tasks, implementation, and docs agree or finding IDs.]
|
|
12
|
+
|
|
13
|
+
## Compliance matrix
|
|
14
|
+
|
|
15
|
+
| Requirement | Implementation evidence | Executed check | Result |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| FR-001 | `[path:line]` | `[command]` | PASS | FAIL |
|
|
18
|
+
| SC-001 `[buildable]` | `[path:line]` | `[command]` | PASS | FAIL |
|
|
19
|
+
| SC-002 `[outcome]` | [Observed evidence or residual-risk note] | `[check or N/A]` | PASS | RISK |
|
|
20
|
+
|
|
21
|
+
## Findings
|
|
22
|
+
|
|
23
|
+
| ID | Severity | Dimension | Evidence | Remediation anchor |
|
|
24
|
+
| --- | --- | --- | --- | --- |
|
|
25
|
+
|
|
26
|
+
## Residual risks
|
|
27
|
+
|
|
28
|
+
- SC-###: [Explicit outcome risk and observation plan, or None.]
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Bundled thoth-owned skills
|
|
2
|
+
|
|
3
|
+
This directory is the canonical, versioned source for skills owned by
|
|
4
|
+
thoth-agents. `pnpm run integration:sync` copies those skills into the Codex and
|
|
5
|
+
Claude Code plugins; OpenCode exposes `/thoth-init`, which materializes them
|
|
6
|
+
project-locally.
|
|
7
|
+
|
|
8
|
+
Owned workflow skills are `thoth-init`, `thoth-sdd`, `thoth-constitution`, and
|
|
9
|
+
`thoth-archive`. Mandatory external skills (`simplify`, `tdd`,
|
|
10
|
+
`progressive-context-router`, and `architectural-grilling`) are not copied here:
|
|
11
|
+
the thoth-agents installer invokes `npx skills add` against their canonical
|
|
12
|
+
repositories so they retain a single source of truth.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: thoth-archive
|
|
3
|
+
description: Close a passing artifact-backed thoth-agents change by transactionally synchronizing explicitly declared durable requirement deltas and moving the complete audit trail to a dated archive.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Thoth Archive
|
|
7
|
+
|
|
8
|
+
Archive is the required terminal transition for Accelerated and Full routes.
|
|
9
|
+
|
|
10
|
+
1. Confirm every task is `[x]`, `verify-report.md` records independent oracle
|
|
11
|
+
`PASS`, its compliance matrix covers every FR and buildable SC, every outcome
|
|
12
|
+
SC has observed PASS evidence or an explicit residual RISK, and no unresolved
|
|
13
|
+
CRITICAL issue remains.
|
|
14
|
+
2. Prepare `archive-report.md` from the bundled template with status `READY`,
|
|
15
|
+
verification lineage, completed scope, deviations, residual warnings, and
|
|
16
|
+
the pending canonical-sync line.
|
|
17
|
+
3. Run the thoth-sdd validator through `closeout`.
|
|
18
|
+
4. Run `scripts/archive.mjs --change <path> --date YYYY-MM-DD --json`.
|
|
19
|
+
5. Return the dated archive path, updated capability specifications, and audit
|
|
20
|
+
summary.
|
|
21
|
+
|
|
22
|
+
The script reads delta metadata directly from `spec.md`:
|
|
23
|
+
|
|
24
|
+
- `[ADDED capability]` creates a named canonical requirement.
|
|
25
|
+
- `[MODIFIED capability]` replaces the named requirement and its scenarios.
|
|
26
|
+
- `[REMOVED capability]` removes the named requirement.
|
|
27
|
+
- `[RENAMED capability FROM Previous title]` renames and replaces it.
|
|
28
|
+
- `[INTERNAL]` never changes `openspec/specs/`.
|
|
29
|
+
|
|
30
|
+
All delta targets are validated before any permanent specification changes. The
|
|
31
|
+
operation stages and rolls back the full canonical update if a delta, report
|
|
32
|
+
update, or final move raises a handled error in the active process. Report and
|
|
33
|
+
canonical recovery are attempted independently. It never merges undeclared
|
|
34
|
+
feature prose. No CLI, network access, or installation action is used during SDD
|
|
35
|
+
closeout.
|
|
36
|
+
|
|
37
|
+
This operation is not crash-atomic. Forced process or operating-system
|
|
38
|
+
termination between filesystem renames can leave `.spec.md.thoth-stage-*` or
|
|
39
|
+
`spec.md.thoth-backup-*` files. Inspect them and the canonical specification
|
|
40
|
+
before retrying archive.
|