Waystone has two different source categories:
- imported forge sources, such as
github:owner/repo - local Waystone sources, such as
waystone:owner/repo
Imported forge sources are read-only evidence. Waystone should preserve them, verify them and export them, but it should not mutate them locally.
Local Waystone sources are appendable local records. They are used for issues, labels, comments and lifecycle events authored directly into the ledger.
Create an issue:
waystone issue create --source owner/repo --title "Follow up on imported history"For local-only authoring commands, owner/repo is shorthand for waystone:owner/repo.
The explicit form also works:
waystone issue create --source waystone:owner/repo --title "Follow up on imported history"Waystone refuses imported sources:
waystone issue create --source github:owner/repo --title "This will fail"Create a local label:
waystone label create --source owner/repo --slug migration --name "Migration" --color 0e8a16Apply it to an issue:
waystone issue label add --source owner/repo --issue 1 migrationRemove it from an issue:
waystone issue label remove --source owner/repo --issue 1 migrationLocal labels have immutable IDs, stable slugs and mutable display names. Issue JSON stores label IDs. Human-readable issue and timeline output resolves those IDs into labels such as Migration (migration).
Local labels are stored under:
.waystone/objects/waystone/<owner>/<repo>/labels/
Label add/remove history is stored as issue.labeled and issue.unlabeled events.
Edit an issue title or body:
waystone issue edit --source owner/repo --issue 1 --title "Updated title"
waystone issue edit --source owner/repo --issue 1 --body-file issue.mdThe issue JSON stores the current title and body. Edit history is recorded as issue.edited events. Edit events record the new title or body, not a previous-content snapshot.
Add a comment:
waystone issue comment --source owner/repo --issue 1 --body "I checked this locally."Read a comment body from a file:
waystone issue comment --source owner/repo --issue 1 --body-file comment.mdLocal comments are stored under:
.waystone/objects/waystone/<owner>/<repo>/comments/
Close an issue:
waystone issue close --source owner/repo --issue 1Reopen an issue:
waystone issue reopen --source owner/repo --issue 1The issue JSON stores current state. Close and reopen history is stored separately as issue event JSON under:
.waystone/objects/waystone/<owner>/<repo>/events/
That split keeps the current issue easy to read while preserving lifecycle history for timeline output.
Show the local issue timeline:
waystone issue timeline --source waystone:owner/repo 1A local issue timeline can include:
issue.openedissue.editedissue.labeledissue.unlabeledissue.commentissue.closedissue.reopened
List local open issues:
waystone issue list --source waystone:owner/repo --state openList local closed issues:
waystone issue list --source waystone:owner/repo --state closedSearch local issues:
waystone issue search --source waystone:owner/repo --state all "release"--state accepts open, closed and all.
Local authored issue history should survive the same integrity checks and archive path as imported history:
waystone ledger verify --strict
waystone ledger export --out waystone-local-issues
waystone ledger inspect waystone-local-issues
waystone ledger import waystone-local-issuesImporting Waystone data must never execute anything.