feat: add draft data, gap analysis report, and workspace config
This commit is contained in:
33
workspace/draft-team/scripts/new-cycle.sh
Executable file
33
workspace/draft-team/scripts/new-cycle.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "usage: $0 <cycle-slug>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
slug="$1"
|
||||
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cycle_dir="$root/cycles/$slug"
|
||||
|
||||
if [[ -e "$cycle_dir" ]]; then
|
||||
echo "cycle already exists: $cycle_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$cycle_dir"
|
||||
cp "$root/templates/00-user-spec.md" "$cycle_dir/00-user-spec.md"
|
||||
cp "$root/templates/05-status.md" "$cycle_dir/05-status-v1.md"
|
||||
cp "$root/templates/10-research-brief.md" "$cycle_dir/10-research-brief.md"
|
||||
cp "$root/templates/20-architecture-brief.md" "$cycle_dir/20-architecture-brief.md"
|
||||
cp "$root/templates/30-outline.md" "$cycle_dir/30-outline.md"
|
||||
cp "$root/templates/40-draft.md" "$cycle_dir/40-draft-v1.md"
|
||||
mkdir -p "$cycle_dir/50-reviews-v1"
|
||||
cp "$root/templates/50-review-security.md" "$cycle_dir/50-reviews-v1/security.md"
|
||||
cp "$root/templates/50-review-software.md" "$cycle_dir/50-reviews-v1/software.md"
|
||||
cp "$root/templates/50-review-architecture.md" "$cycle_dir/50-reviews-v1/architecture.md"
|
||||
cp "$root/templates/50-review-ietf-senior.md" "$cycle_dir/50-reviews-v1/ietf-senior.md"
|
||||
cp "$root/templates/55-review-synthesis.md" "$cycle_dir/55-review-synthesis-v1.md"
|
||||
cp "$root/templates/60-revision-plan.md" "$cycle_dir/60-revision-plan-v1.md"
|
||||
|
||||
echo "created $cycle_dir"
|
||||
49
workspace/draft-team/scripts/role-target.sh
Executable file
49
workspace/draft-team/scripts/role-target.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -lt 2 || $# -gt 3 ]]; then
|
||||
echo "usage: $0 <cycle-slug> <role> [version]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
slug="$1"
|
||||
role="$2"
|
||||
version="${3:-1}"
|
||||
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cycle_dir="$root/cycles/$slug"
|
||||
|
||||
if [[ ! -d "$cycle_dir" ]]; then
|
||||
echo "missing cycle: $cycle_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$role" in
|
||||
researcher)
|
||||
printf '%s\n' "$cycle_dir/10-research-brief.md"
|
||||
;;
|
||||
architect)
|
||||
printf '%s\n%s\n' "$cycle_dir/20-architecture-brief.md" "$cycle_dir/30-outline.md"
|
||||
;;
|
||||
author)
|
||||
printf '%s\n' "$cycle_dir/40-draft-v$version.md"
|
||||
;;
|
||||
security-reviewer)
|
||||
printf '%s\n' "$cycle_dir/50-reviews-v$version/security.md"
|
||||
;;
|
||||
software-reviewer)
|
||||
printf '%s\n' "$cycle_dir/50-reviews-v$version/software.md"
|
||||
;;
|
||||
architecture-reviewer)
|
||||
printf '%s\n' "$cycle_dir/50-reviews-v$version/architecture.md"
|
||||
;;
|
||||
ietf-senior-reviewer)
|
||||
printf '%s\n' "$cycle_dir/50-reviews-v$version/ietf-senior.md"
|
||||
;;
|
||||
review-lead)
|
||||
printf '%s\n%s\n' "$cycle_dir/55-review-synthesis-v$version.md" "$cycle_dir/60-revision-plan-v$version.md"
|
||||
;;
|
||||
*)
|
||||
echo "unknown role: $role" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
70
workspace/draft-team/scripts/run-cycle.sh
Executable file
70
workspace/draft-team/scripts/run-cycle.sh
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -lt 1 || $# -gt 2 ]]; then
|
||||
echo "usage: $0 <cycle-slug> [version]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
slug="$1"
|
||||
version="${2:-1}"
|
||||
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cycle_dir="$root/cycles/$slug"
|
||||
review_dir="$cycle_dir/50-reviews-v$version"
|
||||
status_file="$cycle_dir/05-status-v$version.md"
|
||||
|
||||
if [[ ! -d "$cycle_dir" ]]; then
|
||||
echo "missing cycle: $cycle_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
draft_file="$cycle_dir/40-draft-v$version.md"
|
||||
review_synthesis="$cycle_dir/55-review-synthesis-v$version.md"
|
||||
revision_plan="$cycle_dir/60-revision-plan-v$version.md"
|
||||
|
||||
if [[ ! -f "$draft_file" ]]; then
|
||||
cp "$root/templates/40-draft.md" "$draft_file"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$status_file" ]]; then
|
||||
cp "$root/templates/05-status.md" "$status_file"
|
||||
fi
|
||||
|
||||
if [[ ! -d "$review_dir" ]]; then
|
||||
mkdir -p "$review_dir"
|
||||
cp "$root/templates/50-review-security.md" "$review_dir/security.md"
|
||||
cp "$root/templates/50-review-software.md" "$review_dir/software.md"
|
||||
cp "$root/templates/50-review-architecture.md" "$review_dir/architecture.md"
|
||||
cp "$root/templates/50-review-ietf-senior.md" "$review_dir/ietf-senior.md"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$review_synthesis" ]]; then
|
||||
cp "$root/templates/55-review-synthesis.md" "$review_synthesis"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$revision_plan" ]]; then
|
||||
cp "$root/templates/60-revision-plan.md" "$revision_plan"
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
Cycle: $slug
|
||||
Version: v$version
|
||||
|
||||
Run order:
|
||||
1. researcher -> $cycle_dir/10-research-brief.md
|
||||
2. architect -> $cycle_dir/20-architecture-brief.md and $cycle_dir/30-outline.md
|
||||
3. author -> $draft_file
|
||||
4. security-reviewer -> $review_dir/security.md
|
||||
5. software-reviewer -> $review_dir/software.md
|
||||
6. architecture-reviewer -> $review_dir/architecture.md
|
||||
7. ietf-senior-reviewer -> $review_dir/ietf-senior.md
|
||||
8. review-lead -> $review_synthesis and $revision_plan
|
||||
|
||||
Core inputs:
|
||||
- $status_file
|
||||
- $cycle_dir/00-user-spec.md
|
||||
- $cycle_dir/10-research-brief.md
|
||||
- $cycle_dir/20-architecture-brief.md
|
||||
- $cycle_dir/30-outline.md
|
||||
- $draft_file
|
||||
EOF
|
||||
75
workspace/draft-team/scripts/update-status.sh
Executable file
75
workspace/draft-team/scripts/update-status.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -lt 1 || $# -gt 2 ]]; then
|
||||
echo "usage: $0 <cycle-slug> [version]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
slug="$1"
|
||||
version="${2:-1}"
|
||||
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cycle_dir="$root/cycles/$slug"
|
||||
status_file="$cycle_dir/05-status-v$version.md"
|
||||
|
||||
if [[ ! -d "$cycle_dir" ]]; then
|
||||
echo "missing cycle: $cycle_dir" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
status_of() {
|
||||
local path="$1"
|
||||
if [[ ! -f "$path" ]]; then
|
||||
printf 'missing'
|
||||
return
|
||||
fi
|
||||
|
||||
if rg -q '^Pending\.$' "$path"; then
|
||||
printf 'stub'
|
||||
return
|
||||
fi
|
||||
|
||||
if ! rg -q '^[[:space:]]*(-[[:space:]]+[A-Za-z0-9]|\d+\.[[:space:]]+[A-Za-z0-9]|[^#[:space:]\-`])' "$path"; then
|
||||
printf 'stub'
|
||||
return
|
||||
fi
|
||||
|
||||
if rg -q '^# [A-Za-z ]+$' "$path" && [[ "$(wc -l < "$path")" -lt 8 ]]; then
|
||||
printf 'stub'
|
||||
return
|
||||
fi
|
||||
|
||||
printf 'written'
|
||||
}
|
||||
|
||||
cat > "$status_file" <<EOF
|
||||
# Cycle Status
|
||||
|
||||
## Summary
|
||||
|
||||
- cycle: $slug
|
||||
- version: v$version
|
||||
- last updated: $(date -u +"%Y-%m-%d %H:%M UTC")
|
||||
|
||||
## Artifact Status
|
||||
|
||||
- \`00-user-spec.md\`: $(status_of "$cycle_dir/00-user-spec.md")
|
||||
- \`10-research-brief.md\`: $(status_of "$cycle_dir/10-research-brief.md")
|
||||
- \`20-architecture-brief.md\`: $(status_of "$cycle_dir/20-architecture-brief.md")
|
||||
- \`30-outline.md\`: $(status_of "$cycle_dir/30-outline.md")
|
||||
- \`40-draft-v$version.md\`: $(status_of "$cycle_dir/40-draft-v$version.md")
|
||||
- \`50-reviews-v$version/security.md\`: $(status_of "$cycle_dir/50-reviews-v$version/security.md")
|
||||
- \`50-reviews-v$version/software.md\`: $(status_of "$cycle_dir/50-reviews-v$version/software.md")
|
||||
- \`50-reviews-v$version/architecture.md\`: $(status_of "$cycle_dir/50-reviews-v$version/architecture.md")
|
||||
- \`50-reviews-v$version/ietf-senior.md\`: $(status_of "$cycle_dir/50-reviews-v$version/ietf-senior.md")
|
||||
- \`55-review-synthesis-v$version.md\`: $(status_of "$cycle_dir/55-review-synthesis-v$version.md")
|
||||
- \`60-revision-plan-v$version.md\`: $(status_of "$cycle_dir/60-revision-plan-v$version.md")
|
||||
|
||||
## Notes
|
||||
|
||||
- written means the artifact contains substantive content.
|
||||
- stub means the file exists but still appears to be a placeholder.
|
||||
- missing means the expected file has not been created.
|
||||
EOF
|
||||
|
||||
echo "$status_file"
|
||||
Reference in New Issue
Block a user