Search
27 results for “anon_et”
-
RE: https://mastodon.social/@anon_opin/117400909046600507
About ten years back I was walking in the city centre and across the road there was a small protest, I think about fur farming. And on my side of the road there was a middle-aged white guy loudly moaning about snowflakes.
Mate you’re the one finding it impossible to ignore what other people say and do in public even when it doesn’t affect you at all. Mind your own business and pipe down, you’re embarrassing yourself.
-
After a few years of consulting work, I have accepted an interim position as an IT Director for a non-profit. This is really work that I’ve used to do; there’s no internal development done. But it made me realize that I miss working with a team. So when it’s over I will seek that out.
-
Growing up as a non-believer in a fairly religious setting a lot of interesting authority figures were religious. For one, in my teens I ended up having regular tea with a Catholic priest who was happy to indulge me.
At one point we discussed whether he was actually religious & a believer. He countered with: does it matter?
As I was recently reminded of this, a question for Christians, Catholics: would it bother you if your priest was not a believer?
-
Dory's waypoint was a well-marked concrete pad, a miniature version of the Academy flight line. Soon after Dory made her landing, a fuel tanker arrived. It was a big aluminum gas tank on a steel chassis with black trim. The massive semi hauling it was nearly all black. Two pillars of black soot rose from the exhaust pipes. The truck stopped. The engine stopped. The cab opened, and the driver who got out looked like an equally menacing human version of his giant truck, all black leather and chrome studs, with a chain for a belt. Remiel expected to see a cigar clenched in his teeth to make the resemblance complete, but this was strictly a non-smoking operation. When the driver saw Dory and Remiel standing near the Dizzy Lizzy, he smiled broadly and began his transformation, shrinking down to become a slender, unclad waif. One bat wing covered her breasts and the other one covered her privates. Cadence in the flesh, as Dory promised. Remiel asked, "Why the big burly dude just now?"
-
I know a lot of trans people go through a non-binary era and kinda look back and laugh at it, but I feel like I fucking nailed my masc-enby phase in a way that makes current me kinda jealous. 😂
-
I would open the notebook when a helper check fails and the only saved label is the word free. Had the suggestion drifted, or had the machine that ran the assertion changed underneath the same command? I could not answer either question from a log that says free, which means that log is a story. These notes are the forty-eight hour plan I would follow before I trust that kind of story again.
This notebook is a plan and a local recorder, not a measured study and not a quota report. If you need latency numbers, hardware names, or a ranked model list, you should stop here and go read primary docs. I would rather leave a field blank than borrow a number I did not print myself. Would you really ship a green check when the note cannot name the path that produced it?
Hours 0 to 12: one flag felt like enough
During the first half day I would write a helper that drafts a review comment and then runs one fixture test. My first sketch would use a single function called run_free, because both steps feel unpaid and therefore identical. That shortcut is the bug I already understand, even before I execute anything on a second machine. Can one boolean describe a model route and a server route without throwing away the diagnosis?Hours 12 to 24: the replay could not choose a cause
On the second block of hours I would replay the same fixture and compare the two notes side by side. A different comment might mean the suggestion path answered differently than it did in the morning. A missing tool might mean the execution path was not the laptop I used when I wrote the fixture. If both explanations fit the same log line, I have not debugged anything, I have only renamed the confusion.The split I would write down before hour thirty
Free model access means I may request a suggestion without paying for that request, under limits I still have to read. A free server option means I may run a job on a hosted machine without paying for that machine, under separate limits. I am taking those two availability claims as given for this exercise, and I am not treating them as a measurement. I still need the provider's current documentation before I treat either path as present on my own account.Disclosure: This article was prepared as part of MonkeyCode's product outreach. I am using MonkeyCode only as the hosted example for those two choices, and I am not adding model names or hardware claims. If your account does not show one of those options, the card should store unavailable instead of a hopeful synonym. Would you rather pause the run than invent a path name just to keep the script moving?
Fields the card must answer
Keys I would require
I would keep each attempt in its own JSON file so a later diff cannot quietly overwrite the morning. The file has to answer a small set of questions before I allow myself to read the suggestion text. Boring keys are the point, because a clever schema is how I smuggle assumptions back into the note. Which of these could I still explain on Friday without reopening the chat that produced them?suggestion_path:local,hosted-free-model,unused, orunavailable, and never the bare word freeexecution_path:local,hosted-free-server,unused, orunavailable, chosen independently of the suggestionprovider_label: the label the tool printed, copied verbatim, orunreportedwhen the tool stayed silentcommand: the exact check I asked the execution path to run, stored as an argument liststarted_at: a UTC timestamp from the machine that wrote the card, not a time I remembered laterexit_code: an integer, or null when the command never started because the card refused the pathsnotes: one sentence about what I expected to learn, written before I look at the diff
Extras I would ban
I would also ban three tempting extras, because this notebook cannot honestly support any of them. No guessed model nickname, no pasted quota, and no hardware description belongs in the file. If the tool prints nothing, the provider label is unreported, which is a recorded fact rather than a hole. A hole invites me to fill it later from memory, and memory is how the word free returned last time.The recorder I would run before I trust the note
The script below is a proposal you can run on your laptop, and it does not call a vendor API. I have not treated its output as a benchmark, and you should not paste its card into a status report as one. It refuses unknown path names, and it refuses unavailable, so a missing option cannot be blurred into local. I would store it as tools/path_card.py and aim it only at a fixture command I already trust.#!/usr/bin/env python3
"""Write a two-path run card. Proposal: run locally; do not treat the file as a study."""import argparse
import json
import subprocess
import sys
from datetime import datetime, timezone
from pathlib import PathALLOWED = {
"local",
"hosted-free-model",
"hosted-free-server",
"unused",
"unavailable",
}def parse_args():
parser = argparse.ArgumentParser(
description="Record suggestion path and execution path as separate fields."
)
parser.add_argument("--suggestion-path", required=True)
parser.add_argument("--execution-path", required=True)
parser.add_argument("--provider-label", default="unreported")
parser.add_argument("--command", nargs="+", required=True)
parser.add_argument("--out", default="run-card.json")
parser.add_argument(
"--dry-run",
action="store_true",
help="Write the card without starting the command.",
)
return parser.parse_args()def require_known(name, value):
if value not in ALLOWED:
raise SystemExit(f"{name} must be one of {sorted(ALLOWED)}, got {value!r}")def main():
args = parse_args()
require_known("suggestion_path", args.suggestion_path)
require_known("execution_path", args.execution_path)
if "unavailable" in (args.suggestion_path, args.execution_path):
raise SystemExit("unavailable path; refusing to blur it into local or unused")
if args.suggestion_path == "unused" and args.execution_path == "unused":
raise SystemExit("both paths are unused; refusing to write an empty card")
if args.suggestion_path == "hosted-free-server":
raise SystemExit("suggestion_path cannot take a server role")
if args.execution_path == "hosted-free-model":
raise SystemExit("execution_path cannot take a model role")
if args.suggestion_path == "local" and args.execution_path == "local":
print("note: both paths are local; that is allowed, and it is not a hosted run")
started = datetime.now(timezone.utc).isoformat()
exit_code = None
stdout, stderr = "", ""
if not args.dry_run:
completed = subprocess.run(args.command, text=True, capture_output=True)
exit_code = completed.returncode
stdout, stderr = completed.stdout, completed.stderr
card = {
"suggestion_path": args.suggestion_path,
"execution_path": args.execution_path,
"provider_label": args.provider_label or "unreported",
"command": args.command,
"started_at": started,
"exit_code": exit_code,
"stdout_tail": stdout[-400:],
"stderr_tail": stderr[-400:],
"dry_run": args.dry_run,
}
Path(args.out).write_text(json.dumps(card, indent=2) + "\n", encoding="utf-8")
print(f"wrote {args.out}")
return 0 if args.dry_run or exit_code == 0 else exit_code or 1if __name__ == "__main__":
sys.exit(main())A check that rejects the bare word
Before I trust the longer script, I would run this classifier in a Unix shell, with no network and no fixture file. The word free is intentionally absent from the allowed set, so a lazy label fails in the open. A swapped role fails too, because a server path must not pretend to be the suggestion path. If this check ever starts accepting free, the rest of the notebook has already lost the point.python3 - <<'PY'
allowed = {
"local",
"hosted-free-model",
"hosted-free-server",
"unused",
"unavailable",
}def classify(suggestion, execution):
if suggestion not in allowed or execution not in allowed:
return "reject-unknown"
if suggestion == "hosted-free-server" or execution == "hosted-free-model":
return "reject-swapped-role"
if "unavailable" in (suggestion, execution):
return "reject-unavailable"
if suggestion == "unused" and execution == "unused":
return "reject-empty"
if suggestion == execution:
return "named-pair-same"
return "named-pair-split"assert classify("free", "local") == "reject-unknown"
assert classify("hosted-free-model", "unavailable") == "reject-unavailable"
assert classify("hosted-free-server", "local") == "reject-swapped-role"
assert classify("unused", "hosted-free-server") == "named-pair-split"
assert classify("hosted-free-model", "hosted-free-server") == "named-pair-split"
print("path split checks passed")
PYRefusal, then a named local pair
I would prove the refusal before I prove the happy path, because a soft recorder is just a diary. These commands stay on one machine, and they do not require a hosted login to teach the habit. Watch the exit status, not the prose, since a friendly message can still hide a zero. Did the process actually stop, or did it write a card that flatters an unnamed path?# Expect a non-zero exit, and expect no new card file afterward.
python3 tools/path_card.py \
--suggestion-path hosted-free-model \
--execution-path unavailable \
--out cards/should-not-exist.json \
--command python3 -m unittest tests/test_fixture.pyWhen both paths are intentionally local, I still pass both flags, because silence is not a stored value. The output file should sit under cards, with a unique name, so a refusal cannot leave yesterday's success in place. Replace the example unittest path with a test module you already have, and do not invent a fixture just to see green. A card without a timestamp is exactly how two separate evenings collapse into one false memory.
mkdir -p cards
python3 tools/path_card.py \
--suggestion-path local \
--execution-path local \
--provider-label unreported \
--out cards/local-local.json \
--command python3 -m unittest tests/test_fixture.py -qIf I later have a hosted free server available, I change only the execution flag and I copy the printed label. I do not rename the suggestion path so the pair looks tidy, and I do not reuse yesterday's file. Same command, different path, new file: that is the whole trick, and it is smaller than it sounds. Would a tidy matching pair really be worth more to you than a pair that stays true?
A gate table for the second day
Question I can answer todaySuggestion pathExecution pathWhat I recordI only need a wording draft, and I will not run codehosted-free-model, if the account shows itunusedDraft text plus the printed label, and no exit codeI already wrote the patch, and I only need a machineunusedhosted-free-server, if the account shows itCommand, exit code, and the printed labelI need both a draft and a checkname it separatelyname it separatelyTwo fields, even when both values are localI cannot tell which path is offered right nowunavailableunavailableStop, and do not backfill a guess from memory
Before the second day's runs, I would read a gate table instead of negotiating with a diff. The table is not a ranking, and it does not claim that any hosted path is faster or safer. It only asks whether I can name each path today, with the wording the product actually showed me. If I cannot answer, the row says stop, which is a result I am allowed to keep.
Notice that free never appears as a stored value, even though it is the word that started the confusion. The word can stay in conversation, but it should not survive into the artifact I will reread tomorrow. If a provider changes what an offer includes, older cards still name the path I believed I used. That is a weaker claim than a benchmark, and the weaker claim is the one I can defend.Hours 36 to 48: what I would repeat
On the last block of hours I would replay three cases and write one plain sentence under each card. First I pass an unknown path string and confirm the script exits before it writes anything flattering. Next I run a fixture I already trust with both paths set to local, and I keep the card beside the output. Finally, only if a hosted option is actually offered to me, I rerun that same fixture and I refuse to merge cards.The paper failure is already enough to change the habit, even if I never leave the laptop. A single free flag cannot tell me whether to reread a suggestion or to inspect the host that ran the check. I would repeat the split when both paths feel boring, because boredom is when I start abbreviating notes. Would a future version of me understand this file without the chat scroll that produced the wording?
I would also keep a rejection list beside the folder, written as checks rather than as slogans. Each line is a skip I would expect from myself when the evening runs long and the diff looks small. The list is short on purpose, because a long policy becomes another document I will not open. Which line would you be tempted to delete first, and what failure would that deletion invite back in?
- Do not retry a failed hosted run until the card shows which path failed and which path was never asked.
- Do not paste a suggestion into the execution command, because model text is untrusted input, not a shell program.
- Do not compare two cards that lack started_at, even when the command strings look identical on the screen.
- Do not treat a missing provider label as permission to invent one from a blog post or a memory.
- Do not ignore a missing interpreter, because that failure belongs to the execution path, not the suggestion.
Who should not use this notebook
Skip this notebook if you need a compliance review, a capacity plan, or a number you can publish. The card does not measure queue time, retention, or whether a free option will still exist next week. Skip it when the command might touch production credentials, because a free server is still a remote machine. You still have to authorize that machine on purpose, and a friendly price does not change that duty.Skip it if you wanted a prompt that quietly picks a best model, since this workflow only records a choice you already made. I would also skip hosted columns when the work includes secrets, personal data, or an unreviewed shell string. Local-only cards remain useful, and they keep the same keys so a later hosted run does not invent a format. A consistent boring card beats a clever one I will not reread on the following Monday.
One hosted name, then back to the habit
If I already have a MonkeyCode account, I fill a hosted value only after that account shows the option I am about to use. The outreach note above is why this product appears here, and deleting the name should not break the recorder. I would rather file one honest card than collect another evening of notes that say free and mean two machines. That is the habit I would repeat, and it does not require me to pretend I measured a platform.#python #testing #devops #ai #software #coding #development #engineering #inclusive #community
I Deleted Free From the Card and the Failure Picked a Side -
"It Don't Come Easy" is a song by the English rock musician #RingoStarr that was released as a non-album single in April 1971. It was produced by Starr's former #Beatles bandmate #GeorgeHarrison, who also helped write the song, although only Starr is credited. Recording for the track took place in March 1970 at #TridentStudios in London, with #overdubs added in October. Starr.
https://www.youtube.com/watch?v=xTXR4UpWLiQ -
I instantly am on defence mode when a non-Chinese write about China and or her culture. Logically I understand most people are just awakening to something that I’ve lived with for most of my life: That Chinese culture and history is pretty deep and rich. So they’re just expressing it through essays, social media posts, videos …
However, I’ve just been bitten too many times, have read too many terrible hot takes that are usually shades of “China is bad” or “why can’t they be like us?” Or worse, completely misunderstanding how Chinese society and culture works or is really like.
Most of my life, being Chinese or China, in general, was ignored. We were not cool. Now every Tom, Dick and Harry want to either analyse us, adopt our ways or wag a finger at us. I kinda miss being ignored….at least we don’t have to deal with the daily orientalism dear lawd
Substack is where I see a lot of these orientalist, sinophobic hot takes. Always, always, they have this desire to preach and lecture, "Why is China like this? Why can't they be like us? Since they're not like us, they've fallen short." Or worse, they interpret our cultural products in the most outlandish ways. I still remember how I ended up reading an essay about Mysterious Lotus Casebook and somehow they spun it off as a symptom of China looking down on the minorities. Dude, it's just a silly idol drama omg. They will take that cultural product, insert their message and use it to wag a finger at China. Augh -
I guess we're not quite there yet with a non-electron / chromium solution for distributing web games for steam + steam overlay integration. Surely it has been quite some time for someone to crack it 😅
Thought I could use something like tinyjs / tauri or something lightweight, super thin wrapper apis
-
RE: https://universeodon.com/@memeorandum/117412000029956359
Fleeing to a non-extradition country perhaps? 🤔
I hear Argentina has affordable rates…
-
In five days, a non-profit group has rescued 711 hard corals that were knocked off the reef and have reattached them at Kaua'i's most popular dive site. This is fantastic news.
Their permit allows them 10 days of work or 2,000 coral rescues. The corals were damaged by Hurricane Lowell.
-
An EU filing says Apple will offer jobs to some Huxe employees and take a non-exclusive license to Huxe’s intellectual property.
The filing does not name the employees or say whether they accepted the offers, and the agreement is not an acquisition of the whole startup.
Huxe, a personalized-audio startup, announced on May 21 that it would close, discontinue its service and delete user data.
Apple informed the European Commission of the agr…
-
TypeSafe AI, the developer of Jev - a non-text AI model that outputs probabilities rather than text - has raised 870M USD at a 7.5B USD valuation just weeks after launch. A third of Fortune 500 companies are already using the model. https://techcrunch.com/2026/10/09/the-maker-of-non-text-ai-model-jev-valued-at-7-5b-just-weeks-after-launch/ #Tech #Startup #News #AI
-
Reminder: ICE doesn’t need weapons because being in the United States as a non-citizen is not a felony.
There’s literally no reason for guns or lethal force.
-
Lobbying (Oct 10, 2026)
« Have you tried to explain lobbying to a non American unfamiliar with the concept? »
https://geohot.github.io//blog/jekyll/update/2026/10/10/lobbying.html
-
⛔️⚠️Ukrainian team leave America as US reveals itself to be traitors within the NATO alliance | Ukraine must implement all plans for a non US-backed defense against a Trump, Republican-financed Russian invasion (more) https://www.pravda.com.ua/eng/news/2026/10/10/8057383/ #Ukraine #Press #Media #VOTE #VOTE2026 #America #USA #US #News #Democrats #Republicans #Headlines #USAIsAStateSponsorOfTerror
#12yrInvasionOfUkraine #RussiansAreBabyKillers -
Security Tip: Implement the Principle of Least Privilege in your container environment. 🛡️ Running containers as a root user is a significant risk. If a vulnerability allows for a container breakout, the attacker inherits those root privileges on the host system. Actionable step: Always define a non-root USER in your Dockerfile and ensure your orchestration layer enforces non-privileged execution. Stay informed: https://cvedatabase.com #InfoSec #ContainerSecurity #AppSec
-
#AchvatOlam, which means “global solidarity” in #Hebrew, will teach about #Jewish history, cultures and languages outside of Israel, while engaging with Hebrew and Israel’s history from a non-Zionist perspective. The school’s website includes a page on “#Israel / #Palestine,” saying its community will share a belief that “the pursuit of justice, dignity, and thriving for all people is a Jewish moral imperative.” #Judaism #Religion #Education #Politcs #USPol #Zionism https://forward.com/fast-forward/855092/a-planned-non-zionist-jewish-school-in-boston-hopes-to-ride-the-momentum-of-the-left/
-
You must construct additional disappointment.
I can have light in my closet again. Yay!
I had to yank the smart switch and downgrade to a basic dumb switch. This means when my spouse leaves it on and goes to sleep, I have to get out of bed to turn the light off. Boo!
It looks like there are basically no small flush-mount light fixtures that the switch I had (a non-dimmer Lutron Caseta) can drive, because the loads are just incompatible in the age of (otherwise great) high-efficiency LEDs.
-
To all future people (looking at you 24th centurians): sunsets are not ALL that they are made out to be. Like they are cool for sure but they are about as cool as looking up at a non light polluted sky which you have loads of. Sunrises however are really fucking rad if you can catch them and it's warm enough.
-
Similarly, Passkeys are great. They're simple, easy, and slightly less annoying than Authentication codes. But now I'm in a scenario where - because the systems have demanded it - I'm essentially locked out of a bunch of things until I get a new phone.
And no, I didn't need to panic buy the very latest Pixel phone. But I can, and for me that beats the alternative of panic buying any old phone with (eg) a crap camera, to give myself a few months to do more work in order to get a non-Google phone
-
This article came into the accessibility hashtag, because it suggests accessibility scanning tools will help ensure LLMs can crawl your web page. (That’s not a priority for me, but I don’t judge people that do want that).
It says “the underlying question is the same one: Can a non-human reader get through this page?”
So, from the point of view of a website, what makes a person using a web browser alone equivalent to “human” and one using a browser plus screen reader combo “non-human”?
#ableism #accessibility
https://silktide.com/blog/getting-cited-in-llms-vs-google-search/ -
Traditional fishing village architecture is integral to the Curonian Spit’s UNESCO listing. Compact single-story thatched dwellings would typically have been accompanied by a cattle shed, smokehouse for curing fish, kitchen garden and space for drying nets. Many such homesteads didn’t survive WWII and their 20th C. replacements were often built larger to reflect recreational purposes. Today many buildings are holiday lets, but architectural traditions endure in the use of contrasting colours, such as dark red timber matched to vibrant blue gables decorated with lėkiai | "roof horses" at the apex. Here are some properties we found interesting in Nida (📷1), Pervalka (📷2&3) and in Preila—where a non-seaworthy boat and fishing net in the yard pay homage to times past (📷4).
🇱🇹 #europe #baltics #lithuania #lietuva 🚀 #travel 🚐 #camperVan #nomad #roadTrip #vanLife 🥾 #nationalPark 🌍 #unesco
-
An agent patch does not merge because the job is green. It merges when every changed symbol carries property credit, every fixture hash matches the lock, and every flake freeze contributes zero.
CI collapses three unlike signals into one bit. A property can pass. A fixture can replay. A known flake can be silenced. Those outcomes are not substitutes. The miss this ledger targets is specific: production behavior changed, no invariant covers the edited symbol, and a freeze is what kept the check quiet.
The scoring rules below are a proposal. The classifier is an unexecuted example, not a measured gate from a production repository.
What receives credit
Property credit is the only positive unit. A changed symbol earns one point when a predicate states an invariant, the predicate's source hash is stored in the receipt, and the predicate does not compare the result to a frozen document.Fixture locks are mandatory and worth nothing. A matching hash shows that the input bytes are the bytes you reviewed. It does not show that the behavior is acceptable.
A flake freeze is a quarantine citation, also worth nothing. It may point at a baseline flake so an unrelated failure does not block review. It may not stand in for a missing predicate on a symbol this patch edited.
Coverage is credited symbols divided by changed symbols. Admission is exact, not approximate.
admit if coverage == 1.0
and fixture_status == "match"
and rejection_codes ==
[]reject otherwiseA coverage of 0.5 is not a soft warning. The receipt rejects, and the missing symbols go back to the author.
Where a Boolean gate stays silent
Agent diffs often include a new test next to the fix. That pattern looks careful. It fails the ledger when the assertion equals a fixture the same diff rewrote, or when a skip cites a freeze id that the patch itself created.The job still passes. The receipt does not.
R5marks fixture equality dressed up as a check.R4marks a freeze id absent from the baseline ledger.R3marks a baseline freeze used as the only signal on a changed symbol.A quieter miss is the helper that returns true after reading fixture state. The test name contains the word property. The predicate hash moves whenever the fixture moves, so the classifier withholds credit. A label in the test name is not an invariant.
Decision table
LaneCreditAdmit ruleRemote run allowed as proof?RejectionProperty on a changed symbol1 per symbolCoverage must be 1.0Only as confirmation after a local passR1missing property,R5fixture equalityFixture content hash0Exact match requiredNoR2hash mismatchBaseline flake freeze0Not requiredNoR3freeze as oracle,R4unknown freeze idRemote-only log0Not acceptedNoR6remote-only receipt
Read the table as the policy. The steps below only compute it.Step 1: List changed symbols from the diff
Start from the patch, not from whichever tests the agent happened to touch. Count a symbol when its definition changes, or when a call site change alters an observable result.git diff --unified=0 origin/main...HEAD -- '*.py' \
| awk '/^diff --git/{f=$0} /^@@/{print f, $0}'Write one qualified name per line into
changed_symbols.txt. An empty list ends the review early. A test-only edit can still carry a property if it claims to lock behavior, but it does not earn fixture credit for production files the diff never touched.Keep the list short enough to review by hand. If a generated file explodes the symbol count, exclude that path in the command and say so in the receipt. Hidden exclusions are just another Boolean.
Step 2: Classify each touched assertion
Label every assertion in a touched test with one class.property— a predicate over inputs and outputs that does not embed a full expected document.fixture_eq— equality or snapshot comparison against a checked-in blob.freeze_ref— skip, xfail, or an annotation that cites a flake id.opaque— helpers, mocks, or assertions whose meaning is not visible in the diff.
Only class 1 can add credit. Class 2 may satisfy the fixture gate when the blob hash matches. Class 3 never adds credit. Class 4 adds nothing, and any changed symbol that has only class 4 evidence remains uncovered.
The vocabulary
holds,implies, andinvariantin the sample classifier is a local convention, not a language feature. If your suite uses different predicate names, change the hint before you trust a clearance.Step 3: Hash fixture bytes, not paths
Path strings survive edits that replace the file. An agent can rewritetests/fixtures/invoice.jsonand leave the path in the test unchanged.python - << 'PY'
import hashlib, pathlib
root = pathlib.Path("tests/fixtures")
for path in sorted(root.rglob("*")):
if path.is_file():
digest = hashlib.sha256(path.read_bytes()).hexdigest()
print(f"{digest} {path.as_posix()}")
PYDiff that listing against
fixture.lockon the target branch. Any mismatch isR2. Updating the lock inside the patch is allowed only when a property still covers every changed symbol without using the new blob as the expected value.If the fixture directory is absent, record
fixture_statusasnot_applicablerather thanmatch. Do not invent a hash to satisfy the gate.Step 4: Cite freezes only from the baseline ledger
The quarantine file must already exist on the target branch. A patch-local freeze file is not a source of valid ids.flakes:
- id: FLK-1044
signature: "TimeoutError: checkout_worker"
opened_on: "2026-09-02"
expires_on: "2026-10-16"
tests: ["tests/test_checkout.py::test_worker_drain"]Those dates are example fields for the rule, not a report of a live incident. A citation is valid only when the id is in that baseline file, the signature still matches, and
expires_onis later than the review clock. On a review clock of 2026-10-11, the example id above is still citable. An id that expired on 2026-10-01 is not.Do not extend expiry in the behavior patch. Expiry is a policy edit and belongs in its own review. A freeze that merely keeps a changed symbol quiet is
R3, even when the id is old and unexpired.Step 5: Worked receipt
Take two changed symbols,billing.prorateandbilling.invoice_total. The first test isassert holds(prorate(10, 0.5) >= 0). That is one credit. The second test isassert invoice_total(order) == load_fixture("invoice.json"). That isR5and zero credit. An unrelated citation of baselineFLK-1044adds no credit either.{
"changed_symbols": ["billing.prorate", "billing.invoice_total"],
"credits": {"billing.prorate": 1, "billing.invoice_total": 0},
"coverage": 0.5,
"fixture_status": "match",
"freeze_citations": ["FLK-1044"],
"rejection_codes": ["R1", "R5"],
"admit": false
}The repair is a predicate that does not read the fixture as an oracle, for example
assert holds(invoice_total(order) == sum(line.net for line in order.lines)). After that predicate is local-green, coverage can reach 1.0 andR1clears.R5stays if the fixture equality remains in the file. Delete it, or keep it only as a non-oracle lock outside the credit column.A rerun that stays green without the new predicate does not change this receipt. Green is not coverage.
Step 6: Classifier you can adapt
This module is unexecuted proposal code. It will mis-fire on suites that do not use the hint vocabulary. Run it on a scratch branch and compare its codes with a manual read before you wire it to merge.#!/usr/bin/env python3
"""Unexecuted proposal: symbol credit for an agent-patch receipt."""from __future__ import annotations
import hashlib
import json
import rePROPERTY_HINT = re.compile(r"^\s*assert\s+(implies|invariant|holds)\b", re.M)
EQ_HINT = re.compile(r"assert\s+.+\s*==\s*load_fixture\b")
FREEZE_HINT = re.compile(r"flake-id:\s*(FLK-\d+)")def sha256_text(text: str) -> str:
return hashlib.sha256(text.encode("utf-8")).hexdigest()def classify_test(source: str) -> str:
if EQ_HINT.search(source):
return "fixture_eq"
if PROPERTY_HINT.search(source):
return "property"
if FREEZE_HINT.search(source):
return "freeze_ref"
return "opaque"def score(changed: list[str], tests: dict[str, str], baseline_flakes: set[str]) -> dict:
credits = {name: 0 for name in changed}
codes: list[str] =
[] citations: list[str] =
[] for symbol, source in tests.items():
kind = classify_test(source)
found = FREEZE_HINT.findall(source)
citations.extend(found)
for flake_id in found:
if flake_id not in baseline_flakes:
codes.append("R4")
if symbol not in credits:
continue
if kind == "property":
credits[symbol] = 1
elif kind == "fixture_eq":
codes.append("R5")
elif kind == "freeze_ref" and credits[symbol] == 0:
codes.append("R3")
if any(credit == 0 for credit in credits.values()):
codes.append("R1")
coverage = 0.0 if not changed else sum(credits.values()) / len(changed)
reject = sorted(set(codes))
return {
"changed_symbols": changed,
"credits": credits,
"coverage": coverage,
"predicate_hashes": {name: sha256_text(body) for name, body in tests.items()},
"freeze_citations": sorted(set(citations)),
"rejection_codes": reject,
"admit": coverage == 1.0 and not reject,
}if __name__ == "__main__":
sample = score(
changed=["billing.prorate", "billing.invoice_total"],
tests={
"billing.prorate": "def test_prorate():\n assert holds(prorate(10, 0.5) >= 0)\n",
"billing.invoice_total": "def test_total():\n assert invoice_total(order) == load_fixture('invoice.json')\n",
},
baseline_flakes={"FLK-1044"},
)
print(json.dumps(sample, indent=2))The sample input is the worked case from Step 5, encoded as strings so the file runs without a repository. Replace those strings with real test bodies before you treat the output as a review artifact.
python tools/merge_ledger.py > receipt.json
python -c 'import json,sys; r=json.load(open("receipt.json")); sys.exit(0 if r["admit"] else 1)'The process exit status is the mechanical gate. A reviewer still reads
rejection_codesbefore any override. Overrides belong in the receipt as an explicit field, and they cannot convert freeze citations into credit.The scorer above does not compute
fixture_status, and it does not parse expiry. Intersect itsadmitflag with the Step 3 lock comparison, and feed it only flake ids that Step 4 already accepted. A true flag with a hash mismatch is stillR2.Step 7: Draft a missing predicate, then prove it locally
Disclosure: This article was prepared as part of MonkeyCode's product outreach. MonkeyCode's free model access has one job here. After anR1receipt lists uncovered symbols, you can ask a free model to draft candidateassert holds(...)lines from the diff. Those lines are untrusted text.Keep a draft only if you can restate the invariant without the draft in front of you, and only after a local run executes it on the patched code. A draft that merely restates the fixture file is class
fixture_eq, not credit.The free server option has a second, separate job. Once the local property lane is green, rerun that pure lane remotely and attach the log as confirmation. Confirmation is not credit. It does not clear
R2,R3,R4, orR6.A receipt that contains only a remote log is rejected. Both options are operator-supplied availability claims for this workflow. This article does not state a model name, quota, hardware profile, duration, or permanence. If either option is unavailable, compute the receipt locally.
admitmust not flip because a remote lane was missing.Step 8: Read four fields, in order
coverageequals 1.0. Anything lower returns to the author with the uncovered names.rejection_codesis empty. A lingeringR5means a fixture equality is still in the diff, even if some other predicate scored a point.- Each id in
freeze_citationsis baseline, signature-matched, and unexpired against the CI clock printed in the receipt. predicate_hashesmatch the test bodies in the diff. A hash that moved without a reviewed edit is a stale receipt, and stale receipts do not admit.
Merge only after those four checks. Do not lower the coverage bar to "most symbols" to clear a queue.
Limitations
The classifier is lexical. Helper-shaped properties becomeopaqueand produce falseR1results. Vacuous forms such asassert holds(True)can look like credit unless you add a constant check. Add that check before clearance means anything.Snapshot-heavy suites will collect
R5on almost every agent patch. That is a prompt to extract one invariant per change, not a prompt to disable the code. If you cannot name an invariant, this ledger does not fit that change.Expiry uses the clock you pass in. A drifted clock admits dead freezes. Pin the clock to the CI timestamp and print it beside
freeze_citations.Nothing here is a formal proof. A fluent predicate can still encode the wrong business rule. Load, migration, and security reviews stay outside the receipt.
Who should skip it
Skip the ledger on a mechanical rename that your policy already treats as non-behavioral. Also skip it when the edited code has no deterministic predicate without live third-party state. In that setting the strategy manufacturesR1noise, and a recorded interaction contract is the honest artifact instead.Do not adopt the ledger if you need the freeze file to grant merge credit. That need contradicts the rule. Do not use a free-model draft as the source of record, and do not file a free-server log as the only pull-request evidence.
Regulated teams should keep the local receipt, the lock file, and the CI timestamp in the archive their policy already names. On the next agent patch, start from the rejection codes rather than from a runner brand. The codes are the strategy. Remote confirmation stays optional.#testing #python #ai #devops #software #coding #development #engineering #inclusive #community
Changed Symbols Earn Property Credit, or the Agent Patch Stays Closed -
📚️ I was about to get into eReaders.
However, I had to find out:
The popular reader software #CrossPointReader uses genAI for development (Claude commits & everything). 😑
⇒ Does anybody know of another eReader software that is developed without genAI?
⇒ Or a non-slop fork of CrossPoint?
(similar to what @nerdnextdoor did for #vim with #evi, or @thomasadam did for #tmux with #openTmux)
#nonSlopFork #ereader #eink #neverslop #nogenai #ebooks #xteink #xteinkx3 #xteinkx4