K-1 shares print by value; filed documents may print the company's own EIN

The first company's P1 cutover found the K-1 worksheet printing a
member's share as typed: "50%" read from a settings file printed
0.50, the same share kept by the books as 0.5 printed 0.5. Shares now
print at least two places whatever their spelling.

Every company document now goes into the books (D-20, owner,
2026-10-17), and formation papers and plans print the company's EIN,
which the filing scan refused as a printed TIN. It now passes the
company's own EIN, as its settings hold it, printed 2-7, and nothing
else; a vault TIN is still refused (rules.md B-26). Its refusal no
longer suggests converting a file to get past it.

plan/served.md: D-20; correcting a record's source without changing
its words (P5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
swaitsandClaude Opus 5.5 committed 2026-10-17 21:16:34 -06:00
1 parent 6c04342427
commit 8c123a13b1
7 files changed
+196 -22

No files matched your search

+5
View File
@@ -1755,6 +1755,11 @@ fn the_cpa_package_carries_the_k1_and_1099_worksheets_with_tins() {
assert_eq!(k1[0]["tin_last4"], "4915");
assert!(!k1[0].contains_key("tin"));
assert_eq!(k1[0]["ending_capital"], "950.00");
// "50%" in the settings file prints by its value, at two places, as
// it would had the books kept it as "0.5".
assert_eq!(k1[0]["share"], "0.50");
assert_eq!(k1[1]["share"], "0.50");
assert_eq!(k1[2]["share"], "1.00", "the members' total");
for bytes in plain.values() {
assert!(!holds_tin(bytes, MEMBER_SSN_DIGITS) && !holds_tin(bytes, EIN_DIGITS));
}
+39
View File
@@ -550,6 +550,45 @@ async fn text_with_a_vault_tin_or_a_printed_one_is_refused_and_a_bank_export_is_
accepted_everywhere(&c, &b, "members-0.csv", "member,tin\nKat,830835531\n").await;
}
/// INVARIANT 3b through the tools: the company's own EIN, as its
/// settings hold it, goes in printed 2-7 (formation papers, a business
/// plan) by every filing tool; another EIN, or the same nine digits
/// printed as an SSN, is still refused.
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn the_company_s_own_ein_goes_in_and_no_other() {
let b = books("own-ein");
let toml = std::fs::read_to_string(&b.toml).unwrap();
std::fs::write(
&b.toml,
toml.replacen(
"name = \"Tin Co\"\n",
"name = \"Tin Co\"\nein = \"12-3456789\"\n",
1,
),
)
.unwrap();
let (_server, url) = serve(&b);
let c = connect(&url).await;
accepted_everywhere(
&c,
&b,
"plan.md",
"# Tin Co business plan\n\nEIN 12-3456789, formed 2026-10-04.\n",
)
.await;
for (n, text) in [
"EIN 12-3456789; our vendor's is 20-5200615",
"as an SSN: 123-45-6789",
]
.iter()
.enumerate()
{
let path = b.out.join(format!("other-{n}.md"));
std::fs::write(&path, text).unwrap();
refused_everywhere(&c, &b, &path, &format!("other-{n}.md"), TIN_PRINTED).await;
}
}
/// INVARIANT 3 through the tools: UTF-16 text written without a
/// byte-order mark (ASCII so written is valid UTF-8, each digit followed
/// or led by a NUL) is read as the text it is, either way round: a vault