{
  "fetched_at": "2026-10-20T05:10:26Z",
  "source_url": "https://www.kaggle.com/competitions/gradient-ghoste-challenge-data-hack-3-0/data",
  "pages": [
    {
      "name": "data-description",
      "content": "The files found during the investigation:\n### Dataset Description\n\nThe dataset contains the following components:\n\n1. **Market Data (`market_data.csv`)**  \n   - A time-series dataset of daily market features over multiple years.  \n\n2. **Model Artifact (`oracle.pkl`)**  \n   - A pre-trained machine learning model along with any necessary preprocessing objects.  \n\n3. **Encrypted Message (`secrets.bin`)**  \n   - A binary file containing the protected message or data.  \n  \nExployte them wisely!!",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "### THE PROPHET\n\n**Dr. Yael Moran** wasn't supposed to be right.\n\nA computational neuroscientist turned quant researcher, Moran had joined Meridian two years prior after publishing a controversial paper on \"catastrophic overfitting in temporal neural networks.\" Her colleagues found her brilliant but paranoid - someone who saw ghosts in the gradients, phantoms in the patterns.\n\nShe had built ORACLE herself. Every feature, every hyperparameter, every line of validation code. She knew its strengths intimately. But she also knew its fatal flaw.\n\nStarting in July 2022, Moran began sending increasingly urgent memos to the Risk Committee:\n\n**July 12, 2022:** *\"ORACLE has never seen market volatility above 18%. We should stress-test regime changes.\"*  \n**Response:** \"Sharpe ratio remains strong. No action needed.\"\n\n**August 3, 2022:** *\"The model is memorizing calm-market artifacts. Feature importance analysis shows concerning dependencies on low-volatility indicators.\"*  \n**Response:** \"Model performance continues to exceed benchmarks.\"\n\n**September 21, 2022:** *\"I'm seeing structural breaks in the validation data. We need to halt trading and retrain on broader market conditions. This is urgent.\"*  \n**Response:** \"Risk Committee reviewed your concerns. ORACLE passes all stress tests. Stand down.\"\n\nOn September 28th, 2022 - five days before the collapse - Dr. Moran was scheduled to present emergency findings to the full Risk Committee. She never showed up.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "- **Don't cheat** — Play fair and follow the intended challenge rules.  \n- **Submission order counts** — The competition ranking will follow the order of submissions on Kaggle, not the time you solve the challenge.  \n- **Respect other participants** — Do not share solutions or hints outside the allowed channels.  \n- **Have fun** — Enjoy the challenge and learn while solving.\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "abstract",
      "content": "# 👻 GRADIENT GHOSTS\n### A Data Science CTF Challenge\n\n---\n\n## ☠️ THE MERIDIAN INCIDENT - CLASSIFIED\n\n**Date:** March 15, 2024  \n**Source:** Meridian Capital Risk Operations  \n**Classification:** INTERNAL ONLY - Unauthorized Distribution Prohibited  \n**Clearance Level:** Executive Committee & Board Only\n\n---\n\n### THE COLLAPSE\n\nOctober 3rd, 2022. 9:47 AM EST.\n\nThe algorithmic trading floor at Meridian Capital went silent. Not the productive quiet of focused work, but the stunned silence of watching billions evaporate in real-time.\n\n**ORACLE** - their flagship quantitative trading system - had just executed its largest position liquidation in company history. The model that had printed money for three consecutive years, the algorithm with a Sharpe ratio of 2.1 that the Risk Committee paraded in front of investors, had become a liability overnight.\n\nSix trading days. **Thirty-four percent of net asset value. Gone.**\n\nThe phone calls started immediately. Investors. The SEC. Board members demanding explanations. But the quantitative research team had none to give. ORACLE's backtests were pristine. Its validation metrics were textbook perfect. On paper, this should have been impossible.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "foundational-rules",
      "content": "The following Kaggle Competition Foundational Rules (“ Foundational Rules ”) apply to every competition regardless of whether the Sponsor creates competition-specific rules. Any competition-specific rules provided by the Sponsor are in addition to these rules, and in the case of any conflict or inconsistency, these Foundational Rules control and nullify contrary competition-specific rules.\n###GENERAL COMPETITION RULES - BINDING AGREEMENT\n####1. ELIGIBILITY\na. To be eligible to enter the Competition, you must be:</h5>\n1. a registered account holder at Kaggle.com; </h6>\n2. the older of 18 years old or the age of majority in your jurisdiction of residence (unless otherwise agreed to by Competition Sponsor and appropriate parental/guardian consents have been obtained by Competition Sponsor); </h6>\n3. not a resident of Crimea, so-called Donetsk People's Republic (DNR) or Luhansk People's Republic (LNR), Cuba, Iran, Syria, or North Korea; and</h6>\n4. not a person or representative of an entity under U.S. export controls or sanctions (see: [https://www.treasury.gov/resourcecenter/sanctions/Programs/Pages/Programs.aspx][1]).</h6>\n\nb. Competitions are open to residents of the United States and worldwide, except that if you are a resident of Crimea, so-called Donetsk People's Republic (DNR) or Luhansk People's Republic (LNR), Cuba, Iran, Syria, North Korea, or are subject to U.S. export controls or sanctions, you may not enter the Competition. Other local rules and regulations may apply to you, so please check your local laws to ensure that you are eligible to participate in skills-based competitions. The Competition Host reserves the right to forego or award alternative Prizes where needed to comply with local laws. If a winner is located in a country where prizes cannot be awarded, then they are not eligible to receive a prize.</h5>\n\nc. If you are entering as a representative of a company, educational institution or other legal entity, or on behalf of your employer, these rules are binding on you, individually, and the entity you represent or where you are an employee. If you are acting within the scope of your employment, or as an agent of another party, you warrant that such party or your employer has full knowledge of your actions and has consented thereto, including your potential receipt of a Prize. You further warrant that your actions do not violate your employer's or entity's policies and procedures.</h5>   \n\nd. The Competition Sponsor reserves the right to verify eligibility and to adjudicate on any dispute at any time. If you provide any false information relating to the Competition concerning your identity, residency, mailing address, telephone number, email address, ownership of right, or information required for entering the Competition, you may be immediately disqualified from the Competition.</h5>\n\n####2. SPONSOR AND HOSTING PLATFORM\n\na. The Competition is sponsored by Competition Sponsor named above. The Competition is hosted on behalf of Competition Sponsor by Kaggle Inc. (\"Kaggle\"). Kaggle is an independent contractor of Competition Sponsor, and is not a party to this or any agreement between you and Competition Sponsor. You understand that Kaggle has no responsibility with respect to selecting the potential Competition winner(s) or awarding any Prizes. Kaggle will perform certain administrative functions relating to hosting the Competition, and you agree to abide by the provisions relating to Kaggle under these Rules. As a Kaggle.com account holder and user of the Kaggle competition platform, remember you have accepted and are subject to the Kaggle Terms of Service at [www.kaggle.com/terms][2] in addition to these Rules.</h5>\n\n####3. COMPETITION PERIOD\na. For the purposes of Prizes, the Competition will run from the Start Date and time to the Final Submission Deadline (such duration the “Competition Period”). The Competition Timeline is subject to change, and Competition Sponsor may introduce additional hurdle deadlines during the Competition Period. Any updated or additional deadlines will be publicized on the Competition Website. It is your responsibility to check the Competition Website regularly to stay informed of any deadline changes. YOU ARE RESPONSIBLE FOR DETERMINING THE CORRESPONDING TIME ZONE IN YOUR LOCATION.</h5>\n\n####4. COMPETITION ENTRY\na. NO PURCHASE NECESSARY TO ENTER OR WIN. To enter the Competition, you must register on the Competition Website prior to the Entry Deadline, and follow the instructions for developing and entering your Submission through the Competition Website. Your Submissions must be made in the manner and format, and in compliance with all other requirements, stated on the Competition Website (the \"Requirements\"). Submissions must be received before any Submission deadlines stated on the Competition Website. Submissions not received by the stated deadlines will not be eligible to receive a Prize.</h5>\nb. Submissions may not use or incorporate information from hand labeling or human prediction of the validation dataset or test data records.</h5>\nc. If the Competition is a multi-stage competition with temporally separate training and/or test data, one or more valid Submissions may be required during each Competition stage in the manner described on the Competition Website in order for the Submissions to be Prize eligible.</h5>\nd. Submissions are void if they are in whole or part illegible, incomplete, damaged, altered, counterfeit, obtained through fraud, or late. Competition Sponsor reserves the right to disqualify any entrant who does not follow these Rules, including making a Submission that does not meet the Requirements. </h5>\n\n####5. INDIVIDUALS AND TEAMS\na. Individual Account. You may make Submissions only under one, unique Kaggle.com account. You will be disqualified if you make Submissions through more than one Kaggle account, or attempt to falsify an account to act as your proxy. You may submit up to the maximum number of Submissions per day as specified on the Competition Website. </h5>\nb. Teams. If permitted under the Competition Website guidelines, multiple individuals may collaborate as a Team; however, you may join or form only one Team. Each Team member must be a single individual with a separate Kaggle account. You must register individually for the Competition before joining a Team. You must confirm your Team membership to make it official by responding to the Team notification message sent to your Kaggle account. Team membership may not exceed the Maximum Team Size stated on the Competition Website.</h5>\nc. Team Merger. Teams may request to merge via the Competition Website. Team mergers may be allowed provided that: (i) the combined Team does not exceed the Maximum Team Size; (ii) the number of Submissions made by the merging Teams does not exceed the number of Submissions permissible for one Team at the date of the merger request; (iii) the merger is completed before the earlier of: any merger deadline or the Competition deadline; and (iv) the proposed combined Team otherwise meets all the requirements of these Rules. </h5>\nd. Private Sharing. No private sharing outside of Teams. Privately sharing code or data outside of Teams is not permitted. It's okay to share code if made available to all Participants on the forums.</h5>\n\n####6. SUBMISSION CODE REQUIREMENTS\na. Private Code Sharing. Unless otherwise specifically permitted under the Competition Website or Competition Specific Rules above, during the Competition Period, you are not allowed to privately share source or executable code developed in connection with or based upon the Competition Data or other source or executable code relevant to the Competition (“Competition Code”). This prohibition includes sharing Competition Code between separate Teams, unless a Team merger occurs. Any such sharing of Competition Code is a breach of these Competition Rules and may result in disqualification.</h5>\nb. Public Code Sharing. You are permitted to publicly share Competition Code, provided that such public sharing does not violate the intellectual property rights of any third party. If you do choose to share Competition Code or other such code, you are required to share it on Kaggle.com on the discussion forum or notebooks associated specifically with the Competition for the benefit of all competitors. By so sharing, you are deemed to have licensed the shared code under an Open Source Initiative-approved license (see [www.opensource.org][3]) that in no event limits commercial use of such Competition Code or model containing or depending on such Competition Code.</h5>\nc. Use of Open Source. Unless otherwise stated in the Specific Competition Rules above, if open source code is used in the model to generate the Submission, then you must only use open source code licensed under an Open Source Initiative-approved license (see [www.opensource.org][4]) that in no event limits commercial use of such code or model containing or depending on such code.</h5>\n\n####7. DETERMINING WINNERS\na. Each Submission will be scored and ranked by the evaluation metric stated on the Competition Website. During the Competition Period, the current ranking will be visible on the Competition Website's Public Leaderboard. The potential winner(s) are determined solely by the leaderboard ranking on the Private Leaderboard, subject to compliance with these Rules. The Public Leaderboard will be based on the public test set and the Private Leaderboard will be based on the private test set.</h5>\nb. In the event of a tie, the Submission that was entered first to the Competition will be the winner. In the event a potential winner is disqualified for any reason, the Submission that received the next highest score rank will be chosen as the potential winner.</h5>\n\n####8. NOTIFICATION OF WINNERS & DISQUALIFICATION\na. The potential winner(s) will be notified by email.</h5> \nb. If a potential winner (i) does not respond to the notification attempt within one (1) week from the first notification attempt or (ii) notifies Kaggle within one week after the Final Submission Deadline that the potential winner does not want to be nominated as a winner or does not want to receive a Prize, then, in each case (i) and (ii) such potential winner will not receive any Prize, and an alternate potential winner will be selected from among all eligible entries received based on the Competition’s judging criteria.</h5>\nc. In case (i) and (ii) above Kaggle may disqualify the Participant.  However, in case (ii) above, if requested by Kaggle, such potential winner may provide code and documentation to verify the Participant’s compliance with these Rules. If the potential winner provides code and documentation to the satisfaction of Kaggle, the Participant will not be disqualified pursuant to this paragraph.</h5>\nd. Competition Sponsor reserves the right to disqualify any Participant from the Competition if the Competition Sponsor reasonably believes that the Participant has attempted to undermine the legitimate operation of the Competition by cheating, deception, or other unfair playing practices or abuses, threatens or harasses any other Participants, Competition Sponsor or Kaggle.</h5>\ne. A disqualified Participant may be removed from the Competition leaderboard, at Kaggle's sole discretion. If a Participant is removed from the Competition Leaderboard, additional winning features associated with the Kaggle competition platform, for example Kaggle points or medals, may also not be awarded.</h5>\nf. The final leaderboard list will be publicly displayed at Kaggle.com. Determinations of Competition Sponsor are final and binding.</h5>\n\n####9. PRIZES\na. Prize(s) are as described on the Competition Website and are only available for winning during the time period described on the Competition Website. The odds of winning any Prize depends on the number of eligible Submissions received during the Competition Period and the skill of the Participants. </h5>\nb. All Prizes are subject to Competition Sponsor's review and verification of the Participant’s eligibility and compliance with these Rules, and the compliance of the winning Submissions with the Submissions Requirements. In the event that the Submission demonstrates non-compliance with these Competition Rules, Competition Sponsor may at its discretion take either of the following actions: (i) disqualify the Submission(s); or (ii) require the potential winner to remediate within one week after notice all issues identified in the Submission(s) (including, without limitation, the resolution of license conflicts, the fulfillment of all obligations required by software licenses, and the removal of any software that violates the software restrictions).</h5>\nc. A potential winner may decline to be nominated as a Competition winner in accordance with Section 3.8.</h5>\nd. Potential winners must return all required Prize acceptance documents within two (2) weeks following notification of such required documents, or such potential winner will be deemed to have forfeited the prize and another potential winner will be selected. Prize(s) will be awarded within approximately thirty (30) days after receipt by Competition Sponsor or Kaggle of the required Prize acceptance documents. Transfer or assignment of a Prize is not allowed. </h5>\ne. You are not eligible to receive any Prize if you do not meet the Eligibility requirements in Section 2.7 and Section 3.1 above.</h5>\nf. If a Team wins a monetary Prize, the Prize money will be allocated in even shares between the eligible Team members, unless the Team unanimously opts for a different Prize split and notifies Kaggle before Prizes are issued.</h5>\n\n####10. TAXES\na. ALL TAXES IMPOSED ON PRIZES ARE THE SOLE RESPONSIBILITY OF THE WINNERS. Payments to potential winners are subject to the express requirement that they submit all documentation requested by Competition Sponsor or Kaggle for compliance with applicable state, federal, local and foreign (including provincial) tax reporting and withholding requirements. Prizes will be net of any taxes that Competition Sponsor is required by law to withhold. If a potential winner fails to provide any required documentation or comply with applicable laws, the Prize may be forfeited and Competition Sponsor may select an alternative potential winner. Any winners who are U.S. residents will receive an IRS Form-1099 in the amount of their Prize.</h5>\n\n####11. GENERAL CONDITIONS\na. All federal, state, provincial and local laws and regulations apply.</h5>\n\n####12. PUBLICITY\na. You agree that Competition Sponsor, Kaggle and its affiliates may use your name and likeness for advertising and promotional purposes without additional compensation, unless prohibited by law.</h5>\n\n####13. PRIVACY\na. You acknowledge and agree that Competition Sponsor and Kaggle may collect, store, share and otherwise use personally identifiable information provided by you during the Kaggle account registration process and the Competition, including but not limited to, name, mailing address, phone number, and email address (“Personal Information”). Kaggle acts as an independent controller with regard to its collection, storage, sharing, and other use of this Personal Information, and will use this Personal Information in accordance with its Privacy Policy <[www.kaggle.com/privacy][6]>, including for administering the Competition. As a Kaggle.com account holder, you have the right to request access to, review, rectification, portability or deletion of any personal data held by Kaggle about you by logging into your account and/or contacting Kaggle Support at <[www.kaggle.com/contact][7]>.</h5>\nb. As part of Competition Sponsor performing this contract between you and the Competition Sponsor, Kaggle will transfer your Personal Information to Competition Sponsor, which acts as an independent controller with regard to this Personal Information. As a controller of such Personal Information, Competition Sponsor agrees to comply with all U.S. and foreign data protection obligations with regard to your Personal Information. Kaggle will transfer your Personal Information to Competition Sponsor in the country specified in the Competition Sponsor Address listed above, which may be a country outside the country of your residence. Such country may not have privacy laws and regulations similar to those of the country of your residence.</h5>\n\n####14. WARRANTY, INDEMNITY AND RELEASE \na. You warrant that your Submission is your own original work and, as such, you are the sole and exclusive owner and rights holder of the Submission, and you have the right to make the Submission and grant all required licenses.  You agree not to make any Submission that: (i) infringes any third party proprietary rights, intellectual property rights, industrial property rights, personal or moral rights or any other rights, including without limitation, copyright, trademark, patent, trade secret, privacy, publicity or confidentiality obligations, or defames any person; or (ii) otherwise violates any applicable U.S. or foreign state or federal law.</h5>\nb. To the maximum extent permitted by law, you indemnify and agree to keep indemnified Competition Entities at all times from and against any liability, claims, demands, losses, damages, costs and expenses resulting from any of your acts, defaults or omissions and/or a breach of any warranty set forth herein. To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless the Competition Entities from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from: (a) your Submission or other material uploaded or otherwise provided by you that infringes any third party proprietary rights, intellectual property rights, industrial property rights, personal or moral rights or any other rights, including without limitation, copyright, trademark, patent, trade secret, privacy, publicity or confidentiality obligations, or defames any person; (b) any misrepresentation made by you in connection with the Competition; (c) any non-compliance by you with these Rules or any applicable U.S. or foreign state or federal law; (d) claims brought by persons or entities other than the parties to these Rules arising from or related to your involvement with the Competition; and (e) your acceptance, possession, misuse or use of any Prize, or your participation in the Competition and any Competition-related activity.</h5>\nc. You hereby release Competition Entities from any liability associated with: (a) any malfunction or other problem with the Competition Website; (b) any error in the collection, processing, or retention of any Submission; or (c) any typographical or other error in the printing, offering or announcement of any Prize or winners.</h5>\n\n####15. INTERNET\na. Competition Entities are not responsible for any malfunction of the Competition Website or any late, lost, damaged, misdirected, incomplete, illegible, undeliverable, or destroyed Submissions or entry materials due to system errors, failed, incomplete or garbled computer or other telecommunication transmission malfunctions, hardware or software failures of any kind, lost or unavailable network connections, typographical or system/human errors and failures, technical malfunction(s) of any telephone network or lines, cable connections, satellite transmissions, servers or providers, or computer equipment, traffic congestion on the Internet or at the Competition Website, or any combination thereof, which may limit a Participant’s ability to participate.</h5>\n\n####16. RIGHT TO CANCEL, MODIFY OR DISQUALIFY\na. If for any reason the Competition is not capable of running as planned, including infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures, or any other causes which corrupt or affect the administration, security, fairness, integrity, or proper conduct of the Competition, Competition Sponsor reserves the right to cancel, terminate, modify or suspend the Competition. Competition Sponsor further reserves the right to disqualify any Participant who tampers with the submission process or any other part of the Competition or Competition Website.  Any attempt by a Participant to deliberately damage any website, including the Competition Website, or undermine the legitimate operation of the Competition is a violation of criminal and civil laws. Should such an attempt be made, Competition Sponsor and Kaggle each reserves the right to seek damages from any such Participant to the fullest extent of the applicable law.</h5>\n\n####17. NOT AN OFFER OR CONTRACT OF EMPLOYMENT\na. Under no circumstances will the entry of a Submission, the awarding of a Prize, or anything in these Rules be construed as an offer or contract of employment with Competition Sponsor or any of the Competition Entities. You acknowledge that you have submitted your Submission voluntarily and not in confidence or in trust. You acknowledge that no confidential, fiduciary, agency, employment or other similar relationship is created between you and Competition Sponsor or any of the Competition Entities by your acceptance of these Rules or your entry of your Submission.</h5>\n\n####18. DEFINITIONS\na. \"Competition Data\" are the data or datasets available from the Competition Website for the purpose of use in the Competition, including any prototype or executable code provided on the Competition Website. The Competition Data will contain private and public test sets. Which data belongs to which set will not be made available to Participants. </h5>\nb. An “Entry” is when a Participant has joined, signed up, or accepted the rules of a competition. Entry is required to make a Submission to a competition.</h5>\nc. A “Final Submission” is the Submission selected by the user, or automatically selected by Kaggle in the event not selected by the user, that is/are used for final placement on the competition leaderboard.</h5>\nd. A “Participant” or “Participant User” is an individual who participates in a competition by entering the competition and making a Submission.</h5>\ne. The “Private Leaderboard” is a ranked display of Participants’ Submission scores against the private test set. The Private Leaderboard determines the final standing in the competition.</h5>\nf. The “Public Leaderboard” is a ranked display of Participants’ Submission scores against a representative sample of the test data. This leaderboard is visible throughout the competition.</h5>\ng. A “Sponsor” is responsible for hosting the competition, which includes but is not limited to providing the data for the competition, determining winners, and enforcing competition rules.</h5>\nh. A “Submission” is anything provided by the Participant to the Sponsor to be evaluated for competition purposes and determine leaderboard position. A Submission may be made as a model, notebook, prediction file, or other format as determined by the Sponsor.</h5>\ni. A “Team” is one or more Participants participating together in a Kaggle competition, by officially merging together as a Team within the competition platform.</h5>\n\n  [1]: https://www.treasury.gov/resource-center/sanctions/Programs/Pages/Programs.aspx\n  [2]: http://www.kaggle.com/terms\n  [3]: http://www.opensource.org\n  [4]: http://www.opensource.org\n  [5]: https://www.kaggle.com/WinningModelDocumentationGuidelines\n  [6]: http://www.kaggle.com/privacy\n  [7]: http://www.kaggle.com/contact\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "💨 THE DISAPPEARANCE",
      "content": "**October 1st, 2022. 6:47 PM.**\n\nBuilding security footage shows Dr. Moran leaving her office on Floor 14. She's carrying only her bag, no laptop, no files. The timestamp is the last confirmed sighting.\n\nHer workstation was found exactly as she left it:\n- Coffee cup, half-full, gone cold\n- Sandwich from the cafeteria, one bite taken\n- Three monitors displaying ORACLE's live trading dashboard\n- And pinned to the center monitor, a handwritten note:\n\n```\nI hid what I know inside the thing that failed us.\nTo find the truth, you must first understand why it couldn't see.\nThe failure IS the key.\n                                                    — Y.M.\n```\n\nHer laptop was confiscated by IT Security. Her code repositories were frozen. Her desk was cleared within 48 hours.\n\nThe investigation team found:\n- 1,260 days of market data used to train ORACLE\n- The model artifact itself (Ridge regression with 20 features)\n- One encrypted binary file: `secrets.bin`\n- No decryption key\n- No further trace of Dr. Moran",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "🧐 THE INVESTIGATION",
      "content": "**March 2024 - Eighteen Months Later**\n\nThe Board hired you for one purpose: decrypt `secrets.bin`.\n\nThe forensic team believes Dr. Moran used ORACLE's own architectural flaws as the encryption key - a dead man's switch that would only yield its secrets to someone who truly understood why the model failed.\n\nShe didn't leave because she was wrong. She left because she knew she was right, and no one would listen.\n\n**You have three files:**\n- `market_data.csv` - Five years of daily market features (2019-2024)\n- `oracle.pkl` - The ORACLE model artifact\n- `secrets.bin` - Dr. Moran's encrypted final warning\n\n---\n\n## 🔐 DR. MORAN'S ENCRYPTED MESSAGE\n\nAnalysis of her workstation revealed fragments of notes. She was obsessed with three questions:\n\n### Fragment 1 - Found in her notebook (July 2022)\n```\n\"Which signals does it trust when the world is calm?\nThe answer is a sequence. Order matters.\"\n```\n\n### Fragment 2 - Scribbled on a printout of market data (August 2022)\n```\n\"Markets have hidden states. Three of them.\nWhen did the transitions happen?\nFind the breaks. Mark the moments.\nReturns and volatility together reveal the structure.\"\n```\n\n### Fragment 3 - Email draft never sent (September 2022)\n```\n\"On which day was ORACLE most dangerously confident?\nNot in the training set — it memorized those.\nThe worst prediction on unseen data.\nThat index holds the final piece.\"\n```",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "💡 CRYPTANALYSIS NOTES",
      "content": "From the forensic team's analysis of Dr. Moran's coding patterns:\n\nShe favored **reversible transformations** that could be undone if you knew the keys. Her background in computational neuroscience suggests an approach inspired by neural network layers.\n\n**Observations:**\n- The encrypted file is exactly 48 bytes (ASCII-printables).\n\n**Partial recovered note from her desk:**\n```\n\"Three layers. Three failures. Three keys.\nThe model's blindness becomes the cipher.\nTo decrypt, understand what it couldn't see.\"\n```",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "🔍 ADDITIONAL CLUES (Under Discovery)",
      "content": "The investigation team will release new findings as the analysis progresses. \nCheck back here if you get stuck - forensic evidence takes time to process.\n\n\n**Found in her notebook margin (July 2022):**  \nThe ink had partially faded, but forensic enhancement made it barely legible. The note reads:  \n*\"Vertraue nicht dem, was es statisch gelernt hat – beobachte, was zerbricht, wenn jedes Signal gestört wird.\"*  \n\nInvestigators noted that the sentence was written in German, consistent with Dr. Moran’s background.\n\n**Whiteboard Observation (Investigator’s Note, August 2022)**\nA chart … mostly a neural network… formed of layers that contain letters. Still figuring out what they are.\n\n\n**Recovered Chart Fragment (August 2022)**\nInvestigators found a printed volatility chart pinned beside Dr. Moran’s monitor. Three distinct regions were lightly shaded in pencil, separated by vertical lines drawn with unusual precision. In the margin, a single sentence was written:\n\n*\"The market speaks in states, not in days. Watch how return and uncertainty move together - the boundaries will reveal themselves.\"*\n\n**From recovered Python scripts on her workstation:**\n- Multiple imports of sklearn.inspection\n- Clustering analysis notebooks with 3-component models\n- Residual plots with annotations: \"worst case = ?\"\n\n# Inspection Report Wave 2\n\n## 🔍 ADDITIONAL CLUES - INVESTIGATION UPDATES\n\n\n#### ** Evidence Photo #1: The Whiteboard Chart**\n\nInvestigators finally enhanced the whiteboard photo from Dr. Moran's office. What appeared to be a \"neural network diagram\" was actually an **encryption flow chart**:\n\n```\n         PLAINTEXT (48 chars)\n              ↓\n    ┌─────────────────────┐\n    │   Layer 1: +C       │  ← Single shift (0-25)\n    └─────────────────────┘\n              ↓\n    ┌─────────────────────┐\n    │   Layer 2: +A[i%8]  │  ← Cycle through 8 values\n    └─────────────────────┘\n              ↓\n    ┌─────────────────────┐\n    │   Layer 3: ⊕B[i%4]  │  ← XOR with 4 bytes\n    └─────────────────────┘\n              ↓\n         CIPHERTEXT\n         \n    Note: All operations mod 128\n    Decrypt: reverse order (Layer 3 → 2 → 1)\n```\n\n**Beside the diagram, three annotations:**\n- **C**: \"worst day % 26\"\n- **A**: \"TOP 8 trusted signals\" \n- **B**: \"FIRST 4 transitions → bytes\" exp: ['0x95', '0xab', '0xc0', '0xd8']\n\n---\n\n#### **📝 Evidence Photo #2: Code Comment Fragment**\n\nFound in Dr. Moran's deleted Jupyter notebook cell:\n\n```python\n# CRITICAL: ORACLE forecasts tomorrow, not today!\n# Target construction:\ny = np.roll(daily_return, -1)  \ny[-1] = 0\n\n# Without this shift, your analysis is meaningless.\n# This is why the model \"predicts the future.\"\n```\n---\n\n#### **📊 Evidence Photo #4: Volatility Chart Annotation**\n\nThe printed volatility chart had pencil marks with this note:\n\n```\nGMM setup:\n- window=5 for rolling vol\n- random_state=42, n_init=10\n- smooth with mode filter (~11 days)\n- skip 20+ days between changepoints\n  \nFirst 4 transitions → [day_idx % 256 for each]\n```\n\nHere is a code from the Dr's notebook, found in the trash:\n\n```python\n# 1. SETUP (CRITICAL - DO THIS FIRST!)\nreturns = df[\"daily_return\"].values\ny = np.roll(returns, -1)  # Tomorrow's return\ny[-1] = 0\n\n# 2. KEY-A: Permutation importance → TOP 8\nperm = permutation_importance(model, X_train, y_train, \n                              n_repeats=30, random_state=42)\nKey_A = np.argsort(perm.importances_mean)[::-1][:8]\n\n# 3. KEY-B: GMM changepoints → FIRST 4 as bytes\nrolling_vol = pd.Series(returns).rolling(5).std().fillna(0.005)\nX_gmm = np.column_stack([returns, rolling_vol.values])\ngmm = GaussianMixture(n_components=3, random_state=42, n_init=10)\n# ... find changepoints, take first 4 ...\nKey_B = bytes([changepoints[i] % 256 for i in range(4)])\n\n# 4. KEY-C: Worst test prediction → mod 26\nresiduals = np.abs(y - model.predict(X_scaled))\nresiduals[train_indices] = 0\nKey_C = np.argmax(residuals) % 26\n```\n\n**The clock is ticking. Dr. Moran left you everything you need.**",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "🧩 YOUR MISSION",
      "content": "1. **Analyze ORACLE's blind spots** - Study the model to understand what it learned and where it failed\n2. **Extract three keys from three failures** - Each fragment points to a different analysis\n3. **Reconstruct the decryption scheme** - Reverse-engineer how Dr. Moran encrypted the message\n4. **Recover the flag** - Format: `FLAG{...}`\n\nThe forensic team has provided you with Python, scikit-learn, and standard data science libraries. Dr. Moran was an expert in machine learning validation - her encryption will require the same expertise to break.\n\n## 📦 ENVIRONMENT SETUP\n\n```bash\npip install numpy pandas scikit-learn joblib\n```\n\nYou'll need knowledge of:\n- Machine learning model analysis\n- Time series pattern detection\n- Prediction error analysis\n- Cryptography and reverse engineering",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "🧠 FINAL THOUGHTS",
      "content": "Every analysis you perform to decrypt this message is an analysis that should have been performed before ORACLE was deployed.\n\nDr. Moran didn't just hide a message. She created a test - one that only someone who understands machine learning failure modes could pass.\n\n**The decryption is the lesson. The flag is the warning.**\n\n---\n\n### Dr. Moran's Final Memo (Internal, August 2022)\n\n*\"A model that cannot imagine a world it has not seen is not intelligence.*  \n*It is memory with confidence.*  \n*And when reality changes, that confidence becomes catastrophic.\"*\n\n---\n\n## 🔍 WHERE IS DR. MORAN?\n\nThe investigation remains open. If you successfully decrypt the message, you may understand why she chose to disappear rather than watch her warnings be ignored again.\n\nThe question isn't whether she was right.  \n**The question is: what did she know that she couldn't say out loud?**\n\nFind the flag. Understand the failure. Learn the lesson.\n\n---\n\n*Good luck, investigator. The ghosts are waiting in the gradients.*\n\n**— Meridian Capital Board of Directors**  \n**March 15, 2024**",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Submission",
      "content": "Submit a CSV file with exactly two rows:\n\n```\nid,FLAG\n0,PUT_YOUR_FLAG_HERE\n\n```\n\nReplace `PUT_YOUR_FLAG_HERE` with your recovered flag.  \n**Example:**\n\n```csv\nid,FLAG\n0,FLAG{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}\n```\n\nMake sure your CSV contains only these two rows with the header `id,FLAG`.",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}