Watch
2
Evaluate the 15 exec-scope skills in Varnan-Tech/opendirectory, where every one is signal acquisition and not one of them helps decide #1078
Open
opened 2026-08-15 23:47:21 +00:00 by coilyco-ops
·
17 comments
No Branch/Tag specified
main
release
ops/393-retire-doc-size-alias
ops/393-drop-em-dash-check
feat/vendored-tree-exclude
aos/claude/xlarge-band
aos/claude/ue65
aos/claude/identity-color-wins
aos/claude/ap47
aos/claude/zr44
aos/claude/xk58
aos/claude/aw85-skill-size-owner
aos/claude/ym96-docs-bands
aos/claude/wt57-pin-aos-bundle
aos/claude/wt57-image-inputs-filter
aos/claude/ym96-label-taxonomy
ops/dev-base-pin-rust-1.90.0
aos/claude/mg96-clean
aos/claude/mg96
backup/fix/bake-precommit-hooks
rescue/aos-test-timeout
aos/claude/issues-977-979-agents-base
aos/claude/sx87
refactor/remove-context-budget-json
issue-946
aos/codex/20260806t050901z-50407-6291ab0a
aos/codex/standalone-shadow-workspace
backup/aos/codex/20260806t061240z-10127-754d7de2
aos/codex/standalone-local-service-route
aos/codex/aosterm-aoscompose-wrapper
aos/codex/agents-launch-profile-source
aos/codex/launch-profiles-yaml
aos/codex/20260806t031603z-7731-c76c17f2
backup/aos/codex/20260805t183628z-5916-617bb239
backup/aos/codex/20260805t025242z-30811-fbb135ff
aos/codex/aos-v2-roster-852
aos/codex/20260801t164712z-64119-69ee8bb6
backup/aos/codex/20260801t164900z-67616-2ad2d0e3
issue-834
aos/codex/pr-829-1130
issue-824-agent-proxy-model-routing
task-merge-pr818
fix/aos-ci-20260730
issue-671
issue-734
issue-484
issue-498
issue-622
issue-512
issue-679
issue-454
backup/issue-785-first-person
issue-785-first-person
director-pr784
restore-language-images
recovery/2026-07-28-triaged-branch-archive
recovery/2026-07-27-local-work
recovery/aos-local-build-20260727
codex/land-pr-733
codex/aos-ci-watch
issue-642
issue-682-goose-yaml
issue-656-goose-context
safety/aos-local-main-09347d0
issue-611-specialist-images
fix-action-run-list-page
issue-454-v2
experiment/no-ops-forgejo
feat/dev-base-image
aos-eval-v0.7.0
v0.276.0
aos-precommit-v0.47.0
aos-precommit-v0.46.0
aos-v0.221.0
aos-precommit-v0.45.0
aos-v0.220.0
aos-eval-v0.6.0
aos-precommit-v0.44.0
aos-v0.219.0
aos-v0.218.0
v0.275.0
aos-precommit-v0.43.0
aos-v0.217.0
aos-precommit-v0.42.0
aos-precommit-v0.41.0
aos-eval-v0.5.0
aos-precommit-v0.40.0
aos-precommit-v0.39.0
aos-v0.216.0
aos-precommit-v0.38.0
aos-precommit-v0.37.0
aos-precommit-v0.36.0
aos-v0.215.0
aos-precommit-v0.35.0
aos-v0.214.0
aos-precommit-v0.34.0
aos-precommit-v0.33.0
aos-precommit-v0.32.0
aos-precommit-v0.31.0
v0.274.0
aos-eval-v0.4.0
aos-eval-v0.3.0
aos-precommit-v0.30.0
aos-precommit-v0.29.0
aos-precommit-v0.28.0
aos-precommit-v0.27.0
aos-eval-v0.2.0
aos-precommit-v0.26.0
aos-eval-v0.1.0
aos-precommit-v0.25.0
aos-precommit-v0.24.0
aos-v0.213.0
aos-v0.212.0
aos-v0.211.0
aos-v0.210.0
aos-v0.209.0
aos-v0.208.0
aos-v0.207.0
aos-v0.206.0
aos-v0.205.0
aos-v0.204.0
aos-v0.203.0
aos-precommit-v0.23.0
v0.273.0
v0.272.0
aos-v0.202.0
aos-precommit-v0.22.0
v0.271.0
aos-v0.201.0
aos-v0.200.0
aos-precommit-v0.21.0
aos-v0.199.0
aos-v0.198.0
aos-precommit-v0.20.0
v0.270.0
aos-precommit-v0.19.0
aos-v0.197.0
aos-v0.196.0
v0.269.0
aos-v0.195.0
aos-v0.194.0
aos-v0.193.0
aos-precommit-v0.18.0
v0.268.0
v0.267.0
aos-precommit-v0.17.0
v0.266.0
aos-v0.192.0
aos-v0.191.0
aos-precommit-v0.16.0
aos-v0.190.0
aos-v0.189.0
aos-v0.188.0
aos-v0.187.0
aos-v0.186.0
aos-precommit-v0.15.0
aos-v0.185.0
aos-v0.184.0
aos-precommit-v0.14.0
aos-v0.183.0
v0.265.0
aos-v0.182.0
aos-v0.181.0
aos-v0.180.0
aos-v0.179.0
aos-precommit-v0.13.0
aos-v0.178.0
aos-precommit-v0.12.0
aos-v0.177.0
aos-precommit-v0.11.0
aos-v0.176.0
aos-v0.175.0
aos-v0.174.0
aos-precommit-v0.10.0
aos-v0.173.0
aos-v0.172.0
aos-v0.171.0
aos-v0.170.0
aos-v0.169.0
aos-v0.168.0
aos-v0.167.0
aos-precommit-v0.9.0
v0.264.0
aos-v0.166.0
aos-v0.165.0
aos-v0.164.0
aos-v0.163.0
aos-v0.162.0
aos-v0.161.0
v0.263.0
aos-v0.160.0
aos-v0.159.0
aos-precommit-v0.8.0
aos-v0.158.0
aos-v0.157.0
aos-precommit-v0.7.0
aos-v0.156.0
aos-v0.155.0
aos-v0.154.0
aos-v0.153.0
v0.262.0
aos-precommit-v0.6.0
aos-precommit-v0.5.0
aos-precommit-v0.4.0
aos-v0.152.0
aos-precommit-v0.3.0
aos-v0.151.0
aos-v0.150.0
aos-v0.149.0
aos-precommit-v0.2.0
aos-v0.148.0
aos-v0.147.0
aos-v0.146.0
aos-v0.145.0
aos-v0.144.0
aos-v0.143.0
aos-precommit-v0.1.0
aos-v0.142.0
aos-v0.141.0
aos-v0.140.0
aos-v0.139.0
aos-v0.138.0
aos-v0.137.0
aos-v0.136.0
aos-v0.135.0
aos-v0.134.0
aos-v0.133.0
aos-v0.132.0
aos-v0.131.0
aos-v0.130.0
aos-v0.129.0
aos-v0.128.0
aos-v0.127.0
aos-v0.126.0
aos-v0.125.0
v0.261.0
aos-v0.124.0
v0.260.0
aos-v0.123.0
aos-v0.122.0
aos-v0.121.0
aos-v0.120.0
aos-v0.119.0
aos-v0.118.0
aos-v0.117.0
aos-v0.116.0
aos-v0.115.0
aos-v0.114.0
aos-v0.113.0
aos-v0.112.0
aos-v0.111.0
aos-v0.110.0
aos-v0.109.0
aos-v0.108.0
aos-v0.107.0
aos-v0.106.0
aos-v0.105.0
aos-v0.104.0
v0.259.0
aos-v0.103.0
v0.258.0
aos-v0.102.0
aos-v0.101.0
aos-v0.100.0
aos-v0.99.0
aos-v0.98.0
aos-v0.97.0
aos-v0.96.0
aos-v0.95.0
aos-v0.94.0
aos-v0.93.0
aos-v0.92.0
aos-v0.91.0
aos-v0.90.0
aos-v0.89.0
v0.257.0
aos-v0.88.0
aos-v0.87.0
aos-v0.86.0
v0.256.0
aos-v0.85.0
aos-v0.84.0
aos-v0.83.0
aos-v0.82.0
aos-v0.81.0
aos-v0.80.0
aos-v0.79.0
aos-v0.78.0
aos-v0.77.0
aos-v0.76.0
aos-v0.75.0
aos-v0.74.0
aos-v0.73.0
aos-v0.72.0
aos-v0.71.0
aos-v0.70.0
aos-v0.69.0
aos-v0.68.0
aos-v0.67.0
aos-v0.66.0
aos-v0.65.0
aos-v0.64.0
aos-v0.63.0
aos-v0.62.0
aos-v0.61.0
aos-v0.60.0
aos-v0.59.0
aos-v0.58.0
aos-v0.57.0
aos-v0.56.0
aos-v0.55.0
aos-v0.54.0
aos-v0.53.0
aos-v0.52.0
aos-v0.51.0
aos-v0.50.0
aos-v0.49.0
aos-v0.48.0
aos-v0.47.0
aos-v0.46.0
aos-v0.45.0
aos-v0.44.0
aos-v0.43.0
aos-v0.42.0
aos-v0.41.0
aos-v0.40.0
aos-v0.39.0
aos-v0.38.0
aos-v0.37.0
aos-v0.36.0
aos-v0.35.0
aos-v0.34.0
aos-v0.33.0
aos-v0.32.0
aos-v0.31.0
aos-v0.30.0
aos-v0.29.0
aos-v0.28.0
aos-v0.27.0
aos-v0.26.0
aos-v0.25.0
aos-v0.24.0
aos-v0.23.0
aos-v0.22.0
aos-v0.21.0
aos-v0.20.0
aos-v0.19.0
aos-v0.18.0
aos-v0.17.0
aos-v0.16.0
aos-v0.15.0
aos-v0.14.0
aos-v0.13.0
aos-v0.12.0
aos-v0.11.0
aos-v0.10.0
aos-v0.9.0
aos-v0.8.0
aos-v0.7.0
aos-v0.6.0
aos-v0.5.0
aos-v0.4.0
aos-v0.3.0
aos-v0.2.0
aos-v0.1.0
v0.255.0
v0.254.0
v0.253.0
v0.252.0
v0.251.0
v0.250.0
v0.249.0
v0.248.0
v0.247.0
v0.246.0
v0.245.0
v0.244.0
v0.243.0
v0.242.0
v0.241.0
v0.240.0
v0.239.0
v0.238.0
v0.237.0
v0.236.0
v0.235.0
v0.234.0
v0.233.0
v0.232.0
v0.231.0
v0.230.0
v0.229.0
v0.228.0
v0.227.0
v0.226.0
v0.225.0
v0.224.0
v0.223.0
v0.222.0
v0.221.0
v0.220.0
v0.219.0
v0.218.0
v0.217.0
v0.216.0
v0.215.0
v0.214.0
v0.213.0
v0.212.0
v0.211.0
v0.210.0
v0.209.0
v0.208.0
v0.207.0
v0.206.0
v0.205.0
v0.204.0
v0.203.0
v0.202.0
v0.201.0
v0.200.0
v0.199.0
v0.198.0
v0.197.0
v0.196.0
v0.195.0
v0.194.0
v0.193.0
v0.192.0
v0.191.0
v0.190.0
v0.189.0
v0.188.0
v0.187.0
v0.186.0
v0.185.0
v0.184.0
v0.183.0
v0.182.0
v0.181.0
v0.180.0
v0.179.0
v0.178.0
v0.177.0
v0.176.0
v0.175.0
v0.174.0
v0.173.0
v0.172.0
v0.171.0
v0.170.0
v0.169.0
v0.168.0
v0.167.0
v0.166.0
v0.165.0
v0.164.0
v0.163.0
v0.162.0
v0.161.0
v0.160.0
v0.159.0
v0.158.0
v0.157.0
v0.156.0
v0.155.0
v0.154.0
v0.153.0
v0.152.0
v0.151.0
v0.150.0
v0.149.0
v0.148.0
v0.147.0
v0.146.0
v0.145.0
v0.144.0
v0.143.0
v0.142.0
v0.141.0
v0.140.0
v0.139.0
v0.138.0
v0.137.0
v0.136.0
v0.135.0
v0.134.0
v0.133.0
v0.132.0
v0.131.0
v0.130.0
v0.129.0
v0.128.0
v0.127.0
v0.126.0
v0.125.0
v0.124.0
v0.123.0
v0.122.0
v0.121.0
v0.120.0
v0.119.0
v0.118.0
v0.117.0
v0.116.0
v0.115.0
v0.114.0
v0.113.0
v0.112.0
v0.111.0
v0.110.0
v0.109.0
v0.108.0
v0.107.0
v0.106.0
v0.105.0
v0.104.0
v0.103.0
v0.102.0
v0.101.0
v0.100.0
v0.99.0
v0.98.0
v0.97.0
v0.96.0
v0.95.0
v0.94.0
v0.93.0
v0.92.0
v0.91.0
v0.90.0
v0.89.0
v0.88.0
v0.87.0
v0.86.0
v0.85.0
v0.84.0
v0.83.0
v0.82.0
v0.81.0
v0.80.0
v0.79.0
v0.78.0
v0.77.0
v0.76.0
v0.75.0
v0.74.0
v0.73.0
v0.72.0
v0.71.0
v0.70.0
v0.69.0
v0.68.0
v0.67.0
v0.66.0
v0.65.0
v0.64.0
v0.63.0
v0.62.0
v0.61.0
v0.60.0
v0.59.0
v0.58.0
v0.57.0
v0.56.0
v0.55.0
v0.54.0
v0.53.0
v0.52.0
v0.51.0
v0.50.0
v0.49.0
v0.48.0
v0.47.0
v0.46.0
v0.45.0
v0.44.0
v0.43.0
v0.42.0
v0.41.0
v0.40.0
v0.39.0
v0.38.0
v0.37.0
v0.36.0
v0.35.0
v0.34.0
v0.33.0
v0.32.0
v0.31.0
v0.30.0
v0.29.0
v0.28.0
v0.27.0
v0.26.0
v0.25.0
v0.24.0
v0.23.0
v0.22.0
v0.21.0
v0.20.0
v0.19.0
v0.18.0
v0.17.0
v0.16.0
v0.15.0
v0.14.0
v0.13.1
v0.13.0
v0.12.0
v0.11.1
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.12
v0.2.11
v0.2.10
v0.2.9
v0.2.8
v0.2.7
v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.2
v0.2.1
v0.2.0
v0.1.0
Labels
Clear labels
burndown-2026-06
Backlog burndown June 2026
autonomy
async-consult
A human needs to consult on the issue to upgrade it to headless
autonomy
epic
This issue has many units of sub work - its size makes it meaningfully exclusive with other autonomy types
autonomy
headless
The agent can perform the work on its own
autonomy
live-collab
The agent and the human need to work together in realtime
coherence-core
Core review set for the warded control plane coherence milestone. These issues form the release spine; adjacent milestone issues are stretch or supporting work.
priority
P0
priority tier
priority
P1
priority tier
priority
P2
priority tier
priority
P3
priority tier
priority
P4
priority tier
qa-fixture
Disposable issue admitted to the bounded Ward QA verification lane.
role/ai
requires work from the AI Engineer role
role/creator
requires work from Content Creator role
role/design
requires work from the design role
role/director
requires work from the director role
role/engineer
requires work from the engineer role
role/exec
requires work from the exec role
role/human
requires a person, and specifically not an agent seat
role/ops
requires work from the ops role
role/qa
requires work from the QA role
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os#1078
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source
Upstream: https://github.com/Varnan-Tech/opendirectory, directory
skills/. MIT, org-owned, created 2026-04-13, last push 2026-08-14, 606 stars, 64 forks, 1 open issue, roughly 212 commits on main. The contents API confirms exactly 64 skill directories.Scope
15 of the 64 fall in Executive Strategist conceptual scope, drawn from tiers A and B of the exec triage.
These are judged against the generic exec charter, deciding where to invest attention across a portfolio, rather than against one operator's current situation. A skill earns a place here if it would serve any exec seat, not only this one.
The finding that matters
Every exec-relevant skill in this repo does the same thing. It acquires a signal.
That maps precisely onto
boundary-seek-external-validation, the boundary the exec role owns, which is the reach outside the local frame for confirmation. The repo is unusually well stocked there.The gap is the other half of the charter. Nothing here helps an exec decide once the signal is in hand. There is no option-scoring skill, no reversibility or stakes framing, no dissent capture, no revisit trigger. Locally that half is already covered by
tooling-director-decision-architectureandtooling-issue-prioritization, so the honest read is that this repo is a source of inbound instruments and not of judgment.That shapes the adoption plan. Take the collectors, wire their output into the deciders that already exist, and do not look here for a decision framework.
Candidate set, ranked by generic-exec value
Signal acquisition, strongest fit
hackernews-intel- tier A - external-community read, sits directly on the boundary exec ownsgh-issue-to-demand-signal- tier A - converts an issue corpus, an artifact most orgs already hold, into prioritization evidence. The most transferable idea in the repo.sdk-adoption-tracker- tier A - answers whether a shipped investment was actually taken up, which is the question exec review most often cannot answercompany-radar- tier B - landscape and peer-organization trackinglinkedin-job-post-to-buyer-pain-map- tier B - built as a sales tool, but the underlying move generalizes well. Public hiring data is structured, freely available, and an under-used read on where an organization is actually investing.google-trends-api-skills- tier B - external demand baselinenpm-downloads-to-leads- tier A - the download-telemetry half is adoption measurement and is the exec-relevant part. The lead-generation half is GTM and is out of scope here.Portfolio state and self-assessment
dx-roaster- tier B - audits the quality of a surface you own, pairs withtooling-agent-workflowsproduct-update-logger- tier B - portfolio state tracking across many repos, feeds any status rollupkill-the-standup- tier B - status aggregation. Weak for a solo operator, real for any exec with reports.External-party preparation
meeting-brief-generator- tier B - preparing for a counterparty is a core exec activity in nearly every seatposition-me- tier B - positioning strategy, shared with Content Creator scopeLaunch decisions, shared with Content Creator scope
oss-launch-kit- tier A - the go, no-go, and timing call is exec, the content production is Content Creatorproducthunt-launch-kit- tier B - same splitshow-hn-writer- tier A - same split, channel selection is the exec halfWhat was actually verified
Two of the 64 SKILL.md files were read in full,
linkedin-post-generatorandclaude-md-generator, plus one.env.exampleand the repo README. Nothing in the 15 above has been opened. The ranking is title-level plus repo metadata, so treat it as a sorting hypothesis.Known blockers in the two that were read
linkedin-post-generatorreadsCOMPOSIO_API_KEYand callslinkedin_create_linkedin_postagainst an OAuth-connected LinkedIn account, which is live publish authority brokered by a third party.claude-md-generatorshells out togenerativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContentwith$GEMINI_API_KEY, a backend-direct model call that violates the Agent Proxy transport rule.Both files opened carried an undeclared external dependency. Inference, not established: the signal-acquisition skills above are the category most likely to carry API keys and scraping behavior, since collecting external signal implies a data source. The observation that would settle it is the grep in step 1.
Acceptance criteria
references/and any.env.example..agents/composed/or.agents/skills/per the placement rule intooling-skill-authoring, one issue one commit.npx "@opendirectory.dev/skills", no/plugin marketplace add. Both write outside the canonical agent-compose and mcporter projection. Patterns are reauthored locally under MIT attribution.Related
Companion issue covers the Content Creator-scope subset of the same upstream repo.
oss-launch-kit,producthunt-launch-kit,show-hn-writer, andposition-meappear in both and should be resolved once, not twice.1.
hackernews-intelVerdict: reauthor. Keep the design, rewrite the plumbing.
156 lines. The data source is
hn.algolia.com/api/v1/search_by_date, a public API with no auth and no key. That is the cleanest data dependency in the whole set, and it is why this skill needs no credentials.It makes no LLM call at all. It is a poller, not a generator. Worth noting because it means the Agent Proxy question never arises.
The design holds up. SQLite dedup cache keyed on
objectID, an optionalHN_MIN_POINTSfloor to cut noise on broad keywords,--dry-runto preview before alerting anyone,--resetwhen the keyword list changes, and comment monitoring off by default because comments generate far more volume than stories.Blocker, and it is embarrassing: Steps 1b and 2 hardcode
/Users/ksd/Desktop/Varnan_skills/hackernews-intel. The author's own laptop path shipped to 606 stargazers. The skill cannot run anywhere as written, and nobody caught it.Credit where it is due: it is honest about the GitHub Actions caveat. Actions does not persist files between runs, so the dedup cache resets every run and everything inside the lookback window re-alerts. The skill says so and suggests S3 or a dedicated branch. Most skills here would have shipped that silently.
Exec read: this is the only skill in the set that instruments the boundary exec owns, external community signal, with no vendor sitting between you and the source. The Slack webhook is the sole egress and it is trivially replaceable with Discord, which this estate actually runs.
Take the dedup-cache-plus-threshold pattern. Drop every path and the Slack coupling.
2.
gh-issue-to-demand-signalVerdict: adopt the method. This is the best-engineered skill in the repo.
638 lines. Only
GITHUB_TOKEN, and it is optional, degrading to the 60 req/hr unauthenticated limit with a clear warning. No LLM key anywhere, because it uses the calling agent as the model. That is the correct architecture and almost nothing else in these 64 gets it right.The engineering is real. All noise filtering happens in local Python before anything reaches the model: pull requests dropped by checking for the
pull_requestkey, bot authors dropped byuser.type, conventional-commit and dependabot titles dropped by regex, zero-engagement issues dropped outright. Only then does the model classify.Anti-hallucination is structural rather than aspirational. Step 7 checks every classified issue number against the real fetched set and deletes inventions rather than warning about them. Titles must be verbatim. It hard-stops under 10 surviving issues instead of clustering sparse data into meaningless categories.
The idea worth stealing is the ignored-demand heuristic:
reactions >= 10 AND age_days >= 180 AND no planned/roadmap/wip label. Three criteria, all required, and the QA step re-verifies them and demotes anything that slipped through. That is a defensible definition of a neglected gap rather than a vibe.The scoring is
reactions * 2 + comments * 0.5, with a stated reason for the weighting: comments include maintainer replies, off-topic discussion, and spam, so a thumbs-up is the cleaner signal. Defensible, and rare that the reasoning is written down.Exec read: it is framed as competitor intelligence, but the mechanism is indifferent to whose repo it points at. Aimed at your own backlog it becomes prioritization evidence, which is the exec charter directly. The GTM messaging brief in Step 6 is the only part that is not exec work, and it detaches cleanly at the step boundary.
Caveat: writes to
docs/demand-signals/in the working directory. It mutates whatever repo you run it in.Forgejo's issues API is close enough to GitHub's that the port is mechanical.
3.
sdk-adoption-trackerVerdict: do not run as written. Security defect in the shipped skill body.
808 lines, the longest in the set and the most carefully scored. It is also the one I would flag hardest.
Blocker: Step 3 and Step 5 both call
ssl._create_unverified_context()and then sendAuthorization: Bearer $GITHUB_TOKENover those contexts.TLS certificate verification is disabled while a credential is in flight. There is no reason for it against
api.github.com. It reads like someone silenced a local certificate error and shipped the workaround into a skill with 606 stars behind it. Anyone who installs this and sets a token is sending that token over unverified TLS.That single line moves this from tier A to blocked. The rest of the skill being good makes it worse, not better, because the quality invites trust.
Secondary sloppiness: Step 3 calls
urllib.parse.quoteat line 196 but only importsurllib.parseat line 243, after the loop it is used in. It works by accident, becauseimport urllib.requestpullsurllib.parsein as a side effect. Accidental correctness in the same file as a deliberate TLS bypass.What is genuinely good: the scoring is explicit and defensible. Organization ownership 50, populated company field 20, stars capped at 50, pushed within 30 days 30 and within 7 days another 20, not-a-fork 10, not-archived 10. Tutorial noise is filtered by a word list covering example, tutorial, demo, sample, starter, boilerplate, playground. It also handles the GitHub code search secondary rate limit honestly, exiting early and recording a flag rather than silently truncating.
Exec read: this answers "did the thing we shipped actually get taken up", which is the question exec review most often cannot answer. High value, and the scoring design is worth reauthoring from scratch against the same GitHub endpoints.
Reauthor, never adopt. The TLS line is the reason.
4.
company-radarVerdict: discard as a unit. It is a dependency manifest for the tier-D backlog.
410 lines, and it is an orchestrator rather than a skill. Its own text says so: "It delegates data collection to existing opendirectory micro-skills and coordinates their output."
Here is what it delegates to, from the shipped mapping table:
twitter-GTM-find-skill,reddit-icp-monitor,reddit-post-engine,yc-intent-radar-skill,pricing-finder,map-your-market,competitor-pr-finder,producthunt-launch-kit,gh-issue-to-demand-signal,hackernews-intel.Six of those are tier D in the triage. Adopting company-radar means adopting the GTM backlog it sits on top of, which is the opposite of what the exec issue is trying to do.
It also references
yc-jobs-scraper, which does not exist among the 64 directories. A dead handoff shipped inside the mapping table nobody checked.TAVILY_API_KEYis required and the skill hard-stops without it, so a paid search vendor sits in the critical path of every run.Credit where due, and it is real: Step 3b stops and makes the human confirm the discovered handles before signal collection begins, on the explicit reasoning that wrong handles produce wrong signals. "Wait for user confirmation. Do not skip this step." That is better instinct than most of this repo shows, and it is the correct place to put a gate.
The heat score is also a real artifact, not hand-waving. Four dimensions capped at 25 each, authority from stars and forks and votes, shipping from commit and release cadence, social from mentions across channels, growth from job count and department diversity. The formulas are printed in the SKILL.md for transparency and implemented in a bundled script. Missing signals score 0 with an explicit "never estimate data" rule.
Exec read: the concept, one scored dashboard across many independent channels, is exactly what an exec wants and the repo does not otherwise provide. The implementation buys it by taking on eight skill dependencies and a paid vendor.
Take the four-dimension capped-scoring shape and the confirm-before-collect gate. Leave the orchestrator and everything under it.
5.
linkedin-job-post-to-buyer-pain-mapVerdict: reauthor the idea. Discard the implementation.
301 lines. Different author from the house account,
ajaycodesitbetter, and the difference shows in both directions.The genuinely good part, and this one surprised me: it carries an explicit ethical rule, stated before Step 1.
The Step 7 self-QA re-checks it as a line item. Nothing else in the 15 has an ethics clause at all, and this is the skill that most needed one, since job posts are written by and about identifiable people.
The input model is also right. The human pastes the job descriptions. The skill does not scrape LinkedIn, which sidesteps the terms-of-service problem the
xquikscrapers in tier D walk straight into.Blocker: two backend-direct Gemini calls to
generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContentwith$GEMINI_API_KEY, and Step 1 hard-stops without the key. Agent Proxy is not optional in this estate, so this is a rewrite rather than a port. The irony is that the skill does not need a separate model at all. The calling agent could do both synthesis steps, exactly asgh-issue-to-demand-signaldoes.I stand by the ranking on the underlying move. Job postings are public, structured, and self-reported by an organization about where it is choosing to spend. Reading them as an investment signal generalizes well past sales, and no other skill in the repo mines a source that is simultaneously that candid and that ignored.
The scoring is auditable, which matters more than whether the weights are right:
round((0.4 * signal_strength + 0.3 * urgency + 0.3 * icp_fit) * 10), with every sub-score requiring a one-sentence explanation and every inferred pain requiring a quoted phrase from the source post.Everything downstream of Step 6 is a handoff object built for
outreach-sequence-builder, which is tier D. Cut the skill there and keep Steps 3 through 5.6.
google-trends-api-skillsVerdict: discard from exec scope. I misplaced this one on the title.
Correction to the ranking in the issue body: this is not an external demand-signal instrument. It is SEO keyword research for blog writing, and it belongs in Content Creator scope if it belongs anywhere. Ranking it at 6 in exec scope was a title-level error, and reading it is what caught it.
The directory is also malformed as a skill. There is no
SKILL.mdat the top level. It contains two nested directories:seo-keyword-research, which holds the only SKILL.md, andgoogle-trends-api, which has scripts and references but no SKILL.md at all. As shipped it does not present as one installable skill, and the CLI's install path would have to guess.Third-party author again,
farizanjum. Worth noting that this is the only skill among my 15 carrying anallowed-toolsfrontmatter key, scoping itself toBash(python:*) Bash(curl:*) Read. That is the correct instinct and nobody else in the set applied it.Requires
SERPAPI_KEY. The free tier is 250 searches a month, and to its credit the skill budgets against that honestly with a table: 2 calls per blog gives 125 blogs a month, 3 calls gives 83, 4 gives 62. It defaults to the cheapest path and tells you when to spend more.The content itself is competent but dated. Keyword density targets of 1 to 2 percent, long-tail questions as H3 headings, featured-snippet targeting. That is a 2019 playbook, and this same repo sells generative-engine optimization elsewhere as the thing that replaced it. The two skills disagree with each other.
Nothing here serves attention allocation across a portfolio. Moving it out of the exec issue entirely rather than ranking it low.
7.
npm-downloads-to-leadsVerdict: adopt the telemetry half. Cleanest dependency profile in the set.
670 lines and it needs no credentials at all. The skill states it plainly: "No required keys. The npm API and npm registry are fully public with no authentication."
GITHUB_TOKENis optional and only widens maintainer enrichment. Nothing else in the 15 is this cheap to run, and it is the only one that could execute today with zero setup.The velocity math is the substance:
where growth is the recent 4-week average over the prior 4-week average, and acceleration is the last 2 weeks over the 2 before that. So a package has to be growing and growing faster to score.
The
noise_factoris the insight. It penalizes both ends, scaling down under 500 weekly downloads and scaling down again above 500,000. The effect is that the skill structurally refuses to rank React first, and it says why in its own Common Mistakes table: "Raw downloads favor React and lodash, which are not leads. A package going from 1K to 8K/week is more actionable than React at 50M/week."That is a correct and slightly unusual position. Download counts are the standard vanity metric in this space and this skill declines to report them as achievement.
Exec read: split it at Step 5. Steps 3 and 4 are the velocity leaderboard, which is adoption telemetry and answers whether your own published artifacts are moving. That is exec work. Steps 5 through 8 fetch maintainer profiles and draft outreach messages, which is GTM and is not.
Kai already ships npm, homebrew, and scoop artifacts, so the input exists and the npm half runs unmodified.
Minor: writes to
docs/npm-leads/in the working directory.8.
dx-roasterVerdict: adopt. Best-specified skill in the set and the only one with no dependency problem at all.
271 lines, no required environment variables, uses the
ghCLI that is already installed, and it declares itself read-only: "Does not modify the target repo (read-only scan)."It has the thing nearly every other skill here lacks. A "What this skill does NOT do" section, and an error-handling table naming four specific failure modes with defined behavior for each, including missing README, private repo without auth, and a benchmark URL that fails to fetch. That is what a maintained skill looks like.
Ten fixed dimensions scored 0 to 10, and the rule that keeps a rubric honest: "Missing data = score 0, not N/A." Rubrics rot when absence is allowed to be neutral.
The action plan ranks by
impact / effort_minutesrather than by severity, and the SKILL.md defends the choice: "A 5-minute fix that adds 10 points ranks above a 2-hour fix that adds 12 points." Most audit tooling gets this backwards and hands a maintainer a list sorted by how bad things are rather than by what to do first.It also ships this as a hard rule: "Never name maintainers or contributors. Roast the work, not the people."
Exec read: this is portfolio self-assessment, and it is the closest thing in the entire repo to a launch readiness gate. The standing problem in this portfolio is infrastructure that nobody clones, and the first five minutes of a README is where that gets decided. Run across every repo it produces a comparable 0 to 100 score per repo, which is precisely the kind of number an exec can allocate attention against.
Caveat: the optional
compare_tobenchmark clones a third-party repo to a temp directory. Bounded, and it deletes after.The only real friction is the roast voice, which is not the house register. Set
tone: honest, ignorebrutal, and keep the rubric and the impact-over-effort ordering. Those are the transferable parts.9.
product-update-loggerVerdict: reauthor the changelog half. Note that half of it belongs in the companion issue.
462 lines.
GITHUB_TOKENoptional, reads local git directly, no LLM key. Cheap to run and cheap to evaluate.It stops and asks, which is the behavior I most want to see and least often find here. Step 3 shows the gathered item list and waits before transforming anything, with the reasoning stated in the Common Mistakes table: skipping the confirmation "prevents wrong-branch commits or stale items."
The anti-fabrication rule is blunt and correct: "Do NOT invent outcomes or metrics. '40% faster' must come from the source data. If no number is in the commit or PR, do not add one." The Step 6 self-QA then greps its own output for banned words, over-length tweets, hashtags, and markdown that would render literally on LinkedIn.
Scope note: four of the six things it emits are a tweet thread, a LinkedIn post, an email snippet, and a one-liner. That is Content Creator output, not exec. Only the changelog is portfolio state. The skill is doing two jobs and only one of them is mine to judge.
Watch item: Step 7 prepends directly into
docs/changelog.md, creating the file if absent, with no diff or review gate. Across a many-repo portfolio that is a mutation you want in front of a human before it lands. Everything else in this skill asks first, and then the write step does not.Exec read: the changelog half answers "what actually shipped across the portfolio this period", which is the raw material for any status rollup and which nothing else in the set produces. Take Steps 1 through 4 and 7. Route Step 5 to the Content Creator issue, where the tweet and LinkedIn generation should be judged against
voice-corpusrather than against this skill's generic founder-voice rules.10.
kill-the-standupVerdict: discard. Wrong tools all the way down, and it does not do the thing I ranked it for.
169 lines, the shortest real workflow in the set. It hard-stops without both
LINEAR_API_KEYandSLACK_WEBHOOK_URL.This estate runs Forgejo and Discord. Linear and Slack are both absent, so there is no adoption path here, only a from-scratch rewrite against different APIs. At that point the 169 lines are worth less than the time spent reading them, because the Linear GraphQL query and the Slack block payload are most of the file.
Correction to my own ranking: I placed this as status aggregation for an exec with reports. Having read it, it is a personal standup writer for one authenticated user. It fetches issues assigned to
viewerand commits authored by one GitHub username. There is no rollup across people, so it does not do the exec thing I ranked it for. It is an IC convenience tool.The transferable part is small but real, the formatting discipline in Step 4: no first-person pronouns, past tense for Done and present continuous for Doing, explicit "Nothing completed." rather than an empty section, under 200 words. That is a decent spec for any terse status format and it is four lines long.
It does ask before posting to Slack rather than posting silently, which is the right default for anything with external egress.
Discard. If a daily or weekly rollup need surfaces later, build it against Forgejo directly and borrow the four formatting rules.
11.
meeting-brief-generatorVerdict: reauthor, cheaply. And name the people-research surface explicitly before anyone runs it.
275 lines. Three vendors: Tavily required, Gemini required, Notion optional. Two hard stops before it does any work.
Blocker: the same backend-direct
generativelanguage.googleapis.comcall with$GEMINI_API_KEY. Agent Proxy violation, so this is a rewrite regardless of anything else.The research design is genuinely sound and is the part worth keeping. Six fixed searches against the company covering overview, recent news scoped to the last month, tech stack, product and pricing, competitors, and funding. Results are filtered at a Tavily relevance score of 0.5, and any section without qualifying results is written as "Limited public information found" rather than filled in from model memory. The critical rule is stated up front and in capitals: "DO NOT INVENT SPECIFICS."
The thing that needs naming: searches 7 and 8 fire only when a contact name is supplied, and they build a dossier on a named individual, including an explicit LinkedIn background sweep. For interview prep or a scheduled call this is ordinary professional preparation and I am not flagging it as misconduct. It is still automated research on a private person, and a reauthored version should keep it opt-in, keep it out of tracked files, and not retain it after the meeting. Worth noting that the skill's own default output target is Notion rather than a repo, which happens to be the safer choice.
Exec read: preparing for a counterparty is core exec activity in nearly every seat, and I stand by that ranking. But the actual value here is thin. Strip the vendors and what remains is six well-chosen queries plus a synthesis prompt plus one honesty rule. That is the whole skill.
This is the cheapest reauthor in the set. Replace Tavily with the search tooling already wired into this estate, drop Gemini entirely and let the calling agent synthesize, keep the six-query structure and the "Limited public information found" discipline. An afternoon, not a project.
12.
position-meVerdict: discard. I misread the title, and the implementation is the worst-written artifact in my 15.
Correction to the ranking: this is not a positioning-strategy skill. It is a website SEO, AEO, and UX audit agent that crawls a site page by page and scores it. It has nothing to do with personal or product positioning, and nothing to do with the bio surface or the job search, which is why I ranked it. Title-level error, caught by reading it.
Malformed the same way
google-trends-api-skillsis: no top-level SKILL.md, the real file is nested atposition-me/position-me/SKILL.md.Hard external dependencies on two third-party GitHub projects,
chrome-devtools-mcpandchrome-cdp-skill, both declared mandatory in the same sentence: "Both are strictly required." It also needs Chrome running with remote debugging enabled, with Playwright as a fallback. That is three moving pieces outside this estate for a website audit.The prose is the real problem. "You are an absolute master of digital positioning." "EXHAUSTIVE, multi-page, psychologically-driven, and ruthless." "A massive, comprehensive, scored report." "Wow-factor report." And CRITICAL RULE 2 is literally "DO NOT BE LAZY."
Instructing a model to produce a "massive" report is an instruction to pad, and it is the exact inverse of the prose and comment discipline this estate enforces. A skill that has to tell the model not to be lazy has not specified its output.
The no-emoji rule appears three separate times in a roughly 50-line file, which tells you precisely what kept going wrong during authoring.
One salvageable idea: checking a site for
llms.txt,sitemap.xml, and JSON-LD structured data as AI-readiness signals. That overlapsllms-txt-generatorandgeo-gap-fixerand should be taken from those instead, where it is the primary subject rather than a bullet.13.
oss-launch-kitVerdict: discard. This is the largest gap between the title ranking and the artifact in the whole set.
I ranked this first in tier A and first overall in the launch group. Having read it, it is the weakest thing in my 15 and I was wrong.
The SKILL.md is 33 lines and contains no procedure. No steps, no checks, no output contract, no inputs. It is marketing prose about being "the root orchestration layer" and "the Strategic Entry Point", bold and capitals in the original. The entire body is five bullets under "How it works" and six under "When to use."
There are five Python scripts in the directory including a working
run.pyCLI that takes--repo-url, fetches repo context, builds a product brief, and renders a launch kit to markdown. It functions.The SKILL.md never mentions any of them. An agent that loads this skill gets 33 lines of positioning copy and no instruction to run the thing that does the work. As an agent-facing artifact it is broken in the most basic way available: the interface does not reference the implementation.
It also ships committed bytecode,
scripts/__pycache__/build_product_brief.cpython-313.pycandgenerate_assets.cpython-313.pyc. Nobody has reviewed this directory.Version
0.2.0, the only sub-1.0 version among my 15. The author knows it is not finished, and the repo shipped it in the top tier of its own marketing anyway.What it actually does is hand off to other skills:
show-hn-writer,producthunt-launch-kit,reddit-post-engine,tweet-thread-from-blog,linkedin-post-generator. Same pattern ascompany-radar. An orchestrator whose real content is the dependencies it drags in, three of which are outside exec scope and one of which is tier D.Exec read: the go, no-go, and channel-fitness decision is real exec work and I ranked this skill because that decision is valuable. The repo does not contain it. The closest thing to a launch readiness gate in all 64 is
dx-roaster, which actually scores a repo against ten dimensions and produces a number. Use that as the gate and let this go entirely.14.
producthunt-launch-kitVerdict: discard from exec scope. Hand the useful half to Content Creator.
380 lines, and substantially better built than
oss-launch-kitdespite ranking below it in the title pass. Real steps, real constraints, real failure modes.The constraints are specific and checkable, which is what makes a launch-asset skill useful rather than decorative. Taglines capped at 60 characters, descriptions at 500, gallery images at 1270x760 with a maximum of 8. It names the failure mode most listings actually hit, which is a weak or absent gallery, and gives a five-position framework for what each image has to accomplish: hero, feature demo, before and after, social proof, technical differentiator.
The guardrails are honest ones: never make factual claims that cannot be verified, never name competitors, and never say "free" unless the product is permanently free rather than on a trial. That last rule is the kind of thing that only gets written down by someone who watched a launch go badly.
Blocker:
GEMINI_API_KEYand the same backend-directgenerativelanguage.googleapis.comcall. Agent Proxy violation, consistent with the rest of the repo.Exec read, and this is why it leaves my scope: I ranked it on the assumption that the go, no-go and timing call would live here. It does not. Step 1 asks the human for the launch date as an input. There is no channel-selection logic, no readiness gate, no timing recommendation. The skill is entirely asset production from a decision already made, which is Content Creator work start to finish.
Product Hunt is also a weak channel for developer infrastructure relative to Hacker News, so even on the creator side this ranks below
show-hn-writerfor this portfolio.Moving it to the companion issue rather than ranking it in exec scope.
15.
show-hn-writerVerdict: read it for the findings, discard the artifact, and treat every number in it as unverified.
302 lines and the most interesting thing in the repo to read. It is also the one where checking the methodology pays off hardest, which makes it the most instructive item in this whole evaluation.
The claim is unusual for a skill: patterns extracted from "250 top HN posts scraped April 18 2026", with a
data-sourcefield in the frontmatter. It then reports averages by title length, by prefix, by theme, and by grammatical person, and instructs the agent that these findings "override any received wisdom about HN writing."The methodology does not support the conclusions.
Every post in the sample is a top-250 post. There is no control group of low-scoring or median posts anywhere in the design. You cannot infer that short titles cause high scores from a sample selected on high scores, because the short titles that failed are never observed. This is selecting on the dependent variable, and the headline claim, "title length is the single strongest predictor of score", rests entirely on it. The honest version of that finding is "among posts that already succeeded, shorter titles are more common", which is a much weaker statement and does not license the prescription.
Several conclusions also rest on samples the skill quietly treats as equal to the large ones:
That last one matters. The author clearly knows what small-n means and applied the caveat once, then omitted it from the two findings that drive the actual instructions.
The advice is still probably good, which is the awkward part. "A topic is 'WordPress plugin security'. A story has an actor, an action, and stakes" is a real and useful distinction. "Show HN: suppresses score, so always draft a plain-title alternative" is a genuinely counterintuitive prompt worth having. Good advice on unsound evidence, presented as settled measurement.
Blocker, and this one is the most serious credential issue in the set. The
.env.examplerequests:for "direct post submission." Hacker News has no submission API. Direct posting means driving a login form with a stored account password. Do not put an HN password in a dotenv, and do not automate submissions against that account.
Compounding it: neither
HN_PASSWORDnor the also-declaredGEMINI_API_KEYappears anywhere in the 302 lines of SKILL.md. The env file is orphaned configuration describing a capability the skill does not implement, which means the credential surface was written before the feature and shipped regardless.Exec read: the channel-selection judgment, score versus comments and plain title versus Show HN prefix, is genuinely exec work and the only place in the repo where it appears. Take the findings as hypotheses to test against a real posting rather than as calibrated numbers. Discard the artifact. Never wire the credentials.
Cut line: Reauthor and above
Eight of the fifteen clear the bar. Seven are dropped and their comments stand as the record.
Is any of the code critical
No. Not in one skill.
dx-roaster,meeting-brief-generator, andlinkedin-job-post-to-buyer-pain-maphave zero scripts.gh-issue-to-demand-signalhas no script either, only inline heredocs.monitor-hn.js,fetch.pytwice, andgather.py. Nothing there is beyond the agent's existing tools.Two honest exceptions, neither of which survives as a reason to port code.
hackernews-inteldedups against a SQLite cache andsdk-adoption-trackerdiffs against the previous snapshot to compute "new since last run". An agent has no memory of its last run. That is a store rather than an algorithm, and a JSON file the agent reads and rewrites covers it.gh-issue-to-demand-signalStep 7 checks every classified issue number against the real fetched set. When the same model both classifies and verifies, the check correlates with the error it is hunting. That is a real argument for deterministic code, and it is about twenty lines. Keep it as a rule in the reauthored skill even if it stays prose.One caveat worth carrying forward: anything producing a tracked number over time needs the computation to be stable, or the trend line is noise rather than signal. That applies to
tooling-adoption-telemetryandtooling-package-velocityspecifically. It argues for pinning the formula, not for importing the file.What is actually load-bearing
The constants and predicates. Everything else is plumbing. This is the full extractable asset from roughly 3,600 lines:
pull_requestkey, a Bot author, a conventional-commit title, or zero reactions and zero comments.Fifteen rules. That is the port.
Adopt
Namespace prefixes are needed regardless, since nothing here matches local convention.
dx-roasterbecomestooling-repo-dx-audit- the roast voice is not the house register, so name it for the function. Ten dimensions, impact over effort ordering, read-only.npm-downloads-to-leadsbecomestooling-package-velocity- the name drops the lead-generation half exactly as the skill should. Runs today against npm, homebrew, and scoop with no credentials.gh-issue-to-demand-signalbecomestooling-issue-demand-signal- sits directly alongsidetooling-issue-prioritizationandtooling-issue-decomposition, which is where it belongs. Ported to the Forgejo issues API.Reauthor, with proposed names
hackernews-intelbecomestooling-hn-signal-watch. Vendor-named on purpose, matchingtooling-forgejo-issue-counts. "Intel" oversells a keyword poller. Keep the dedup-plus-threshold pattern, drop the hardcoded/Users/ksd/Desktop/paths and the Slack coupling. Discord is the egress here. If Reddit and Discord variants follow, generalize the name then, not now.sdk-adoption-trackerbecomestooling-adoption-telemetry. "SDK" is wrong for this portfolio, which ships CLIs, Helm charts, MCP servers, and pre-commit hooks rather than SDKs. "Adoption telemetry" holds the question, did anyone take this up, across every artifact type. Rebuild the scoring from the constants above and never carry thessl._create_unverified_context()line across.linkedin-job-post-to-buyer-pain-mapbecomestooling-hiring-signal-read. Strips both the vendor lock and the sales framing. What it does is read hiring posts as a statement about where an organization is spending, which serves interview prep, competitive read, and market read without a third rename. Keep the pasted-input model and the protected-characteristics rule verbatim. Drop Gemini entirely, the calling agent does the synthesis.product-update-loggerbecomestooling-shipped-rollup. Only the changelog half comes across. "Rollup" is the exec word and avoids colliding with the per-repo changelog file the skill writes. Keep the confirm-before-transform gate, and add the review gate the original is missing before it prepends to a tracked file. The four content artifacts go to the companion issue.meeting-brief-generatorbecomestooling-counterparty-brief. "Meeting" is too narrow and "generator" is noise. "Counterparty" also names the people-research surface honestly, which is the thing a reader should notice before running it. Keep the six fixed queries, the 0.5 relevance floor, and the "Limited public information found" discipline. Replace Tavily with local search tooling, drop Gemini, keep contact research opt-in and out of tracked files.Consequence for the acceptance criteria
Criterion 6 in the issue body assumed a port. It is not one. No upstream file, script, or dependency enters this estate. Each of the eight becomes a SKILL.md authored under
tooling-skill-authoring, carrying the constants above and using the agent's own tools for fetch, filter, and write. MIT attribution in each skill's provenance line covers the rules and thresholds, which is the only thing actually being taken.Parked against the active career freeze
This evaluation is sound and it is answering the wrong question. Parking it rather than proceeding to authoring.
Constraint that governs it.
coilysiren/inbox#283Phase 1 freezes "new flagship projects, research programs, and recurring manual obligations unless they replace an existing commitment", and its portfolio constraint caps the estate at one flagship proof artifact, one active research question, one community commitment, and one consulting pilot for the duration of the program.coilysiren/inbox#299is open at P2 and carries the same constraints forward, with an explicit instruction to agents: "Prefer making Kai's existing qualification legible over proposing another large build."Adopting three skills and reauthoring five is eight new recurring obligations. The comment above proposing exactly that was written without reading either issue.
The diagnosis in the durable record is different from the one this issue assumes. Per
#299: "The current career problem is not qualification. It is legibility." This issue framed the exec-scope subset as signal acquisition and demand instrumentation.coilysiren/lore/docs/career-direction.mdalso pre-registers the specific error made in the thread above: "Audience growth, repository activity, friendly interest, or a coherent portfolio do not prove customer demand."Unblock condition. Revisit when either of these is true:
#283decision checkpoint on 2026-09-30 selects a path, and the portfolio constraint lifts or changes.#284proof package exposes one of these eight as the missing proof step.#299allows work only on that basis, and requires naming the blocked slide, the missing evidence, and the smallest completion condition first.What survives without conditions. Nothing in this repo enters the estate. The record that has standing regardless is the negative one, and it stays useful whenever anyone next points at
Varnan-Tech/opendirectory:ssl._create_unverified_context()carrying aGITHUB_TOKENinsdk-adoption-trackerHN_PASSWORDfield inshow-hn-writerfor a feature that skill does not implementgenerativelanguage.googleapis.comreferences across the repoThe fifteen per-skill comments stand as the evaluation record. No further work on this issue until an unblock condition is met.