Skip to content

Paper Moon

Choose a tag to compare

@deeprnd deeprnd released this 09 Sep 11:53
· 1999 commits to main since this release

What Progressed In The Story

Tickoni has learned how to turn a plain-English investing thesis into a bounded paper decision.

The user can now:

  • express an investing idea in normal language,
  • see how Tickoni understands it,
  • get an explainable basket,
  • see what was rejected and why,
  • preview a trade ticket,
  • check affordability,
  • paper-place the valid ticket,
  • see cash and portfolio impact,
  • replay the decision,
  • and catch tampering.

Want the changelog first? Skip the Tickoni story and jump to the release notes ↓

Chapter 5: Paper Moon

assets/banners/banner.png

Three days after the ghost ships sank, the Ledger Sea turned white.

Thousands of origami cranes floated across the water, each bearing a company name or an amount in red ink. One brushed against Tickoni’s boat.

Maro unfolded it.

Inside was written:

Double before sunrise.

A bell rang beyond the horizon.

Every crane lifted from the sea and flew east.

They led the boat toward a floating city built from chained ships, lantern bridges, gambling decks, and towers roofed with folded paper.

Above the harbor hung an enormous white moon.

Thin ropes suspended it between the tallest masts. Lanterns burned behind its surface, making it glow brighter than the stars.

— A paper moon, — Maro said.

— Bright enough to hide a crease, — Tickoni replied.

At the city’s center stood a bronze bell beneath a painted sign:

THE THOUSAND-CRANE AUCTION

By rule, no real coins moved here. Traders used ori, folded paper currency that existed only inside the auction’s practice ledgers.

Every crane carried a paper trade.

Most ended there.

Some traders later carried their winning cranes into the real market.

Maro watched one merchant celebrate an imagined fortune while another tore his failed crane apart.

— No one can truly lose here, — he said.

— Practice can teach discipline, — Tickoni replied. — Or appetite.

At the end of the main bridge stood a stall shaped like a fox’s mouth.

A round-faced trader waited inside.

He wore a blue silk robe, round spectacles without glass, and a smile polished smooth by repetition.

— Saburo, — he announced. — Master folder of favorable winds.

Tickoni examined the empty spaces where official marks should have been.

— Licensed by whom?

Saburo spread his paws.

— By results.

— Results issue no licenses.

Maro placed his ticket on the counter.

After surviving the funayurei, he had chosen the smaller basket.

The ironworks.

The cloud tower.

The cable maker.

The basket required 2,000 ori, leaving enough practice cash to keep the boat above its safety line.

His payment to the boatwright remained separate, awaiting renewed approval.

Saburo examined the ticket.

— Modest.

— Bounded, — Tickoni said.

Saburo laid down a square of pale-blue washi, fine handmade paper.

His paws moved quickly.

Corner to corner.

Edge to center.

Wing beneath wing.

As the crane took shape, Maro’s idea appeared across it: three islands supporting the hidden machinery of artificial minds.

The names of the investments marked its wings.

2,000 ORI appeared across its breast.

The untouched reserve ran along its back.

Maro lifted the finished crane.

For the first time, he could see the whole trade at once.

Not a wish.

A choice.

A cannon fired above the harbor.

— Final launch! — shouted the auction callers.

The crowd surged toward the Moon Deck.

Maro placed the genuine crane safely inside his coat.

Saburo watched him leave.

Then Saburo opened a hidden drawer and removed another sheet of blue washi.

He copied Maro’s handwriting, his basket, and even the small thumbprint near the crane’s tail.

But across its breast he wrote:

25,000 ORI

The Moon Deck curved around the highest ship in the city.

Across a gap of black water hung the bronze bell.

Between the traders and the bell roared an artificial storm. Giant fans churned the air. Pipes fired steam. Sailors pulled ropes to change the wind without warning.

The auction master stood beneath the paper moon, wearing a mask with one smiling face and one weeping face.

— The first crane to strike the bell shall be crowned the market’s chosen one!

The crowd roared.

Some traders kissed their cranes.

Others had folded blades into the wings.

One boy held a crane made from his family’s land deed.

Tickoni touched Maro’s coat.

The flame-script beneath its ribs answered.

Receive.

Carry.

Check.

Record.

Stop.

— Your crane knows its path, — Tickoni said.

Saburo appeared beside them carrying a spool of golden ribbon.

— Every crane needs an auction ribbon before launch.

— You did not mention that before, — Maro said.

— A formality.

Tickoni looked at the gold thread.

— What does the gold ribbon say?

— Why, a winner, of course.

Saburo held out one paw.

— Your crane, please.

Maro handed it over.

Saburo carried the crane to the ribbon table. His sleeves covered his paws for only a moment.

Then he returned a pale-blue crane tied with gold thread.

— Ready for the premium wind.

Maro reached for it.

Tickoni caught Saburo’s wrist.

— Give him back the real one.

Maro stared at the crane.

— That is the real one.

— It looks like yours, — Tickoni said. — It does not carry your choice.

Saburo laughed.

— Same trader. Same three investments. I merely gave the crane enough courage to win.

— What did you change? — Maro asked.

Tickoni turned the bird over.

Hidden beneath its folded breast were the words:

25,000 ORI

Maro’s face hardened.

— I chose two thousand.

— Twenty-five thousand flies faster, — Saburo said.

— Twenty-five thousand does not exist in my ledger.

The nearby traders began to chant.

— Let it fly!

— Paper only!

— Let the bell decide!

Above them, the false moon glowed brighter, smoothing every crease beneath its white light.

Maro looked at Tickoni.

— Can we prove the crane was changed?

Tickoni placed the forged bird on the deck.

Then Maro removed the genuine crane, which Saburo had hidden beneath the ribbon table.

— Unfold them, — Tickoni said.

Saburo stepped back.

— That will destroy them.

— A true path survives being traced.

Tickoni opened the genuine crane.

Each reversed fold released an image into the air.

Maro naming his thesis.

Choosing the three islands.

Rejecting the fourth.

Setting the amount at 2,000 ori.

Preserving his reserve.

The paper returned to a flat blue square.

At its center remained Maro’s original choice.

Tickoni unfolded the copy.

The first images matched.

Then, at the seventh fold, Saburo’s paw appeared.

It changed.

For an instant, it became Maro’s hand, right down to the thumbprint.

Maro stared.

— A shape-shifter.

— Tanuki, — Tickoni said.

Two thousand became twenty-five thousand.

The reserve vanished.

A golden fold appeared beneath the amount.

LIVE SETTLEMENT

A path ran from the practice ledger toward Maro’s real purse.

A hidden crease pointed past every inspection gate and directly toward the bell.

A red line burned across the air.

First difference: amount changed.

The crowd fell silent.

Saburo snapped his fingers.

Every crane he had folded rose from the city at once.

Hundreds filled the sky.

Inside each one, a hidden change awakened.

Savings became debt.

Small trades became enormous wagers.

Copies became originals.

The cranes rushed toward the bell.

Tickoni’s ribs ignited.

One line received the swarm.

One carried each crane’s history.

One checked every fold against its maker’s choice.

One recorded every difference.

One became a wall across the sky.

The genuine cranes passed through.

The altered cranes struck the barrier and burst open.

Their paper trades remained paper.

Their hidden settlement paths did not.

A widow found borrowed ori beneath her name.

A fisherman discovered that his modest trade had been multiplied tenfold.

The boy found his family’s land deed folded into the trade.

He tore it from the crane before it reached the storm.

The crowd turned on Saburo.

The tanuki leaped onto the ropes supporting the paper moon.

— You cannot stop desire!

— I am stopping your hand from wearing its face, — Tickoni replied.

Saburo pulled one final golden crane from his sleeve.

Across its wings was written:

EVERYTHING

The bird grew as it flew, swallowing smaller cranes and darkening the false moon.

Maro held his genuine blue crane.

— Mine cannot beat that.

— It does not need to.

The golden crane reached the bell first.

Its beak struck bronze.

No sound came.

It struck again.

Nothing.

The bell did not recognize its path.

The bird crashed into the moon’s ropes.

The paper moon tore from top to bottom.

Lantern light poured through the wound as the golden crane collapsed into blank sheets.

Behind the false moon, the real night sky appeared.

Maro stepped to the edge of the deck.

— I do not need to win this auction.

He released his crane.

The storm caught it.

Steam tore at its wings. Faster birds passed above it. Larger ones struck the wind around it.

But the blue crane did not chase them.

It passed through the first gate.

Then the second.

Then the third.

At each gate, a lantern lit.

Trader.

Basket.

Amount.

Limits.

Cash remaining.

Choice.

The crane touched the bell.

Gong.

Above the harbor, the completed paper trade appeared.

Three positions entered Maro’s practice ledger.

His ori balance fell by the chosen amount but remained safe.

No debt appeared.

No forbidden instrument entered.

The boatwright’s payment remained separate.

Then the crane’s entire journey began again.

Maro’s words.

The folded basket.

The checks.

The launch.

The gates.

The bell.

Every step repeated exactly.

Beside Saburo’s ruined copy appeared the same red line:

First difference: amount changed.

The guards seized the tanuki.

At dawn, Tickoni and Maro returned to the Ledger Sea.

The blue crane rested on the mast.

Maro opened his practice ledger.

The positions were there.

So were the 2,000 ori spent and the ori left untouched.

Nothing had become real money.

Yet nothing was imaginary.

The trade had followed its path.

Its consequence had been shown.

Its journey had been recorded.

Its forgery had failed.

Maro looked at the seals beneath Tickoni’s ribs.

— Nothing returned this time.

Tickoni looked down at the two black marks.

Ticket.

Weight.

Both had returned only when the sea revealed a law Tickoni did not yet carry.

Tonight had been different.

The ticket had already known Maro’s choice.

The weight had already known what the false crane would cost him.

Firedancer’s paths had carried the history, checked it, recorded it, and exposed the first broken fold.

Nothing new had been found.

Something old had been tested.

— No, — Tickoni said.

— No what?

— No missing piece.

Tickoni looked back at the torn paper moon.

— Not every lesson is a missing piece, — Tickoni said.

Behind them, workers lowered the torn paper moon.

Ahead, the real sky brightened over the sea.

Maro closed the ledger.

— What happens after paper trading?

Tickoni raised the sail.

— Then the sea has to carry what we choose.

Release Notes

Release: M1 — The Paper Moon

M1 completes Tickoni’s first consumer-money journey:

invest -> see impact

A user can now turn an investment thesis into a bounded, explainable, policy-gated, replayable trade. Nothing executes live until M11: Guarded Money Movement. Nothing can bypass the ticket path. Every important step leaves evidence.

Headline Features

1. Natural-Language Investment Thesis

You can now give Tickoni an investing idea in plain English.

Example:

I want to invest USD 2,000 in AI infrastructure, but avoid single-name concentration and keep it to US-listed ETFs or large-cap equities.

Tickoni normalizes this into structured intent:

  • theme,
  • target notional,
  • account,
  • allowed asset classes,
  • excluded asset classes,
  • market,
  • venue,
  • sector/theme preference,
  • risk and concentration preferences.

2. Explainable Basket Construction

Tickoni builds a deterministic basket from the thesis and instrument catalog.

It shows:

  • eligible candidates,
  • proposed allocations,
  • dollar amounts,
  • percentage weights,
  • why each instrument belongs,
  • and which instruments were rejected.

Rejected instruments now get clear reasons, such as:

  • outside market scope,
  • unsupported venue,
  • restricted instrument,
  • leveraged ETF,
  • inverse ETF,
  • option,
  • future,
  • out-of-theme exposure.

The basket is not just “here are tickers.”

It is a structured answer to:

“Why does this belong in the thesis?”

3. Affordability and Guardrail Checks

Before a ticket can be placed, Tickoni checks:

  • cash available,
  • buying power,
  • remaining daily notional,
  • remaining monthly notional,
  • open orders,
  • concentration,
  • restricted instruments,
  • account scope,
  • market scope,
  • asset-class scope.

The result can be:

  • allowed,
  • resized,
  • blocked,
  • approval-required,
  • evidence-required,
  • or escalated.

For the demo path:

  • USD 2,000 AI infrastructure trade is allowed.
  • USD 25,000 variant is denied with exact limit reasons and effective maximum.
  • Restricted SOXL path is denied before quote or fill work.

4. Trade Ticket and Execution

Tickoni now converts a valid basket into a trade ticket.

The ticket includes:

  • line-item orders,
  • buy/sell direction,
  • market/limit type support,
  • estimated cost,
  • validation identity,
  • proposal hash,
  • capability envelope,
  • policy decision,
  • account,
  • environment,
  • deterministic action ID.

Execution is bound to the validated ticket.

A policy allow is not enough by itself.
A direct placement attempt is not enough.
A guessed action ID is not enough.

No valid ticket, no fill.

5. Save-As-Proposal

Valid tickets can be saved as proposals instead of placed immediately.

This gives Tickoni its first real “pause before action” shape:

research -> ticket -> proposal -> later decision

That becomes important for future approval flows, community review, and collaborative investing workflows.

6. Portfolio and Cash Impact

After the trade, Tickoni shows the impact.

The demo includes:

  • before/after portfolio exposure,
  • sector exposure changes,
  • ETF exposure changes,
  • single-name concentration checks,
  • before/after cash,
  • pending obligations,
  • thesis state,
  • drift status.

In the M1 demo, the story includes:

  • technology exposure changing from 22% to 31%,
  • ETF exposure changing from 36% to 43%,
  • single-name concentration staying below 8%,
  • cash changing from USD 5,240.18 to USD 2,002.76 after trade and pending supplier payout proposal.

7. Thesis Cards and Proposal Cards

Tickoni now persists decision objects instead of treating outputs as disposable chat responses.

M1 includes:

  • thesis cards,
  • proposal cards,
  • rationale,
  • evidence links,
  • approval state,
  • expiry state,
  • drift status.

This is the beginning of Tickoni’s memory model for investing decisions.

Not “chat history.”

Decision history.

8. Drift Alerts

Tickoni can now flag when a thesis or proposal starts drifting.

Examples:

  • sector exposure warning,
  • allocation breach,
  • concentration breach,
  • instrument ineligibility,
  • buying-power change,
  • approval expiry,
  • evidence expiry,
  • cash-buffer breach.

No autonomous rebalancing happens in M1.

Tickoni can suggest.
Tickoni can warn.
Tickoni can prepare.

It does not silently trade.

Governance and Safety

Governed Tile Path

The investment demo now runs through the governed Tickoni path instead of being only a direct function demo.

The release path includes:

  • tkcase
  • tkdisp
  • tkagnt
  • tkmodl
  • tktool
  • tkadpt
  • tkaudt
  • tkrepl

The Phase 0 payment pipeline remains separate.

Model Boundary: tkmodl

Model calls now go through a governed tkmodl boundary.

This adds:

  • model identity,
  • provider allowlist,
  • endpoint mapping,
  • hard timeouts,
  • hard request limits,
  • budget fields,
  • replay substitution,
  • fail-closed denials.

Unknown models fail closed.
Disabled providers fail closed.
Oversized requests fail closed.
Replay can substitute captured model output without calling a live provider.

No-Bypass Placement

Placement is now bound to:

  • validated ticket,
  • proposal hash,
  • capability envelope,
  • policy decision,
  • account,
  • environment,
  • deterministic action ID.

Direct placement bypass attempts are denied.

This is one of the core M1 contract wins.

Audit and Replay

M1 includes audit and replay for the trade loop.

Replay uses captured inputs and substitutions.

Replay does not call:

  • live model providers,
  • brokers,
  • market-data providers,
  • trading systems,
  • payment systems,
  • execution systems.

Tamper detection now reports the first divergent field and sequence.

The system can say:

“This is where the story changed.”

Demo

Run the M1 demo with:

just test-demo-tk

The demo prints the full Paper Moon story:

  1. Plain-English AI infrastructure thesis.
  2. Normalized bounded intent.
  3. Explainable basket.
  4. Rejected restricted instruments with exact reasons.
  5. USD 2,000 affordability check.
  6. Allowed ticket and fill.
  7. USD 25,000 denial with exact limits.
  8. SOXL denial before quote or fill work.
  9. Direct-placement bypass denial.
  10. Before/after portfolio impact.
  11. Before/after cash impact.
  12. Thesis card and proposal card persistence.
  13. Drift alerts.
  14. Replay success with zero live effects.
  15. Tamper detection with first divergent field and sequence.

What Comes Next: M2: Governed Harness Runtime

M1 cleared the Paper Moon.

Tickoni can now take an investing idea, test it in shadow, show the impact, and leave a replayable trail. The first contract holds.

M2 is where Tickoni leaves the harbor.

The next milestone focuses on making the product easier to run, easier to see, and easier for the community to try:

  • Process And Shared-Memory Topology — so the governed runtime moves from logical tile boundaries to real supervisor-managed processes and shared-memory links.
  • macOS support — so builders, investors, and contributors on Mac can join the journey.
  • Windows support — so more users can run Tickoni without needing a Linux-first setup.
  • Cleaner local setup — fewer sharp edges for community testing.
  • More visible story progression — thesis, ticket, result, impact, and replay should feel like one connected journey, not scattered terminal output.