Skip to content

add tags - #29

Merged
dgorodnichy merged 2 commits into
masterfrom
add-tags
Aug 27, 2024
Merged

dgorodnichy merged 2 commits into
masterfrom
add-tags

Conversation

@AucT

@AucT AucT commented Aug 27, 2024 •

Copy link
Copy Markdown
Collaborator

tags will be with short link

/tags/:tag

Summary by CodeRabbit

  • New Features

    • Enabled taxonomy and term content types in the site configuration.
    • Introduced clickable tag links in blog post layouts for improved navigation.
    • Added a tags section in individual blog posts for better content discoverability.
    • Enhanced header functionality to display context-sensitive content based on page type.
    • Included Open Graph and Twitter card tags for optimized social media sharing.
  • Bug Fixes

    • Streamlined tag rendering process for better performance and readability.

@coderabbitai

coderabbitai Bot commented Aug 27, 2024 •

Copy link
Copy Markdown
Contributor

Walkthrough

The changes involve modifications to the hugo.toml configuration file, primarily altering the disableKinds setting to enable taxonomy and term content. Updates were also made to the blog post layout templates, enhancing the rendering of tags and introducing a new section for displaying them. Conditional rendering was added to the header template to adapt based on the page type, specifically for tag-related content.

Changes

Files Change Summary
hugo.toml Changed disableKinds from ["taxonomy", "term"] to [], enabling all content types; updated blog permalink.
themes/beaver/layouts/_default/list.html Simplified tag rendering by directly generating clickable links for tags without intermediate steps.
themes/beaver/layouts/blog/single.html Added a new section for displaying tags as clickable links after the post title.
themes/beaver/layouts/partials/page/header.html Introduced conditional rendering to include a partial template for tag-related content and added Open Graph tags.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Header
    participant TagPartial

    User->>Header: Access blog page
    Header->>Header: Check page type
    Header->>TagPartial: Include "header/blog.html" if type is "tags"
    TagPartial-->>Header: Render tag-specific content
    Header-->>User: Display updated header
Loading

🐇 Hop, hop, hooray! The tags are now free,
With links that bounce like a bumblebee!
In the header they dance, in the list they play,
Our blog's now a garden, come explore the way!
🥕✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8b195d9 and 8d1b0c5.

Files selected for processing (4)
  • hugo.toml (1 hunks)
  • themes/beaver/layouts/_default/list.html (1 hunks)
  • themes/beaver/layouts/blog/single.html (1 hunks)
  • themes/beaver/layouts/partials/page/header.html (1 hunks)
Additional comments not posted (6)
themes/beaver/layouts/blog/single.html (1)

27-27: LGTM!

The new HTML element for displaying tags is correctly implemented and enhances the user experience by making tags accessible as clickable links.

The code changes are approved.

themes/beaver/layouts/_default/list.html (1)

50-50: LGTM!

The new implementation for rendering tags is correct and simplifies the code by removing the need for an intermediate variable, enhancing readability and efficiency.

The code changes are approved.

hugo.toml (1)

8-8: LGTM!

The modification to the disableKinds setting is correct and allows for the inclusion of taxonomy and term-related content.

The code changes are approved.

themes/beaver/layouts/partials/page/header.html (3)

90-90: LGTM!

The conditional check for .Type being "tags" is correctly implemented.

The code changes are approved.


91-91: LGTM!

The partial template "header/blog.html" is correctly included when .Type is "tags".

The code changes are approved.


92-92: LGTM!

The conditional block is correctly ended.

The code changes are approved.

@dgorodnichy

Copy link
Copy Markdown
Collaborator

@AucT , Сделай пожалуйста еще чтобы эти теги на индексной странице тоже были кликабельные:
Screenshot 2024-08-27 at 12 45 47

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 8d1b0c5 and 0fd2671.

Files ignored due to path filters (1)
  • content/blog/og-blog.jpg is excluded by !**/*.jpg
Files selected for processing (4)
  • content/blog/_index.md (1 hunks)
  • hugo.toml (1 hunks)
  • themes/beaver/layouts/blog/list.html (1 hunks)
  • themes/beaver/layouts/partials/page/header.html (2 hunks)
Files skipped from review due to trivial changes (1)
  • content/blog/_index.md
Files skipped from review as they are similar to previous changes (2)
  • hugo.toml
  • themes/beaver/layouts/partials/page/header.html
Additional comments not posted (1)
themes/beaver/layouts/blog/list.html (1)

50-50: LGTM!

The code segment simplifies the way tags are displayed for each blog post and improves readability and maintainability. The tags are now formatted as clickable links that enhance user navigation.

The code changes are approved.

@dgorodnichy

Copy link
Copy Markdown
Collaborator

LGTM. Checked on my local environment.

@dgorodnichy
dgorodnichy merged commit 389dcf0 into master Aug 27, 2024
@dgorodnichy
dgorodnichy deleted the add-tags branch August 27, 2024 10:39
@coderabbitai coderabbitai Bot mentioned this pull request Nov 21, 2024
pftg added a commit that referenced this pull request Jul 26, 2026
…print 3

Batch-1 Phase-1 pre-research (first live send-run, Claude-in-Chrome) found
3 of 5 curated openers unsendable: a 6-year-old post (Saul_E), a ~1-year-old
comment mis-routed as a post (Afrikonnect), and a thread saturated by a
competing "free" pitch (SANICE_AI). Root cause: the grooming rubric's
"recent, not dead" check was eyeballed from search excerpts — timestamps
were never read from the opened threads.

- t4-t5-grooming.md: Vote 3 → v2 rubric (5 checks: who / what /
  when-VERIFIED / where-routing / thread-health); verified-date +
  thread-health are now P8 admission columns; quality over quota
- Paul's policy split codified: LEADS need verified ≤30-day timestamps
  (all venues, no exceptions); VoC quotes have NO age limit — stale-dropped
  threads still feed voice-of-customer.md in the same visit
- SEND-SHEET.md: per-message GO/HOLD banners — batch-1 now 0-for-5 under
  the flat rule (Joy Adamson flagged as Paul's one override candidate)
- send-runner-prompt.md: Phase 0 login check + Phase 1 timestamp read
- backlog.md + operation-runbook.md: retro recorded, Sprint 3 (Fresh-Leads)
  planned — #29 re-source v2 is the critical path; F5Bot v2 keyword swap
  (Paul, ~2 min) is load-bearing
- .okf: outbound-sprint concept + log entry (validated --strict, conformant)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pftg pushed a commit that referenced this pull request Aug 7, 2026
Four-agent re-review (market, SEO, competitor, goal-alignment) of the content
plan against the 2607 bet. 20.09 supersedes 20.08's allocation, cadence, and
click projection; 20.08's GSC analysis stands and is kept.

The finding that reorders everything: 2607's own rabbit-hole says "never ship a
content sprint while the outreach is stalled," and outreach IS stalled -
backlog.md:95 records all batch-1 messages on HOLD with zero sendable rows, card
#12 blocked on #29. Four Rails deep-dives shipped Jul 22 - Aug 7 regardless.
Content is not the binding constraint; prospect sourcing is. P0 is now unblocking
the pipeline, not writing.

Cheapest high-value fix, no new content: /services/vibe-code-rescue/ carries the
full offer and has ZERO inbound links from 608 blog posts. Six pre-qualified
rescue posts link to it zero times.

Corrections to 20.08's assumptions, all verified: real capacity is ~6 posts/month
(June 2026 published zero) against an assumed 2-3/week; seven queued rows
duplicate posts already on disk and F2 already shipped into a 4-post Rails-8-auth
cluster; the 435-click snippet projection predates AI Overviews.

News policy added per the flexibility question: one test - will someone search
this in six months? Durable news (CVEs, releases, EOLs) swaps against a queued
row, never adds a slot. Event news goes to LinkedIn only; the PocketOS post
scored 48/50 and earned 1 click in 3 months. Version-current posts incur refresh
debt, so 1 refresh slot/month is budgeted.

Pointers repointed to 20.09 (GOAL-AT-A-GLANCE, blog-pipeline STEP 1) with the P0
outreach gate added ahead of topic selection. OKF bundle + log synced.

Four open questions left for Paul rather than decided: fresh GSC export, what
June was, the deliberate price undercut vs our own "cheap developers are
expensive" thesis, and the now-contested "vibe code rescue" category name.

bin/hugo-build green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RHgyr6mEXghWSzipXnzQuY
pftg added a commit that referenced this pull request Aug 8, 2026
Re-review of the content plan against the 2607 bet, current SEO state, and the
August market. 20.09 supersedes 20.08's allocation, cadence, and click
projection; 20.08's GSC analysis stands and is kept.

The finding that reorders everything: 2607's own rabbit-hole says "never ship a
content sprint while the outreach is stalled," and outreach IS stalled - all
batch-1 messages on HOLD, zero sendable rows, card #12 blocked on #29. Four
Rails deep-dives shipped Jul 22 - Aug 7 regardless. Content is not the binding
constraint; prospect sourcing is. P0 is unblocking the pipeline, not writing.

Cheapest high-value fix, no new content: /services/vibe-code-rescue/ carries the
full offer and has zero inbound links from 608 blog posts. Six pre-qualified
rescue posts link to it zero times.

Corrections to 20.08's assumptions, all verified: real capacity is ~6 posts/month
(June 2026 published zero) against an assumed 2-3/week; seven queued rows
duplicate posts already on disk and F2 already shipped into a 4-post
Rails-8-authentication cluster; the 435-click snippet projection predates AI
Overviews.

News policy added: one test - will someone search this in six months? Durable
news (CVEs, releases, EOLs) swaps against a queued row, never adds a slot. Event
news goes to LinkedIn only; the PocketOS post scored 48/50 and earned 1 click in
three months. Version-current posts incur refresh debt, so one refresh slot per
month is budgeted.

Pointers repointed to 20.09 with the P0 outreach gate ahead of topic selection.
OKF bundle and log synced.

Four questions left open for Paul rather than decided: fresh GSC export, what
June was, the deliberate price undercut against our own "cheap developers are
expensive" thesis, and the now-contested "vibe code rescue" category name.
pftg pushed a commit that referenced this pull request Aug 8, 2026
F5Bot produced zero usable mentions and Paul called it dead. Two structural
flaws: it matches literal substrings only, and it is passive - it can only see
mentions from setup-time forward, so it can never backfill. Card #29 needs rows
verified inside a 30-day window, which a passive monitor cannot deliver on
demand. The "swap the v2 keywords" unblock is therefore void, not pending.

Replacement is p7-search-sweep.md: ~30 copy-paste queries pairing site: with
after:YYYY-MM-DD across reddit (plus sub-scoped variants), IndieHackers, HN, X
and Lobsters, with the date arithmetic spelled out so a cold session can
regenerate the window. Keeps the v2 keywords - those were derived from our own
captured verbatim quotes and were never the problem.

The sweep produced ZERO rows, and the cause is this environment, not the market.
Verified independently: the search tool ignores site: and after: entirely - a
site:reddit.com query returns Substack, Goodreads and Yahoo. reddit.com is
hard-blocked to the agent user agent, and every thread-open attempt returns
EGRESS_BLOCKED. Vote 3 check 3 requires a timestamp read from the opened thread,
so with no venue openable every candidate fails by construction.

Nothing was logged rather than infer a date or re-log a known row - the exact
defects card #28 exists to prevent.

Card #12 stays blocked, but the diagnosis moves: the blocker is no longer a
2-minute keyword swap, it is venue reachability. The query bank is ready for a
human browser and untested against a real index.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RHgyr6mEXghWSzipXnzQuY
pftg pushed a commit that referenced this pull request Aug 8, 2026
Verified each finding against the actual file content before acting (per
the review's own instruction) rather than applying them blind. Eight were
real:

- outbound-sprint.md: Reddit swept unconditionally in the morning-monitor
  recipe, but reply-monitor-prompt.md only checks Reddit once batch 2 is
  live. Aligned the gate.
- Three files (runbook, cold-prospect-list, 20.09) claimed #29's tooling
  unblock needs egress to BOTH indiehackers.com and reddit.com, but
  p7-search-sweep.md's own conclusion is "at least one venue openable."
  I introduced this overclaim by copy-pasting the phrase into three places
  without checking it against the source doc. Corrected all three.
- runbook.md: the START HERE heading still read "2026-07-26, Sprint 3
  planned" one paragraph above text recording the 2026-08-08 tooling
  block - a fresh session could read the heading and think #29 is
  runnable. Dated it correctly.
- runbook.md T5 status: "Done (P4-P7 complete)" read as if P7 produced
  rows. Clarified P4/P5/P6 landed rows while P7's method shipped but its
  sweep is BLOCKED-ON-TOOLING, which is a #29 fact, not a T5 defect.
- p4-reddit.md: excerpt-only rows didn't explicitly say they can't enter
  cold-prospect-list.md as leads without a thread-open re-verification.
  Added the line - Vote 3 already requires this, the doc just didn't say
  so locally.
- p7-search-sweep.md: my own added text ("lane gap to escalate") glossed
  over the doc's pre-existing §3.6, which already explains why P7 has no
  reliable Trigger-3 discovery lane. Reconciled: dev shop still runs in
  the query bank as a cheap catch, a zero there is expected per §3.6 not
  a fresh signal, and escalation is now conditioned on P6 (which DOES own
  Trigger 3) also running dry. Also tightened bolt.new/base44 removal to
  require two VALID (non-blocked) empty sweeps, not two attempts of any
  kind - the 2026-08-08 run was tooling-blocked and can't count.
- t4-t5-grooming.md: "8-10 rows is acceptable" read as a completion
  target, conflicting with T6/backlog's stated 10-15+. Labeled 8-10 as a
  fallback floor, not the target, without touching the other docs'
  numbers.

One finding declined with a reply (not a fix): CodeRabbit wants X's
snowflake-derived date exception removed to match Vote 3's "always open
the thread" rule. Checked p7-search-sweep.md §3.4 - a status ID encodes
its timestamp deterministically (Twitter Snowflake), so it's more
reliable than a manual read, not less, and it's the one venue immune to
the egress block. The exception is deliberate and correct; removing it
would trade a working mechanism for compliance with a rule aimed at a
different failure (excerpt-guessing). Explained in-thread.

Gates: docs-only, zero files under content/ or themes/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtDh9gdEPMZjaFKauRaRRs
pftg added a commit that referenced this pull request Aug 8, 2026
…ss OS (#440)

Three docs-only changes riding one branch:

1. Purged the retired passive keyword monitor (F5Bot) from the sourcing
   machinery - deleted its doc, scrubbed every instructional reference,
   preserved the corpus-verified keyword derivation in p7-search-sweep.md,
   and corrected card #29's status to BLOCKED-ON-TOOLING (its sweep
   returned zero rows on EGRESS_BLOCKED thread-opens, not on Paul).

2. Fixed 8 CodeRabbit findings (gate mismatch, an over-strict two-venue
   unblock contract propagated into 3 files, stale runbook heading, T5
   status ambiguity, excerpt-only lead eligibility, Trigger-3 lane
   reconciliation, valid-sweep gating for unevidenced terms, 8-10
   fallback-vs-target clarification); declined 1 with reasoning
   (X Snowflake date derivation is deterministic and stays).

3. Optimized docs/business/operating-system.md (110 -> 85 lines): §1 now
   binds to rescue-sprint/pipeline.md's weekly tally (first real row
   filled - all zeros), fixed the KR2 Nov-15/Nov-30 conflict, replaced 3
   stale resolved issues with the 5 actually open (incl. kill-criteria
   being untestable - zero touches ever sent), cut the superseded
   paid-pilot rock, delinked the stale state snapshot in favor of the
   runbook, added a changelog.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtDh9gdEPMZjaFKauRaRRs
pftg pushed a commit that referenced this pull request Aug 8, 2026
…le-owner truth

Two exhaustive audits (2607: 31 files/3,053 lines; company layer + 2510 +
workflows + OKF) measured the estate at ~40% live / ~60% stale-or-duplicated
18 days after creation. This pass fixes every contradiction of ground truth,
stamps or archives everything superseded, and realigns the roadmap so its
lanes arithmetically sum to the goal.

Operations (2607):
- Killed the phantom kanban board: the runbook's entry point told every
  fresh session to read a board that was gitignored, never committed, and
  whose binary isn't installed; cards #12-#29 were cited ~40 times with no
  surviving definition. backlog.md §State is now the sole card registry.
- Struck two phantom Paul-gates (grooming "PENDING PAUL'S APPROVAL" +
  runbook "T4/T5 held") 18 days after the approval landed - the exact
  mis-scope the runbook's own Paul's-desk rule forbids.
- Fixed two price contradictions still quoting the abandoned $25-50K band
  (assumptions-register E1, trigger-taxonomy "confirms our $25K band") plus
  market-analysis's "we do not need to discount" claim - all three fed
  sales collateral with numbers 3-10x the confirmed $2.5-10K offer.
- Runbook history compressed (retro deduped to backlog, done S0 checklist
  collapsed to its spec file, done/archived card statuses corrected,
  artifact index brought current, playbook + send/monitor prompts indexed).
- executive-summary now describes the real product (45-min context call +
  48h offline AI-assisted audit), not live code-reading on the call.
- cold-prospect-list carries an in-band ALL-ROWS-UNVERIFIED banner and the
  stale LIGHT-gate PASS is marked superseded; RUN.md trimmed to the one
  live prompt (P7); warm-intro kit promoted to PRIMARY-channel framing.

Company layer:
- Portfolio kill-criteria restored to full register wording (pause and
  re-open A + C, not just "the ICP bet") and stamped untestable - zero
  touches ever sent; the "why this bet" rationale now carries its
  counter-evidence (category name occupied, pricing-vs-thesis tension).
- OS Rocks realigned arithmetic-first: KR2 needs 8-12 calls, the cold lane
  at full success yields ~2-3, so Rock 1 is now three lanes (warm PRIMARY -
  blocked only on Paul's ~10 names; LinkedIn drafts-only; cold top-up) with
  a falsifiable Sep-30 midpoint gate (>=3 calls or re-open A + C).
- strategy.md: retracted "competitors are only just entering it" (20.09
  found page 1 occupied a month ago; never propagated), cut the paid pilot,
  replaced the 18-day-stale current-state line with runbook pointers.

Marketing (2510 + workflows):
- GOAL-AT-A-GLANCE: replaced the 3-stream table that contradicted its own
  file twice (10/mo vs ~6/mo) with 20.09 SS7's five rows; deleted the dated
  status block that instructed publishing posts 20.09 explicitly cut;
  rankings row now carries the 6-12mo honesty; KR2 pointer to its owner.
- Archived the three 2025 fossils (_ARCHIVED_ prefix: PROJECT-INDEX,
  TASK-TRACKER, READER-VALIDATION-REPORT-STATUS) and fixed the footer
  links that pointed the live overview at them.
- Supersession banners added to 20.07/20.04/20.05 (20.08's banner was the
  only one that existed - now the pattern); 20.05's three-way state
  conflict (merged vs paused vs active) resolved to one sentence.
- LinkedIn cadence canon: Stream 0 total is 3-4/wk SHARED across campaigns;
  both campaign plans claimed 5/wk each (10/wk combined). icp-validation
  stamped PAUSED (3/10 drafted, zero posted, zero data - revivable as the
  Rock-1 LinkedIn lane); course-promo stamped with real state; the post
  pipeline's campaign wiring made campaign-agnostic.

Routers:
- flow-router/BASE_HANDBOOK/AGENTS.md now route outbound/sales work to the
  runbook START HERE and company work to docs/business/ - previously no
  router in the repo sent a session to the entry point the OS designates.
  Dead /Users/pftg machine paths replaced with repo-root wording.
- OKF indexes synced (outbound-sprint + scroll-gate listed; content-plan
  entry retitled to 20.09); dated log entry with the six durable lessons.

Left on Paul's desk unchanged, now with decide-by framing: the ~10 warm
names (the cheapest unblock on the board), Joy override, pricing stance,
category name, vision-mission DRAFT flip.

Gates: docs-only (zero content//themes/ files); course validators 8/8
green; grep sweeps clean (phantom board, stale prices, retracted claims,
phantom gates, dead paths). 33 files, +198/-212.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtDh9gdEPMZjaFKauRaRRs
pftg added a commit that referenced this pull request Aug 9, 2026
…posting packet ready (#442)

Paul: "I would not be able to provide 10 warm names." That partially
falsifies the A0 C1 premise (warm = primary channel) - the exact risk the
register's devil's-advocate pre-registered. Handled per runbook rule 7 as
a dated ADDENDUM in the assumptions register, then propagated to every
surface that carried the warm-primary claim.

New lane order (OS Rock 1 / runbook C0+C1+sprint map / strategy /
executive summary / portfolio all aligned):
1. LinkedIn Stream 0 PRIMARY - agent drafts, Paul posts 3-4/wk. New
   linkedin-posts/icp-validation/POSTING-PACKET.md carries post #1
   verbatim from the 5x-critic-passed week1-mon draft; Paul's total
   activation effort is copy, paste, post.
2. Cold #29 re-promoted to load-bearing secondary - the thread-open
   tooling unblock returns to the critical path.
3. Inbound floor LIVE - verified all 6 founder-intent posts link to
   /services/vibe-code-rescue/; 20.09 P1 stamped EXECUTED.
4. Referral-ask OPTIONAL - 2-3 past clients (a referral source need not
   BE the ICP); the 8-category fill-10-names template collapsed to a
   3-row prompt list; nothing gates on it.

Kill-criteria re-based in all four carriers: "2 weeks of warm outreach"
-> "2 weeks of active outreach across live lanes (LinkedIn posts and/or
verified sends), 0 booked calls -> pause, re-open A + C." Clock starts at
first post or first send.

Gates: docs-only; course validators 8/8 green; greps confirm zero live
10-names asks, re-based kill wording in all four files, zero surviving
warm-PRIMARY claims. OKF log carries the three durable rules.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtDh9gdEPMZjaFKauRaRRs
pftg added a commit that referenced this pull request Aug 20, 2026
… the openers

Paul granted browser access (no API). Reddit does not open.

Route-by-route (full table in p7-search-sweep.md §8):
  thread .rss via curl  WORKS - exact <published>, no browser - but
                        rate-limits after ~4 requests
  listing .rss          429 immediately - no discovery lane
  old.reddit.com HTML   200 and 318KB, but it is the "Welcome to Reddit"
                        interstitial - check the title, not the status code
  automation Chrome     "Prove your humanity", then escalates to
                        "You've been blocked by network security"

Stopped there per the no-workaround rule: no CAPTCHA solving, no login, no
spoofing, no proxy.

4 rows dated, all dropped: 98d, 133d, 230d, 363d. Rows 5/6/10/11/23/24
cannot be dated by any route - retire them. Tally: 19 of 25 verified and
dropped, 6 unverifiable, 0 send-ready. The v1 list is closed.

The bigger find is not a stale date. Row 4's "verbatim" quote read "a
problem I couldn't fix"; the founder wrote "a problem I'm still paying
for", and "I couldn't fix" appears nowhere in his thread. It had spread to
5 files including outbound-openers.md, so his opener quoted words he never
wrote - a defect that passes every staleness check and lands in front of
the prospect. Corrected in all 6 places. A second re-read quote had been
truncated past its buying moment ("stuck with my app" -> the source says
"for 3 months now").

Two of four re-read quotes needed fixing, so the [VERBATIM-founder] tag has
been recording intent, not verification. Un-re-read v1 quotes are now
marked unconfirmed.

No fresh sweep was possible (no listing lane), so the cold-eyes gate is
recorded as "not run, no candidates" rather than a pass.

Sourcing only. Nothing sent, posted, or replied to anywhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pftg added a commit that referenced this pull request Aug 20, 2026
…ied rule

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pftg added a commit that referenced this pull request Aug 20, 2026
…end-ready) (#478)

* 2607 #29: re-source v2 sweep - tooling unblocked, 6 v1 rows dropped, 0 fresh rows

Ran card #29's re-source sweep from a host session against the Vote 3 v2
rubric (flat <=30-day lead window, WINDOW_START 2026-07-21).

Tooling block from 2026-08-08 was environmental, not a venue policy.
IndieHackers, LinkedIn public posts, X status pages and the HN Algolia API
all open. IH post pages are server-rendered and carry JSON-LD datePublished
plus every comment and its age, so Vote 3 checks 3 and 5 are both
satisfiable in one page load - chrome-devtools is not required. Reddit is
still closed, so its excerpt-only rule stands.

Found the missing recency lane: IH listing pages are client-rendered, but
IH's own search runs on Algolia and one index is sorted by recency
(discussions_createdTimestamp_desc). Pair it with domain-filtered WebSearch
- relevance-ranked search is stale-biased, the index is fresh but loose.

Re-audit: 6 of 25 v1 rows opened and date-verified, all 6 dropped as leads.
Every failure the 2026-07-26 retro named was real; no false alarms.

Fresh sourcing: 21 keyword queries, 5 domain-filtered searches, 4 HN
date-filtered queries, 23 threads opened in full. Zero qualified rows. This
time it is a venue finding, not a tooling one - IH's <=30-day stream is a
launch/promo board, and where fresh distress language appears a competitor
rescue shop is speaking it as content marketing.

VoC harvested from the dropped threads per the lead-vs-voice split: +6
[VERBATIM-founder] lines, +2 [vendor]. Pull remains the thinnest force and
this sweep did not move it - it needs interviews, not sourcing.

Sourcing and drafting only. Nothing sent, posted, or replied to anywhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* 2607 #29: finish the v1 re-audit - 15 verified, all dropped, list closed

Second re-audit pass over the 9 remaining openable rows, 6 page loads
(rows 15-18 share one thread). All 9 dropped as leads.

  7  eddwardpark   2026-06-12   69 days   - narrowest miss on the list
  8  KaiaColban    2025-09-06   348 days
  15 dianewilliams75  ~10mo comment  ) one host thread, also carrying
  16 659ertramp        ~9mo  comment  ) 5 competing free-help pitches,
  17 J_Jie556517       ~7mo  comment  ) so saturated as well as stale
  18 lucadeza          ~10mo comment  )
  20 Sam A         2020-03-16  ~6.4 years
  21 techPackets   2022-08-27  ~4 years
  25 @markgadala   2025-03-20  518 days (snowflake-derived)

Final tally: 15 verified and dropped, 10 Reddit rows unverifiable,
0 send-ready. The v1 list is closed - no row left that can be checked.

Two findings worth carrying: dateModified is not a post date (row 8 shows a
2026-02-26 edit on a 2025-09-06 post, exactly the number an excerpt pass
mistakes for freshness), and verification is cheap - 15 rows cost ~15 page
loads against a list that carried openers, a scored sheet and Paul's
approval loop before anyone noticed it was stale.

No new VoC: all 5 threads harvested, their good lines were already captured,
and the one fresh-looking candidate was a dev-sourcing vendor pitching his
own agency.

The 10 Reddit rows are not a queue - they unblock only on a Paul decision
about account/API access, and should be retired if that never comes.

Sourcing only. Nothing sent, posted, or replied to anywhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* 2607 #29: Reddit re-audit - 4 dated, 6 unreachable, and a misquote in the openers

Paul granted browser access (no API). Reddit does not open.

Route-by-route (full table in p7-search-sweep.md §8):
  thread .rss via curl  WORKS - exact <published>, no browser - but
                        rate-limits after ~4 requests
  listing .rss          429 immediately - no discovery lane
  old.reddit.com HTML   200 and 318KB, but it is the "Welcome to Reddit"
                        interstitial - check the title, not the status code
  automation Chrome     "Prove your humanity", then escalates to
                        "You've been blocked by network security"

Stopped there per the no-workaround rule: no CAPTCHA solving, no login, no
spoofing, no proxy.

4 rows dated, all dropped: 98d, 133d, 230d, 363d. Rows 5/6/10/11/23/24
cannot be dated by any route - retire them. Tally: 19 of 25 verified and
dropped, 6 unverifiable, 0 send-ready. The v1 list is closed.

The bigger find is not a stale date. Row 4's "verbatim" quote read "a
problem I couldn't fix"; the founder wrote "a problem I'm still paying
for", and "I couldn't fix" appears nowhere in his thread. It had spread to
5 files including outbound-openers.md, so his opener quoted words he never
wrote - a defect that passes every staleness check and lands in front of
the prospect. Corrected in all 6 places. A second re-read quote had been
truncated past its buying moment ("stuck with my app" -> the source says
"for 3 months now").

Two of four re-read quotes needed fixing, so the [VERBATIM-founder] tag has
been recording intent, not verification. Un-re-read v1 quotes are now
marked unconfirmed.

No fresh sweep was possible (no listing lane), so the cold-eyes gate is
recorded as "not run, no candidates" rather than a pass.

Sourcing only. Nothing sent, posted, or replied to anywhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* okf: log the #29 closure - cold-public premise failed, VERBATIM=verified rule

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
pftg added a commit that referenced this pull request Aug 20, 2026
…ds (#479)

Rescue page: stack-agnostic intake (CEO call 2026-08-20) + restore founder's actual words

Stack decision (recorded in vault jt-business-os §Positioning): the audit reads
any stack (Lovable/Bolt/v0/React/Firebase/dev-shop leftovers); delivery is
salvage-their-stack or rebuild-on-Rails; marketing authority stays Rails;
no new stack service pages. One sentence added to Step-1 stating it.

Quote fix: the page carried 'a problem I couldn't fix' - words the founder
never wrote (the #29 re-audit found the fabricated phrase had propagated
into 5 docs files AND this live template). Restored to his verified words:
'a problem I'm still paying for' (re-read at source, r/startups 1sgsq6o).

Gates: bin/hugo-build green, rendered greps verified, bin/qtest --changed
34 runs / 0 failures / 53 screenshots clean. Cold-eyes reviewer: PASS.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants