You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit e09e3e6
Browse filesBrowse the repository at this point in the historyBrowse files
feat(cli): record the role, title and description of each spec source
Implements spec 004. The agent can set role, title and description
in the header of a spec file, or in a .meta.yaml companion file for a
binary file. The CLI records the values in the spec entry of the
session material and in chainloop.spec.* annotations on the spec
material, after secret redaction.
Refs #3531
Assisted-by: Claude Code
Signed-off-by: Jose I. Paris <jiparis@chainloop.dev>
Chainloop-Trace-Sessions: 902bc2fc-3616-4feb-8ebb-35d423e26806
Copy file name to clipboardExpand all lines: app/cli/pkg/action/trace_spec.go
+11-1Lines changed: 11 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -88,13 +88,23 @@ Resolve whatever the task points at — a ticket, a design document, an image fi
88
88
---
89
89
kind: ticket
90
90
uri: https://tracker.example.com/issue/ENG-1234
91
+
role: task
92
+
title: "ENG-1234: Add an export button"
93
+
description: The ticket that this session implements.
91
94
---
92
95
93
96
Set kind to one of ticket, document, image or text. An approved plan, or spec text that came from outside this conversation, is kind text. Set uri to the source URL or the path of a local file, or omit the uri line when the text has no other source.
94
97
98
+
Set role to the purpose of the source. If a source has more than one purpose, pick the role that tells why it is in this session. Use one of these values:
99
+
- task: the item that states the work to do.
100
+
- spec: a document that defines what to build.
101
+
- plan: a plan that the user approved.
102
+
- reference: supporting material, such as a screenshot or a background document.
103
+
Set title to a short name for the source, such as the ticket title. Set description to one or two sentences that tell what the source holds.
104
+
95
105
The transcript of this session already holds the conversation, so the user's request prompt is not a spec: do not capture it. Spec text that the user pastes, such as a ticket or a design document, is a spec.
96
106
97
-
An image is the one exception to writing text. If you can reach the image as a file — on disk, or at a URL you can download — copy the file itself into the folder with a copy or download command (cp, curl -o), keeping its extension and adding no frontmatter. Do not capture an image pasted into this conversation: you have no file for it.
107
+
An image is the one exception to writing text. If you can reach the image as a file — on disk, or at a URL you can download — copy the file itself into the folder with a copy or download command (cp, curl -o), keeping its extension and adding no frontmatter. Then write the role, title and description lines in a second file next to it. Give that file the name of the image plus .meta.yaml, for example mockup.png.meta.yaml. Do not capture an image pasted into this conversation: you have no file for it.
98
108
99
109
If the task changes, or a spec changes — also one that this session writes, such as a design note outside the repository — overwrite its file with the current content, or add another. If there is nothing to capture — a one-line request, a typo fix, a question, a passing remark — write nothing at all.
0 commit comments