EXP-008 / STATUS: ONLINE

占いサイトに「仕事運」を追加した。ランダムだけど毎回変わらない仕組み

朝見た結果が、昼に別の点数になっていたら落ち着かない。
同じ人が同じ日に見れば、同じ結果になる仕事占いを作った。
00 — INTRO

準備中だった仕事の部屋を開ける

ヨルシルベのトップには、以前から「仕事」というメニューを置いていた。ただし、表示はずっと準備中だった。

今回、その既存メニューを有効にして、仕事占いを実装した。メニューを増やしたわけではなく、置いてあった入口の先を作った形になる。

内容は「今日、仕事でどう立ち回るべきか」を考えるための小さなヒントにした。点数だけを見せても、そのあと何をすればいいかは分からない。

文章はヨイに合わせて、少し辛口。ただ、運勢が悪い日にまで追い打ちをかける必要はない。低得点では確認や休息を勧め、最後に少しだけフォローを残すことにした。

01 — RESULT

点数と、今日の立ち回り

結果画面には、今日の仕事運を0〜100点で表示する。その下にメインコメント、仕事の罠、今日の一手、ヨイの一言が続く。

例えば、チャットをテーマにしたパターンはこんな表示になる。以下の52点は表示例で、特定の生年月日から算出した結果ではない。

WORK FORTUNE / EXAMPLE

今日の仕事運:52点

連絡を短く整理すると進めやすい日。
話題を小分けに連投する前に、相手が返せる形にしろ。

仕事の罠

お疲れさまですだけ送って、相手を待機させる。

今日の一手

次の連絡は用件と希望期限を一通にまとめる。

ヨイの一言

「チャットで予告編を流すな。本編から始めろ。」

会社員が読んで、少し笑えて、一つくらいは行動を変えられる。そんな距離感を目指した。

02 — DETERMINISTIC

リロードで運勢を引き直させない

占いには、次に何が出るか分からない感じがほしい。でも、ページを開くたびに完全にランダムだと、こんなことになる。

42点
 ↓ リロード
87点
 ↓ リロード
15点

これでは、良い点が出るまで更新ボタンを押すゲームになってしまう。朝に見た助言を、昼にもう一度確認することもできない。

そこで、日本時間の日付を基準に、同じ条件ならその日の結果が固定される仕組みにした。ページを更新しても、日付が変わるまでは同じ結果を確認できる。

同じ生年月日・同じ日本日付なら、リロード後に再入力しても同じ点数と文章になる。生年月日を保存して利用者を識別しているわけではない。同じ生年月日の人には同じ結果が出るし、別の人と結果が重なることもある。

日付が変われば翌日の結果に切り替わる。ただし、文章の数は有限なので、後日に同じ文章が出ることはある。

03 — JAPAN TIME

「今日」を日本時間で揃える

日替わりなら、どの時間帯の日付を使うかも決める必要がある。

UTCではまだ前日でも、日本では翌日になっている時間がある。UTCの日付をそのまま使うと、日本の午前0時ではなく午前9時に結果が切り替わることになる。

日本時間 2026-09-14 00:00
UTC      2026-09-13 15:00

ヨルシルベでは、既存の総合運と同じくAsia/Tokyoの日付を使う。ブラウザの端末時計をもとに、日本時間の年・月・日を取り出して「今日」を決める。

画面を開いたままでも日付の変化を確認し、日本時間の日付が変われば結果を更新する。休止していたタブへ戻った時も確認する。端末時計を使うので、その時計がずれていれば日付の判定にも影響する。

04 — CONSISTENCY

総合運の仕事評価と足並みを揃える

既存の総合運ページにも、仕事運の5段階評価がある。そこで非常に良いと出ているのに、仕事専用ページでは最低点になると、同じサイトの中で話が食い違う。

仕事専用ページと総合運ページで印象が食い違わないよう、運勢の大きな方向性を揃えた。総合運の短い説明を繰り返すのではなく、仕事専用の具体的な助言として表示する。

05 — WRITING

職場でのひとこと

仕事占いの文章は、メインコメント・罠・一手・ヨイの一言が一つの話題として読めるようにしている。

扱うテーマは、会議、上司、同僚、部下、顧客、メール、チャット、資料、納期、残業、抱え込み、確認不足、集中力、サボり、人間関係、評価、無駄な仕事、断る勇気など。

単にラッキーと言われるより、次のメールを一通直そうと思える方がいい。ヨイの言葉も、職場で思い当たる場面から作った。

「上司の脳内まで担当範囲に入れるな。分からんなら聞け。」

「感じのいい返事と無料オプションは別物だぞ。」

「今日は割とうまくいく。ただし全部自分の実力だと思うな。」

正論を長く説明すると説教になる。短く言い切り、少し笑えるところで止めるのが難しい。

06 — TONE

点数が低い日ほど、追い込まない

高得点なら、小さな提案や得意な仕事を進める内容にする。ただし、良い結果でも調子に乗らせない。

中間の点数なら、連絡を整理する、結論を先に書くなど、いつもの仕事を進める具体策にする。

低得点なら、確認する、分担を相談する、休む、帰るといった守りの内容に寄せる。運勢の低さを本人の価値や能力と結びつけない。

「椅子を温めても評価は上がらない。最低限終えたら帰れ。それで十分だ。」

辛口でも、最後まで突き放す必要はない。悪い日に見た人が、今日はここまででいいと思える余地を残した。

07 — SHARE

共有するのは結果だけ

結果画面には「Xで共有」を追加した。X APIは使わず、投稿画面を開くWeb Intentを利用している。

投稿文には点数、メインコメントの冒頭、ヨイの一言、ハッシュタグを入れ、ヨルシルベの仕事占いURLを添える。

共有内容に生年月日は含めず、人に見せる結果だけを使う。共有ボタンを押しても即座に投稿されるわけではなく、Xの投稿画面で内容を確認してから投稿できる。

08 — IMPLEMENTATION

既存のフォームをそのまま使う

ヨルシルベ側では、主に次のファイルを追加した。

app/fortune/work/page.tsx
app/fortune/work/components/work-result.tsx
lib/fortune/work.ts
lib/fortune/work-messages.ts
tests/work.test.mjs

ページ、結果表示、占い処理、文章データ、テストを分けた。入力は既存の生年月日フォームを再利用し、仕事専用の入力UIは増やしていない。

生年月日の検証、日本時間の日付更新、入力と結果のクリアも既存処理を使う。CSSとキャラクター表示も流用し、総合運や恋愛から移動しても同じサイトとして使えるようにした。

09 — TESTS

同じ結果になることを、実際に確かめる

仕事占いの実装時にはlintとproduction buildが成功し、既存9件に新規7件を加えた全16テストが通った。

同じ条件では同じ日に結果が変わらないこと、表示項目が欠けないこと、総合運ページと大きな方向性が食い違わないことを確認した。

日付については、日本時間の午前0時、うるう日、年の変わり目を確認した。入力が未来の生年月日や存在しない日付なら、既存の検証で止める。

  • トップの既存仕事メニューからの遷移
  • 入力検証とクリア
  • リロード後に再入力した時の再現性
  • 生年月日を含まないX共有URL
  • スマートフォン幅での表示
  • 総合運・恋愛のフォームと既存テストへの影響

ブラウザで操作して、結果が出るところまで確認した。占いの当たり外れをテストすることはできないが、決めた入力に対して意図した動作をするかは確認できる。

10 — NEXT

小さな挙動で、違和感を減らす

今回のポイントは、ランダムに見える変化と、同じ日に見直せる安定した結果を両立することだった。

日付の切り替わりや、別ページの仕事運との関係まで揃える。小さな機能でも、このあたりを決めておくと、使っている時の違和感が減る。

ヨルシルベは、これからも少しずつ機能を増やしていく。まずは仕事の前に一度、ヨイの小言を聞いてみてもらえればと思う。

今日の仕事運を占う →
ヨルシルベを開く →

毎朝、少し違う便りを。
今日の答えは、今日のままで。