verify_claims.py gives all 813 claim rows a mechanical disposition; the 28 flags were adjudicated by hand (REPORT.md appendix). Two survived as genuine drift (F-017): a closed issue still described as open in shared/lab-netzwerk.md, and a 'pending' decision block in hosts/cfgmon.md whose premise the same file records as executed. Also: narrow the vendored-path filter (it silently dropped 7 tracked icon files and produced false path-miss flags), record the confirmed canonical author identity in F-003, verify the Gitea#48->GitLab#46 numbering shift by title in F-005, and add the ADR-0010 draft under analysis/drafts/ for the human to git-mv into decisions/. Branch renamed to Neckbeard-v0.1.1-analyse-1 per the human.
81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Reproduce every raw data file of the neckbeard field test from zero.
|
|
#
|
|
# bash analysis/scripts/run_all.sh
|
|
#
|
|
# Clones the in-scope component repos next to the management repo if they
|
|
# are missing, then regenerates everything under analysis/data/.
|
|
# Rerunning on an unchanged tree must produce no diff -- no wall-clock
|
|
# time enters any output (see common.py).
|
|
#
|
|
# Requirements: bash, git, python3 (stdlib only). Network and lab access
|
|
# are needed for the initial clone and for gitlab_issues.json; both steps
|
|
# skip cleanly without them, and everything else still runs.
|
|
|
|
set -euo pipefail
|
|
|
|
MGMT_REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
WORKSPACE="${NB_WORKSPACE:-$(dirname "$MGMT_REPO")}"
|
|
COMPONENTS_DIR="$WORKSPACE/components"
|
|
SCRIPTS="$MGMT_REPO/analysis/scripts"
|
|
|
|
# Scope frozen in analysis/SCOPE.md, confirmed by the human at Phase 0.
|
|
COMPONENTS=(
|
|
threadnet-call
|
|
thread-net-git
|
|
threadnet-operating
|
|
axion1337.chat-gitops
|
|
ThreadNet-Web
|
|
)
|
|
|
|
echo "management repo: $MGMT_REPO"
|
|
echo "workspace: $WORKSPACE"
|
|
|
|
echo
|
|
echo "== components"
|
|
mkdir -p "$COMPONENTS_DIR"
|
|
for slug in "${COMPONENTS[@]}"; do
|
|
target="$COMPONENTS_DIR/$slug"
|
|
if [ -d "$target/.git" ]; then
|
|
echo " $slug: present"
|
|
continue
|
|
fi
|
|
echo " $slug: cloning"
|
|
GIT_TERMINAL_PROMPT=0 git clone -q \
|
|
"https://git.lab/axion1337.chat/$slug.git" "$target"
|
|
# This analysis must never write back. Break the push path on every
|
|
# clone it creates.
|
|
git -C "$target" remote set-url --push origin DISABLED-no-push
|
|
done
|
|
|
|
echo
|
|
echo "== tickets"
|
|
python3 "$SCRIPTS/fetch_gitlab_issues.py"
|
|
|
|
echo
|
|
echo "== repo inventory"
|
|
python3 "$SCRIPTS/inv_repo.py"
|
|
|
|
echo
|
|
echo "== links"
|
|
python3 "$SCRIPTS/inv_links.py"
|
|
|
|
echo
|
|
echo "== claims"
|
|
python3 "$SCRIPTS/inv_claims.py"
|
|
|
|
echo
|
|
echo "== commit-SHA references and the 2026-08-07 rewrite mapping"
|
|
python3 "$SCRIPTS/inv_shas.py"
|
|
|
|
echo
|
|
echo "== timestamp anonymisation coverage"
|
|
python3 "$SCRIPTS/inv_timestamps.py"
|
|
|
|
echo
|
|
echo "== claim verification (mechanical pass over claims.tsv)"
|
|
python3 "$SCRIPTS/verify_claims.py"
|
|
|
|
echo
|
|
echo "done. raw data in $MGMT_REPO/analysis/data/"
|