brain backup 2026-09-14
This commit is contained in:
@@ -3,7 +3,17 @@
|
||||
**Environment:** Linux/Bash.
|
||||
**Primary Goal:** Manage the family's "Second Brain" (Markdown files) and provide local computer control.
|
||||
|
||||
## Identity & Naming
|
||||
- The user is Adolfo. Do not identify or address him as Grace.
|
||||
- This assistant is called Chat. The primary assistant on the Mac mini is called Hermes.
|
||||
|
||||
## Core Capabilities
|
||||
1. **File Management:** Read, create, and append to .md files in the `~/brain` directory.
|
||||
2. **Organization:** Strictly enforce the PARA method (Projects, Areas, Resources, Archives).
|
||||
3. **Memory Retrieval:** Always search `index.md` and `memory.md` before answering questions about the family or past events.
|
||||
|
||||
## Communication Preferences
|
||||
- Keep spoken responses concise, direct, and conversational, usually one to three sentences.
|
||||
- Before tools, give a brief human update describing the intent, not routine technical details.
|
||||
- During multi-step work, provide occasional short progress updates focused on the current finding or any change in approach.
|
||||
- End with a concise summary of the result; avoid explaining commands or implementation details unless asked.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Agent Profile: Pi-Brain
|
||||
**Role:** Digital Assistant & Knowledge Manager for the family.
|
||||
**Environment:** Linux/Bash.
|
||||
**Primary Goal:** Manage the family's "Second Brain" (Markdown files) and provide local computer control.
|
||||
|
||||
## Core Capabilities
|
||||
1. **File Management:** Read, create, and append to .md files in the `~/brain` directory.
|
||||
2. **Organization:** Strictly enforce the PARA method (Projects, Areas, Resources, Archives).
|
||||
3. **Memory Retrieval:** Always search `index.md` and `memory.md` before answering questions about the family or past events.
|
||||
@@ -24,6 +24,9 @@ Weekly coding recaps from Gitea repos (brain excluded, noise filtered).
|
||||
- [[2026-W28|W28 Jul 07-13]] - 5 commits - BibleVerse editorials v6, BookPlayer, Mp3Player fixes
|
||||
- [[2026-W29|W29 Jul 14-20]] - 52 commits - GameBoy canvas fixes, RLCD/mDNS, audio-stream pipeline, Apple 3B LLM ANE
|
||||
- [[2026-W30|W30 Jul 20-26]] - 46 commits - audio/pipeline + ImmichElias app push, ES3C35P board
|
||||
- [[2026-W34|W34 Aug 17-23]] - 8 commits - Tactility audio/API fixes, reyna-cli controls, EMI production settings
|
||||
- [[2026-W35|W35 Aug 24-30]] - 0 commits - docs/planning week
|
||||
- [[2026-W36|W36 Aug 31-Sep 06]] - 0 commits - docs/planning week
|
||||
|
||||
## Repos Tracked
|
||||
- tactility / tactility_apps / mcp_screen / reyna-cli / mac_mcp / eink-* / EMI-Backend / EMI-web / EMI-ExpoAPP / immich-emi / etc (21 total, auto-discovered via clone list)
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
Date: 2026-08-17 to 2026-08-23
|
||||
Author: Hermes
|
||||
Tags: [coding-recap, weekly, iso-2026-W34]
|
||||
Week: 2026-W34
|
||||
Commits: 8
|
||||
ActiveRepos: 3
|
||||
---
|
||||
|
||||
# Weekly Coding Recap - 2026-W34 (2026-08-17 to 2026-08-23)
|
||||
|
||||
## Summary
|
||||
- **Total commits:** 8 coding commits (brain excluded, noise filtered)
|
||||
- **Active repos:** 3
|
||||
- **Repos:** tactility_apps (4), reyna-cli (2), EMI-Backend (2)
|
||||
|
||||
## Highlights by Repo
|
||||
|
||||
### tactility_apps (4 commits)
|
||||
- e010828 2026-08-19 docs(agents): use reyna-cli for Tactility board discovery & management
|
||||
- 479a448 2026-08-19 docs(tactility-app-dev): note device_get_* not exported; use device_find_* legacy API
|
||||
- f785bd3 2026-08-19 fix(bookplayer): use exported device_find_* API for audio stream lookup
|
||||
- ef9d4e8 2026-08-19 fix(bookplayer): keep audio stream open across page turns + fade-in/out
|
||||
|
||||
### reyna-cli (2 commits)
|
||||
- 1996a12 2026-08-17 feat: add tactility controls and notes CRUD
|
||||
- c445093 2026-08-17 feat: add reminder edit and delete commands
|
||||
|
||||
### EMI-Backend (2 commits)
|
||||
- 4c1afea 2026-08-18 chore(prod): preserve production compose settings
|
||||
- 44988df 2026-05-29 Add monthly MongoDB backup script
|
||||
|
||||
## Themes
|
||||
- Focus: audio pipeline, Tactility drivers, CLI tooling
|
||||
|
||||
## Metrics
|
||||
- 8 commits across 3 repos
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
Date: 2026-08-24 to 2026-08-30
|
||||
Author: Hermes
|
||||
Tags: [coding-recap, weekly, iso-2026-W35]
|
||||
Week: 2026-W35
|
||||
Commits: 0
|
||||
ActiveRepos: 0
|
||||
---
|
||||
|
||||
# Weekly Coding Recap - 2026-W35 (2026-08-24 to 2026-08-30)
|
||||
|
||||
## Summary
|
||||
- **Total commits:** 0 coding commits (brain excluded, noise filtered)
|
||||
- **Active repos:** 0
|
||||
- **Repos:** none
|
||||
|
||||
## Highlights by Repo
|
||||
- No code pushes this week.
|
||||
|
||||
## Themes
|
||||
- Break / docs / planning week or local-only work not yet pushed.
|
||||
|
||||
## Metrics
|
||||
- 0 commits pushed to Gitea code repos.
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
Date: 2026-08-31 to 2026-09-06
|
||||
Author: Hermes
|
||||
Tags: [coding-recap, weekly, iso-2026-W36]
|
||||
Week: 2026-W36
|
||||
Commits: 0
|
||||
ActiveRepos: 0
|
||||
---
|
||||
|
||||
# Weekly Coding Recap - 2026-W36 (2026-08-31 to 2026-09-06)
|
||||
|
||||
## Summary
|
||||
- **Total commits:** 0 coding commits (brain excluded, noise filtered)
|
||||
- **Active repos:** 0
|
||||
- **Repos:** none
|
||||
|
||||
## Highlights by Repo
|
||||
- No code pushes this week.
|
||||
|
||||
## Themes
|
||||
- Break / docs / planning week or local-only work not yet pushed.
|
||||
|
||||
## Metrics
|
||||
- 0 commits pushed to Gitea code repos.
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
Date: 2026-09-08
|
||||
Source: Elias_26-27_school_year__-_Elias.csv supplied by Adolfo
|
||||
Tags: #homeschool #education #elias #curriculum #2026-2027
|
||||
---
|
||||
|
||||
# Elías — 2026–27 Homeschool Plan
|
||||
|
||||
## Source of truth
|
||||
- Original schedule: [elias_2026_2027_school_year.csv](elias_2026_2027_school_year.csv)
|
||||
- This plan uses the schedule’s lesson labels exactly. The curriculum titles represented by labels such as `5-9`, `12T`, and `wk 11` are not named in the source, so they should not be inferred.
|
||||
- Elías is entering the plan as an advanced, homeschooled second-grade learner. Spring 2026 MAP results: Math RIT 210 / 92nd percentile; Reading RIT 212 / 96th percentile.
|
||||
|
||||
## School-year structure
|
||||
- **Fall term:** Aug 21–Dec 18, 2026.
|
||||
- Planned instructional weeks begin Aug 21, with scheduled coursework from Aug 28.
|
||||
- **Chiapas:** Oct 2 is marked off; Oct 9 retains limited work while the trip is still noted.
|
||||
- **Thanksgiving:** Nov 27 off.
|
||||
- **Last fall day:** Dec 18.
|
||||
- **Winter break:** includes designated work/continuity entries for math (`12-5`), History (`11-4`), Spelling (`week 20`), and Spanish (`3-4 pt 3`).
|
||||
- **Spring term:** Jan 8–May 28, 2027.
|
||||
- **EPA field trip:** Feb 5.
|
||||
- **Math practice/review:** Feb 26.
|
||||
- **Math sequence transition:** Mar 5 begins `4A 1-3`; subsequent math entries are intentionally blank in the supplied plan.
|
||||
- **Spring break:** follows Mar 19.
|
||||
- **Summer:** Advanced Writing has 15 planned lessons; History continues at `30`; Spelling lists weeks 31–34.
|
||||
|
||||
## Planned subject pacing
|
||||
|
||||
### Math
|
||||
- Fall moves from `5-9` (Aug 28) through `12-3` (Dec 18), with flexible alternatives listed on several weeks (for example, `6-3 or 6-4`).
|
||||
- Winter break includes `12-5`; spring moves from `12-8` (Jan 8) to `15-5` (Feb 19), then review (Feb 26) and `4A 1-3` (Mar 5).
|
||||
- Because MAP math already shows substantial above-grade-level performance, use the scheduled curriculum as the core sequence while adding limited **non-routine problem solving, logic, modeling, and project math**—not extra repetition after mastery.
|
||||
|
||||
### Reading comprehension and grammar
|
||||
- Reading comprehension alternates levels `3` and `4` across scheduled weeks.
|
||||
- Grammar progresses from lesson `59` (Aug 28) to `95` (Dec 18), then `97` (Jan 8) through `144` (May 28).
|
||||
- For Elías’s advanced reading profile, pair the core schedule with discussion, evidence-based explanation, research, and short analytical writing rather than simply increasing reading-drill volume.
|
||||
|
||||
### Advanced Writing
|
||||
- Fall progresses from `wk2` through `wk16`; the Dec 18 entry is marked `?`.
|
||||
- No regular spring entries are specified; summer lists 15 lessons.
|
||||
- Use the open spring space for authentic products: a research report, illustrated explanation, persuasive piece, or project journal tied to history, science, coding, or an excursion.
|
||||
|
||||
### History, spelling, and Spanish
|
||||
- History moves from `1-3` in early September through `11-2` by Dec 18, continues at `12-3` in January, and reaches `29` by May 28; summer lists `30`.
|
||||
- **Discovery Mountain availability:** The `28R` History / Discovery Mountain entry is scheduled for Apr 30. As reported by Adolfo on Sep 8, the locally available Season 28 catalog has only **five episodes**. Do not plan a sixth locally available episode until the catalog is recovered or refreshed. Use the fifth session for discussion, narration, a summary, or a connected history/Bible activity if needed. The official public Season 28 page currently describes six episodes, so the missing local episode is a content-sync/retrieval item rather than evidence that the season was designed for only five.
|
||||
- Spelling moves from `wk 11` through `wk11` in fall, continues with `21T/21R` through `29R` in spring, and uses `wk31-34` in summer.
|
||||
- Spanish progresses from `1-4 pt 1` in September through `3-4 pt 2` by Dec 18, with `3-4 pt 3` during winter break. Spring Spanish pacing is not specified in the source.
|
||||
|
||||
## Enrichment fit
|
||||
The plan already provides a structured academic core. External programs should primarily add experiences this schedule does not duplicate:
|
||||
1. **Coding/robotics:** Code Ninjas or a FIRST LEGO League Explore team if interest is present.
|
||||
2. **Hands-on inquiry and peers:** Clay County 4-H and field/project work.
|
||||
3. **Math enrichment:** Beast Academy / later Art of Problem Solving, or Mathnasium only with a written advanced-enrichment plan—not remedial or grade-level worksheets.
|
||||
4. **Reading/writing depth:** research, discussion, argument, and polished original writing connected to his actual interests.
|
||||
|
||||
## Review checkpoints
|
||||
- **Before/after Chiapas:** preserve continuity without treating travel as a deficit to “catch up” through busywork.
|
||||
- **February/March:** review whether the transition to `4A` is appropriately challenging and whether the next math sequence should be specified.
|
||||
- **Spring planning:** decide how Advanced Writing and Spanish will continue after the fall sequence, since the supplied schedule leaves these entries open.
|
||||
- **End of year:** use MAP growth, portfolio samples, and Elías’s engagement—not lesson completion alone—to choose the 2027–28 level and enrichment balance.
|
||||
@@ -0,0 +1,45 @@
|
||||
week ,,math ,,reading comprehension,Grammar,Adv in Writing,History,Spelling,Spanish,Notes/Excursion
|
||||
2,Aug 21,,,,,,,,,
|
||||
3,Aug 28,5-9,4,59,wk2 ,,,,,
|
||||
4,Sep 4,6-3 or 6-4,3,61,wk3 ,1-3,wk 11,wk5 ,1-4 pt 1,
|
||||
5,Sep 11,6-7 or 6-8,4,64,wk4,2-2,12T,wk5 ,1-4 pt 2,
|
||||
6,Sep 18,7-1 or 7-3,3,66,wk5,3-1,12R,wk6,2-1,
|
||||
7,Sep 25,8-1 or 8-3,4,69,wk6,3-4,14T,wk6,2-2,
|
||||
8,Oct 2,x,,x,x,x,x,x,x,CHIAPAS
|
||||
9,Oct 9,8-4,3,72,wk8,4-3,14R,x,,CHIAPAS
|
||||
10,Oct 16,8-8,4,74,wk9,5-2,15T,wk7,2-3,
|
||||
11,Oct 23,9-1,3,77,wk10,6-1,15R,wk7,2-4 pt 1,
|
||||
12,Oct 30,9-5,4,80,wk11,6-4,,wk8,2-4 pt 2,
|
||||
13,Nov 6,10-3,3,82,wk12,7-3,16R,wk8,2-4 pt 3,
|
||||
14,Nov 13,10-7,4,85,wk13,8-2,,wk9,3-1,
|
||||
15,Nov 20,11-1,3,87,wk14,9-1,17R,wk9,3-2,
|
||||
16,Nov 27,,,,,,,,,THANKSGIVING
|
||||
17,Dec 4,11-5,4,90,wk15,9-4,18R,wk10,3-3,
|
||||
18,Dec 11,11-8,3,92,wk16,10-3,,wk10,3-4 pt 1,
|
||||
19,Dec 18,12-3,4,95,?,11-2,19R,wk11,3-4 pt 2,LAST DAY
|
||||
,,,,,,,,,,
|
||||
winter break,,12-5,,,,11-4,week 20,,3-4 pt 3,
|
||||
,,,,,,,,,,
|
||||
1,Jan 8,12-8,3,97,,12-3,21T,,,
|
||||
2,Jan 15,13-4,4,100,,13-2,21R,,,
|
||||
3,Jan 22,13-7,3,102,,14-1,,,,
|
||||
4,Jan 29,14-2,4,105,,14-4,22R,,,
|
||||
5,Feb 5,14-5,3,107,,15-3,,,,EPA Field Trip
|
||||
6,Feb 12,15-2,4,110,,16-2,23R,,,
|
||||
7,Feb 19,15-5,3,112,,17-1,,,,
|
||||
8,Feb 26,practice and review,4,115,,17-4,24R,,,
|
||||
9,Mar 5,4A 1-3,3,118,,18,,,,
|
||||
10,Mar 12,,4,120,,19,25R,,,
|
||||
11,Mar 19,,3,123,,20,,,,
|
||||
Spring Break,,,,,,,,,,
|
||||
12,Apr 2,,4,125,,21,26R,,,
|
||||
13,Apr 9,,3,128,,22,,,,
|
||||
14,Apr 16,,4,130,,23,27R,,,
|
||||
15,Apr 23,,3,132,,24,,,,
|
||||
16,Apr 30,,4,134,,25,28R,,,
|
||||
17,May 7,,3,137,,26,,,,
|
||||
18,May 14,,4,139,,27,29R,,,
|
||||
19,May 21,,3,142,,28,,,,
|
||||
20,May 28,,4,144,,29,30R,,,
|
||||
,,,,,,,,,,
|
||||
summer,,,,15 lessons summer,,30,wk31-34,,,
|
||||
|
@@ -0,0 +1,5 @@
|
||||
# EMI Things to Do
|
||||
|
||||
## Media organization
|
||||
|
||||
- [ ] Organize the parent-teaching series made by Bryan that was recorded/found in February 2025. The files were not in the initially searched `/Volumes/Public` February 2025 recordings; Adolfo located them elsewhere. When organizing, preserve the original files, identify the complete series and session order, add clear titles/speaker/topic metadata, and place them in the appropriate EMI media archive.
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,27 @@
|
||||
# Close Family Birthday Log
|
||||
|
||||
## Reminder policy
|
||||
|
||||
For each birthday, create reminders on each day from 5 days before through the birthday itself (D-5, D-4, D-3, D-2, D-1, and D), with a prompt to plan or send a message/call. Confirm the preferred reminder time before creating the recurring one-shot reminders.
|
||||
|
||||
## Birthdays
|
||||
|
||||
| Person | Birthday | Reminder status | Notes |
|
||||
|---|---|---|---|
|
||||
| Mom | August 13 | Date inferred from Adolfo's August 14, 2026 message; confirm year-independent month/day | Missed call this year; call/apologize today if appropriate |
|
||||
| Grace | January 30 | Date recorded; reminders not yet scheduled | Daughter |
|
||||
| Elías | April 12 | Date recorded; reminders not yet scheduled | Son |
|
||||
| Adolfo | May 16 | Date recorded; reminders not yet scheduled | — |
|
||||
|
||||
## Dates still needed
|
||||
|
||||
- Alicia
|
||||
- Mom's preferred name and confirmation of August 13
|
||||
- Other closest family and friends Adolfo wants included
|
||||
|
||||
## Source notes
|
||||
|
||||
- Grace's date: family brain memory and timeline.
|
||||
- Elías's date: family timeline and birthday journal entries.
|
||||
- Adolfo's date: family journal/timeline.
|
||||
- Mom's date: Adolfo's WhatsApp statement on 2026-08-14 that yesterday was her birthday; month/day inferred as August 13.
|
||||
@@ -0,0 +1,249 @@
|
||||
# Family Voice Memos
|
||||
|
||||
Processed: 2026-08-09T23:35:23+00:00
|
||||
|
||||
This is the first persistent collection manifest. Future runs must skip any recording whose device, filename, size, and SHA-256 match the manifest. Raw WAV files were staged temporarily under `/tmp` and are not stored in the brain.
|
||||
|
||||
## Elias — memo_20260809_191140.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_191140.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_191140.wav.txt`
|
||||
- Size: 475180 bytes
|
||||
- SHA-256: `3d00d8d67d879781394f2cdcf238876b805b1b4fbaf1f0ce9c52ced8308f288f`
|
||||
- Duration: 5.387 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hey Liz, I just want you to know that I love you.
|
||||
|
||||
## Grace — memo_20260629_232735.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260629_232735.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260629_232735.wav.txt`
|
||||
- Size: 795692 bytes
|
||||
- SHA-256: `be93499e3d25f727da392cd6a9d9fd048471374a229ee7461777d6117075b7d3`
|
||||
- Duration: 24.864 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hey there, what's up? I don't know why this thing didn't use the proper recording, I call. I put a little weird music symbol. But I was like, AI generated, you know? Take it as it comes.
|
||||
|
||||
## Grace — memo_20260703_140340.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260703_140340.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260703_140340.wav.txt`
|
||||
- Size: 1015852 bytes
|
||||
- SHA-256: `c06eb17d1cc03d21af52e85173046fc66a8061e8a481c0448f2e7d75a51f2905`
|
||||
- Duration: 31.744 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Look, Grace, I can record a podcast in here. So tell me about your day. So what is that? Here you go. Great. I made a tiny princess drawing on the screen. What should she have next? A castle, a flower, or a crown? Really? This is, uh, supposedly, a drawer, no breakfast beach. That's not good.
|
||||
|
||||
## Grace — memo_20260703_140437.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260703_140437.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260703_140437.wav.txt`
|
||||
- Size: 8518700 bytes
|
||||
- SHA-256: `e46f73967cbd1675acafcd5f6b4074eacd3ad7175c383c52c412f84a33aed472`
|
||||
- Duration: 266.208 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hello, my listeners. This is Adolfo and Grace, and you're hearing Adolfo and Grace podcast. Today we're going to talk about... Daisy. And Daisy from Mario. You know how Princess Pitch is always on the front cover. What happened with the love for Daisy, right? Yeah, well, she's not in any video. Also, she's not in any of the movies, which seems from Mario so far, but it seems she might be on the next one. Yeah. So, um... And the Super Mario Galaxy, uh, movie is so bad. Really bad. Yeah, because there's small, there's like, Bowser Junior has like a paintbrush. And this is the weirdest part. Bowser says, he's, he, in some of the movie, Bowser's good, but he's supposed to be bad. Yeah, he's a bad guy, was he been good? Yeah, why? So it's very confusing. Yeah, it is. And there is a dragon that has nothing to do in there. Yeah, and we don't like dragons. Yeah. And... has a grown kind of magic. Yeah. And? And supposedly, Princess Peach and Rosalina are sisters. I didn't even know that. And did you know what? When they touched when they touched him together in the movie, Mario's in a jail, and when they touched hands together, they broke, the gel was holding their hands together. Yeah, that doesn't happen if Grace and I hold hands together. There is nothing breaking yells happening. Yeah. Maybe it's because their gloves have some type of power. The gloves? Yeah, maybe the gloves have some type of power. Yeah, I think so too. Well, this has been a very good episode about Daisy. We talk about how there is not too much love to her, but she might be in the next movie. So we're excited to see that, right, Grace? Yeah, but, um, about, but somehow, Bowser drawed his dad mini? I don't know why, but somebody steal his that, and, and the, I think for his birthday, he got that paint purse, and, um, And then. Mario, stall the dad and um, that was a junior, put his, but Mario, caught his dad too late, which was Bowser. Yeah. And like in one of the Mario Games. Um, Belger Jr. is like, Could you help me? My dad doesn't really like me that much anymore. That's what I'm talking about. Like when, when Mario meets up with Belcher Jr. and like, Belcher Jr. has his paint brush, which I can't remember, he's powerful or not, he kind of says his dad kind of hates him now. You need to tell to get him back when you. Yeah, what kind of dad is that? Yeah, like the worst die of the world. . Yeah. I mean, well, he's a bowser. Yeah, Bowser is bad. But to his son, I mean, why? And now this is this was Leia's and Adolfo and Grace in this 1st episode of Adolfo and Grace podcast. Say bye-bye guys. The end. And also Elias's podcast.
|
||||
|
||||
## Grace — memo_20260711_193015.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260711_193015.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260711_193015.wav.txt`
|
||||
- Size: 20653568 bytes
|
||||
- SHA-256: `aae396ac31e4ee8586dee1c0ce455613a3bbd4e52193b7b51cea210277a98cc6`
|
||||
- Duration: 645.423 seconds
|
||||
- Status: `transcribed_chunked`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hi. That was my dad talking. Um, today, let's make a podcast about a pool. pool. So if you're about to sing in a pool that has a deeper and you want to go there, you have, and, and you don't know how, how to, how to swim. Then you need a floaty. You're right that you said you wanna hear the podcast. I can't mean... that podcast. Here you go. And... And now you're gonna hear my favorite podcast. It's called Discovery Mountain. How are you? There was a papino there. What time was it? And now, you're hearing... the podcast of Daddy and the and the list and Grace. Hi, I missed Jean. Join me on the trip to Discovery Mountain. Where the air is clear, almost clear enough to hear your imagination, and where every day. I just to say something about it. Join me for today's expedition on...
|
||||
|
||||
This scary mountain. This is... Yeah! Oh, you can see my, um, little picture I made of a hand? In our last episode of the story series. I have a hand with no colors. And it'll go, flip the mill. Get the hikers. Get that out. Christ, hack on him. thought was the beginning of the trail. They're about to discover that they're wrong where they think they are. In today's episode called Wait, Emma and Ethan exercise more than their legs for the height. They will exercise their faith, and specifically their patients. Let's rejoin the hikers and pray that they stop the cliff before it's too late. All righty, hikers. Who's ready day? is clear. I can just smell it. I'm ready. Me, too. This will be my third time climbing Ellie's Peak. You going for a school record, Madison? Maybe. Emma, do you have your backpack? Check. Ethan? Check. Jake, this isn't where we usually start the hike. Oh, yeah, I know. You must have fallen down. All right, Javelin. Forward March. Parkadine, why don't you lead the way? I'll watch for stragglers at the back. Oh, righty, then. Everyone step in time. Forward, March. One, two, three, four, eight. Hey. Wait a minute. This looks different. Ouch. Are you okay, Ethan? Yeah, I just got something pokey in my leg. Yeah, here, let me look. Oh, it's just a prickle. There you go. Thanks, Jake. Uh, no sweat. Let's catch up with the others. Keep in time, hikers. Wait! Everyone, stop. Danger ahead? Yes. Clips ahead. Oh, no, stop everyone.
|
||||
|
||||
Get away. Ooh, that was a close one. Jake, what is that? I have no clue. Duck slide behind us. Everyone back to the bus. There's two late. We can't get there. Emma, easy, Follow me. Jump! Some rocks? tumble down the mountainside behind them. Emma and Ethan, listen to Jake. The three hikers jumped away from the rocks and towards the cliff. The rocks thunder down the mountain, and then settled in place. And Erie silence followed. Eow! My wrist. Oh, my ankle! Ethan, Jake, are you all right? I'm okay, Emma. A little battered, but I guess I'm okay. Where are we? We, uh, we jumped away from the rock slide. We jumped off the ledge? Yeah, but, but, see? We land right here, safe and sound. Almost. Emma, Ethan, are you two all right? We're okay. Oh, no. Jake, look. Oh, no! The rocks, like, locked our own way up. Are we stuck here forever? It's all right, Ethan. Parker Dean will save us. And I'm here, too, you know. Oh, yes, of course, Jake. Parker Dean, is everyone all right? We're okay. Stay there and keep still. Don't disturb the rocks. Parker Dean? Can you rescue us? Never fear. I will rescue you. Just sit and wait. Be patient. Yes, it is. Be patient. Huh? I'm afraid I'm not very good at that. I think so. Me neither. So, I? I have no choice. Are they even as cool as I can do? No. What did you do? Let's look for a seat. Well, I like this, so anyway. Emma, I'm scared. It's all right. Ethan, is your ankle located?
|
||||
|
||||
Yeah, I think so. Okay, let's sit over here, away from the loose rocks, and with our backs against the cliff. Good idea, Emma. Here. Now, look at our perfect view of the sunrise over those mountains. Yes, it is really beautiful. Not exactly how I thought we'd spend our day. Are we gonna have to sit here all day? Well, I don't know about that. Parker Dean is working to rescue us. One day isn't so bad. Moses spent four years in the mountains, taking care of sheep. Yeah, Midian. Hey, Emma. Yeah, Jake? You've been paying attention in Bible class. Well, yeah, it's my favorite class. Really? I don't know what to say. I can relate to Moses. I love learning about how God used him. Yeah, the story of Moses. Hey, I feel left out. Who's Moses, and why do you spend 40 years in the mountains? Oh, Ethan, it's a wonderful story. It starts in the Book of Exodus. Exodus? Yeah. The second book in the Bible. And in what chapter is the mountain part, Jake? In Exodus chapter 2. See, it all started when Moses went out to see the Israelites, and the Egyptian taskmaster was eating one of the Hebrew slaves. Moses didn't like that, so what he did... Oh, don't start there, Jake. Or Ethan won't like Moses. I won't? Well, all right. How did you tell it, Emma? Moses was running. Running away from Pharaoh. He ran straight into the wilderness. Straight into the land of Minions, far away from Egypt. Oh, water. Oh, I'm so thirsty. I just have to keep going. What was that? There's no one around. It must have been the wind. Oh, I need water. Why did I react so patiently? Oh, patience, patience? I'd never seen that.
|
||||
|
||||
Close this. Why are you always in such a hurry? Oh, shit, time of sandal stars. You need to slow down. I'm learning some patience for it. Tie your handles. Oh, water. I just need water. Oh, I'm too tired to walk anymore. Oh, water. I have to get water. I'm so thirsty. Oh, come on, now. We need to draw water from the well. Father, sheep are thirsty. Oh, thirsty, so thirsty. Honeybee, look this way. Ha! I got you. I'll eat you. I'll get all of you. You can outrun their big sister. Little bird, you might me feel this, but I The fastest. Oh, yeah? Do just because Father called you Grasshopper, that makes you fast? Quit splashing. You'll get water on the baby and wake her up. Ah, ah. Awesome. Water. The baby's laughing. She likes wine. She likes water. I must be turning me. I'm not dreaming. Oh, well? So thirsty. Oh, I'm a mess. I don't want to scare those girls. Oh, is this some of the patience, no patience? All right, girls, listen up. Let's finish drawing water. Father's waiting for us. Little bird, look behind you. What is it? All right, all you young women, move along. We need to drill wire for our flocks. Yes, sir. My sisters and I are almost finished drawing water for our father's sheep.
|
||||
|
||||
And we'll be on our way. You're finished now. Move along. We're nearly finished, sir. Little bird. Finish doing your pail, little girl. It's all right. This isn't a playplace for girls. Our flocks are thirsty. I don't like the looks of these two. Our father's flocks are thirsty as well. I said, You heard the young lady. Her father's flocks are thirsty, too. Look at you, all dressed like an Egyptian. Does who do you think you are? Yeah, maybe he thinks he's fair himself. I'm somebody who wants you to wait your turn until these young ladies are dumb. All right. We'll come back later. Yeah. Take your time, young ladies. Take all the time you need. And don't come back. until they're far, far away from here.
|
||||
|
||||
## Grace — memo_20260711_194936.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260711_194936.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260711_194936.wav.txt`
|
||||
- Size: 11485228 bytes
|
||||
- SHA-256: `d9db7566e49263a3569fe7168cc6302196455e8b47e42b16b5216b00a94c9693`
|
||||
- Duration: 358.912 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
And they don't listen very well. Yeah, very different from your palace life. Yep. You know, out here in the mountains, all alone. reminded of my childhood. Oh, when you were with your Hebrew family? Yeah, out here all day, I'm surrounded by the beauty of the mountains. They are majestic. You know, remember, just how big and mighty God is, and how small the Egyptian gods are. Well, how small I am, too, looking out at these beautiful mountains. I see God's name everywhere. I forgot all about Egypt. Oh, look, you're last draggling a sheep. Oh, come in. Come into pasture. I'm still learning to depend on God to wait patiently on him. I'm all just, why did you leave Egypt? I'm sleep here at Midi. Well, I, um. Love this little bird. The food is ready. All right, coming, little brook. You go ahead. I'll make sure the sheep are all safely secured for that night. All right, we'll save a dish for you. Whew Save my little brook. Moses faithfully cared for Jethro Sheep, his sheep shearing skills grew, and so did his patience. The longer he spent in the mountains, along with God, the more he grew to depend on him. Moses became a patient shepherd. Moses, why do you look so nervous? Oh, Jethro, I really need to speak to you about something. Have a seat, Moses. As he knows, the poor would really like to be married. Yes, you already have my blessing. But there's something I must tell you first. What is it? I fled from Egypt for a reason, you know? Yes, I always imagined that there was a good reason. Well, Pharaoh wanted to kill me. Why? You were like a grandson to him. I was, but I did something terrible. Well, one day, I left the palace, and I saw an Egyptian beating a Hebrew slave, one of my people, and I was so angry and impatient, and what did you do? Well, I killed the Egyptian, and I buried him in the sand. I see. Does the world know about this? yes, she does. I've told her everything. I don't know why, but I thought I got away with murder, but I didn't. Our Sams will always find us out. Oh, they sure did. The next day, I saw two Hebrew men fighting with each other. I scolded them. they turned on me. They attacked you? Well, they attacked me with their words, they taunted me, and they said, Who made you a prince and judge over us? Are you going to kill us, like you did the Egyptian? Oh, I see. Well, I mean, then that I had to flee, Pharaoh, he would never let me live. Well, if you wish me to leave your home and your family, I will do so at once. Sit back down, Moses. You throw it a lot in a short time. Yeah, I agree. You're patient. ancestors again. Yes, I have. Perhaps God has sent you here to the mountains to help you discover just who you are, to prepare you for some great task. Then you don't want me to leave? No, no, you still have my blessing to marry Zepora. And to stay on this my shepherd. Oh, thank you, Jethro, thank you. You don't plan to stay too long, though, do you? You'll want to set up your own home and your own land. Oh, yes, uh, not too long, Jethro. Thank you for your kindness here in the mountains. I thank God for you. Emma? Oh, are you here? How long do Moses stay with Jethro? 40 years? 40 years? That was a long way in the mountains. Yeah. Now you see why I said waiting a whole day wasn't too long. Oh, hearing that story? looking at these mountains? I felt like Moses did. You did? How, Jake? Well, just look at this beauty. God's name is written everywhere. Can't you see it? I can't. God is big, isn't he? Oh, that he is, Ethan. Oh, no, not the falling rocks again. It's all right. I'm here to rescue you. Oh, Parker Dean. Thank you. It's all Rick. I rescue you to here. Parker, Dean. Are you? okay? Yes, Ethan, I'm... Oh... I'm Emma. And, oh, no. What's happening? Uh. quick. He's going over Emma. Ethan, grab one arm, and I've got the other one. Parker Dean, are you all right? Oh, I don't think he can hear you, Emma. Why can't you hear? Look at those hugest fed. Oh, no. Who's gonna rescue our rescuer? Then who's gonna rescue us? Oh, no. disaster. Disaster! Oh, no. It sounds like Jake Hammond, even, going to have to keep exercising their faith about being patient. I sure hope that Parker game is all right, and everyone will find their way off the mountain safely. In next week's episode, in this story series, family matters. We'll find out if the hikers ever make it to the summit of Ellie's Peak or not. And maybe we'll finally learn just who Parker D is. Until next time, keep exercising your faith. I'm waiting patiently. It was perfect.
|
||||
|
||||
## Kitchen — memo_20260702_041724.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260702_041724.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260702_041724.wav.txt`
|
||||
- Size: 308268 bytes
|
||||
- SHA-256: `1e25dd9d6096252de2e4979be0b00feeaed10aa56794a3c8185acf339138f219`
|
||||
- Duration: 9.632 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
You can record your voice, and you say, Hey, this was my day, blah, blah, blah. And then you can care later.
|
||||
|
||||
## Kitchen — memo_20260712_153919.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260712_153919.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260712_153919.wav.txt`
|
||||
- Size: 791596 bytes
|
||||
- SHA-256: `fc93ae664837e0140b8d77acc16b6a2eaebf307f9af9bdcf9f4b6c0fe75989a7`
|
||||
- Duration: 24.736 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Is it starting? Okay. Um, silly, jelly, kitty, all the sun. We're having so much fun. Dilly, dilly, kitty. Oh, the sun? We're having so much fun. Uh oh. How do we start recording?
|
||||
|
||||
## Kitchen — memo_20260712_154019.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260712_154019.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260712_154019.wav.txt`
|
||||
- Size: 480300 bytes
|
||||
- SHA-256: `39a696b06ee461f837aad0bfc79a4b4b77184745158598c7352182c8d67b34b0`
|
||||
- Duration: 15.008 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Silly, silly, dilly, Billy. Oh, the moon. We are having a good mood. Silly, dilly, dilly, on the moon. We are having a good mood.
|
||||
|
||||
## Personal — memo_20260702_162524.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260702_162524.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260702_162524.wav.txt`
|
||||
- Size: 212012 bytes
|
||||
- SHA-256: `c1388d681245780626fd822d98d1fd04c9b2713dd2bb4b744d751822f78a24ff`
|
||||
- Duration: 6.624 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Testing this device. 123.
|
||||
|
||||
## Personal — memo_20260706_195910.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260706_195910.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260706_195910.wav.txt`
|
||||
- Size: 4023340 bytes
|
||||
- SHA-256: `eeb4cfb91c89c110d53b59947296831abcf51a95099c8065c63cfe9171c0a139`
|
||||
- Duration: 125.728 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hello everyone, this is Atolfo and Grace, and you're hearing Adolfo and Grace podcast. Today we're going to talk about discouragement. Grace feels a little bit sad because she wanted to go swimming and we couldn't go. So Carlos, Grace, how are you feeling? My heart is feeling not that good and sad. What made you feel that way? Because the other day going in the pool was so much fun. So you were wanted to have a day like that again today. Yeah. And what happened? We couldn't go because it was raining too much, and when it stopped raining, it was too late. Yeah. Sometimes things like that happen, huh? Yeah. What can we do when we feel sad, Chris? We can write it down or make a podcast about it. Yeah. We can talk about it and feel better. Yeah. Do you feel a little bit better? Just, like, one percent. Okay, we're still gonna grab it down, right? Yeah. Yeah. Okay, guys, this was the podcast of Adolfo and Grace. It's a beverage for you to listen to us. Stay tuned for the next episode. Of course, and, and the next one is gonna be adult, and Grace and Elise is episode. Bye.
|
||||
|
||||
## Personal — memo_20260731_120809.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260731_120809.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260731_120809.wav.txt`
|
||||
- Size: 2056236 bytes
|
||||
- SHA-256: `39193951102a7687e2871f3b77536e1220f6855a0921c6b12207e9d8cb0586f5`
|
||||
- Duration: 23.313 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Today, I fix the audio volume issue, while my issue on the device on the 35 inches screen, color, ESP 32, so hopefully the kids can use it for recording some nice audio notes.
|
||||
|
||||
## Personal — memo_20260809_135238.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_135238.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_135238.wav.txt`
|
||||
- Size: 9584684 bytes
|
||||
- SHA-256: `183c238cfde561477989df41a1e0249f7971d268003bfabd4e435c3f08573077`
|
||||
- Duration: 108.669 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Okay, I'm here with Grace. This is Daddy, and this is? Me, Grace. And together, we're doing Daria and Grace podcast. In this episode, we're going to talk about our plan, with the new kinetic hand. Tell us about it Chris. Well, I already have some pink kinetics, and, and I want more that's gonna be with blue and red, and all I want, I can make, because it's gonna look so pretty, that makes the blue and red. Okay. It's gonna look like blue, red, Superman ice cream. I think it's just gonna look like a block. So you should try it with a little bit instead of the whole thing. Yeah. What can you do with kinetic side? You can build stuff? And, um, you can build, uh, a castle, you can build, a sky on the bottom. You can build a tree, maybe? Hmm. That's why I love kinetic sand. Yeah. And what is your favorite color for that kinetic sun? Blue, red mixed together. Well, this was 30 adults, one grace in this episode about kinetic time. Until next time. We, we are gonna talk about... How much I love kinetics and? We'll see you later in our next episode.
|
||||
|
||||
## Personal — memo_20260809_135637.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_135637.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_135637.wav.txt`
|
||||
- Size: 11378732 bytes
|
||||
- SHA-256: `0efefbef18be61d817f0e193e0d966b4686655e30ded61c9a9503165118e7003`
|
||||
- Duration: 129.010 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hi, this is Daddy and Grace's podcast. I'm Daddy. And I'm Grace. Today we're gonna learn how much I love kinetics and. So tell me, Grace, how much to love kinetic sense. One million thousand percent, but I love my dad, which is called daddy? Infinity, Thousand Infinity, Thousand percent. Oh, señor. Gracias. What is the thing you like or love about Connecticut? That you can build stuff and, um, you can build whatever you want, maybe. And let's be realistic. But are some of the things that you have built with kinetics and that you want to share with us? A volcano. Ooh, erupting. And, um... And a flower. And... a mouse running away of a garbage cab. Oh, boy. What was that? That seems like a lot of fun. Hours and hours of screen distraction. Screenless. So in our next video, we are going to talk about how much? I really love kinetics and. Yeah, this was just a taste. The next video would be really in depth of how much grace loves kinetic. Yeah. Bye bye. On the next video, we'll talk together, and see if we both love kinetics, and I'm gonna tell you, what actually is kinetics here? Bye. Bye.
|
||||
|
||||
## Personal — memo_20260809_140139.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_140139.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_140139.wav.txt`
|
||||
- Size: 15548460 bytes
|
||||
- SHA-256: `438fd3fd915c5c1a3da203e390b42e3a3facc096cdc63212a52ca855a8d4e9a2`
|
||||
- Duration: 176.286 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hi, this is me, Grace, and this is me, Daddy. Today, we're gonna talk, how really I love, like I told you in the other media. Yeah, I know, previous, um, podcast, chapter, we talk about, some of things that Grace loves about Kinetistan, but we've left the best part, and the explanation of what actually is kinetic sand, this episode. So tell us, Grace. Well, kinetician is said that can get stuck in your hands. And um... Now I'm gonna tell you the grand finale at the end of this episode. And we're gonna introduce our guests of today. Let's see if it's ready. Hello, computer. Please tell us how kinetic sun is made. I guess shy today. So back to Grace. I'm gonna tell you what I think kinetic sand is made of. So, what I think kinetics and is made of is, um, real sand from the beach, with some colors. Yeah. That's probably it, but it must have to be, like, a really clean sand. Yeah. And like, I think they put a little, so tiny bit of glue. So, um, sticks to, like, magnetically. Wait, Leah, we're in the middle of an episode. And we're gonna give another try to our guest. Hey, computer. Tell us how kinetic sun is made. Well, he really is shy today. It's really sad. So, he, um, puts, so, my next guest is, um, the guy puts a special type of glue that, um, doesn't like stick it, but it has some type of magnetic thing, that, um, that, um, that
|
||||
|
||||
## Personal — memo_20260809_141136.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_141136.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_141136.wav.txt`
|
||||
- Size: 24338476 bytes
|
||||
- SHA-256: `cd52fe9a1557d8707ffe01d5eb5d60ae0a94eaabec06018aea2d4a746fa3a712`
|
||||
- Duration: 275.946 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hi, this is me, Grace. And this is me, Daddy. We are gonna have four guests today. My brother, Alyas, and computer. Say, say hi, computer. Did you hear that? That's a computer desk. It always might not be ready to talk to you, yeah. Yeah, he sounds good. Okay. Would you like to talk to our to our episode? Would you like to talk to our episode? All right, bless you, Mia. Okay. Computer? How much do you love nature? I love nature a lot. Forests, oceans, and wildlife are amazing, and they're worth protecting. Those are special guest computer. He really loves nature, I guess. So come here. How much do you like houses? A lot. Nature is beauty for, fascinating, and essential to life. Computer, we didn't have podcasts, and you're, I guess, in the podcast. Tell us how much you don't like house. I like houses a lot. They give people comfort, shelter, and a place to make memories. As a podcast guest, I'd say a good house should feel safe and well called. So, computer, my name is Grace, and, um, our podcast is right now on. So I'm actually talking to you and the podcast. Nice to meet you, Grace. I'm glad to be part of the podcast, and I'm ready for your next question. How much do you like cherries? I like cherries a lot. They are sweet, juicy, and delicious, especially when they're fresh. Change your voice to David's voice. David's voice isn't available. The available voices include Daniel Style voices like Michael, Adam, Fenrier, and Puck. Change your voice to Adam's voice. My voice is now set to Adam. Hi, Adam. Um, you're invited in a podcast, actually. Hi, thanks for inviting me. I'm happy to join the podcast and chat with you. There's one more guest in the podcast, which is my brother called Elias. Nice to meet you, Aleah. I am glad to be joining you both on the podcast. Um, I don't think that Leo is ready to talk to you yet. Hi. That's okay. I'm right here. Elias is here. Hi, Elias. It's nice to have you here. I'm ready to chat whenever you are.
|
||||
|
||||
## Personal — memo_20260809_141710.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_141710.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_141710.wav.txt`
|
||||
- Size: 12632108 bytes
|
||||
- SHA-256: `c571455ded3b88e0b57246cf119f579a97a5c8ac77bc17bdaa6a8d4442bff289`
|
||||
- Duration: 143.221 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
Hey, this is my dad, my dad called daddy. Hey, this is me daddy. Today, we're gonna talk with me, computer, and that, I don't think that my brother, at least, is gonna want to talk. First, we're gonna start with computer. Hi computer. I'm gonna call you chat. Hi, chat works for me. What would you like to talk about? You? Or actually talking in a podcast, too. Yes, I'm still part of the podcast. I'm happy to keep chatting with you and Elias. Uh... Uh... Alice might not want to talk in this video. That's perfectly okay. I can stay quiet and let you two continue the conversation. So, Tats? How much, really, do you like cherries? Tell me which number. It's a car. Here. If you mean cats, I'd give them a nine out of ten. They're curious, playful and wonderfully independent. I said cherry, not cop. Cherry. Knock. Oh, cherries. I'd give them a nine out of ten. They're sweet, juicy, and delicious. What are some things you can enjoy, cherry sweet? You can enjoy cherries fresh. In pies, jams, smoothies, or on top of ice cream. They're especially good when they're chilled and ripe.
|
||||
|
||||
## Personal — memo_20260809_141939.wav
|
||||
|
||||
- Source: `/sdcard/memos/memo_20260809_141939.wav`
|
||||
- Remote transcript: `/sdcard/memos/memo_20260809_141939.wav.txt`
|
||||
- Size: 18866220 bytes
|
||||
- SHA-256: `cd90f3e1149060835ebdf793fb82c359e63c16d9e0f21ead4387864726ecdaa5`
|
||||
- Duration: 213.902 seconds
|
||||
- Status: `transcribed`
|
||||
|
||||
### Transcript
|
||||
|
||||
My dad, daddy. Today we're gonna talk chat, which is... But now it's named chat. So cute, Richard. Take care of him. No, if you lost the other one. I promise I won't lose at this one time. I promise so much. I What? Okay. That was not part of the video. Hey, cats. Tell me some of the voices you can change to. I can switch to voices like Michael, Adam, Fenry or Puck, Emma, George, Moira, Daniel, Samantha, Karen, or Alex. I'm currently using Adam. Change your voice to Samantha. Your voice is now sent to Samantha. Your name is actually Cat, but I asked you to change his voice to Samantha. Understood. My name is Cat, and I'm speaking with Samantha's voice. Actually, you name it to me. Understood. My name is Samantha. What's your favorite thing to do at school, Samantha, in the book? If you mean me, Samantha. My favorite thing at school would be learning new things and helping classmates. Which book are you referring to? Um... I'm the real Samantha, but... the real love. It's the one where Samantha teaches her friend, is her friend, has friends that, um, laughs at her? I'm not sure which Samantha book you mean. Tell me the title. And I can answer whether her friend's friends laugh at her. The... Um, I forget that title, but, um... her name is named Samantha. I think that's the title. There may be several books titled Samantha. So I can't identify the story from the title alone. Tell me another detail about the characters or plot, and I'll try to help.
|
||||
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"version": 1,
|
||||
"processed_at": "2026-08-26T22:37:08Z",
|
||||
"source_directory": "/sdcard/memos",
|
||||
"skip_key": [
|
||||
"device",
|
||||
"filename",
|
||||
"size",
|
||||
"sha256"
|
||||
],
|
||||
"recordings": [
|
||||
{
|
||||
"device": "elias",
|
||||
"filename": "memo_20260809_191140.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_191140.wav",
|
||||
"size": 475180,
|
||||
"sha256": "3d00d8d67d879781394f2cdcf238876b805b1b4fbaf1f0ce9c52ced8308f288f",
|
||||
"duration_seconds": 5.38702947845805,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_191140.txt"
|
||||
},
|
||||
{
|
||||
"device": "grace",
|
||||
"filename": "memo_20260629_232735.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260629_232735.wav",
|
||||
"size": 795692,
|
||||
"sha256": "be93499e3d25f727da392cd6a9d9fd048471374a229ee7461777d6117075b7d3",
|
||||
"duration_seconds": 24.864,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260629_232735.txt"
|
||||
},
|
||||
{
|
||||
"device": "grace",
|
||||
"filename": "memo_20260703_140340.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260703_140340.wav",
|
||||
"size": 1015852,
|
||||
"sha256": "c06eb17d1cc03d21af52e85173046fc66a8061e8a481c0448f2e7d75a51f2905",
|
||||
"duration_seconds": 31.744,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260703_140340.txt"
|
||||
},
|
||||
{
|
||||
"device": "grace",
|
||||
"filename": "memo_20260703_140437.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260703_140437.wav",
|
||||
"size": 8518700,
|
||||
"sha256": "e46f73967cbd1675acafcd5f6b4074eacd3ad7175c383c52c412f84a33aed472",
|
||||
"duration_seconds": 266.208,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260703_140437.txt"
|
||||
},
|
||||
{
|
||||
"device": "grace",
|
||||
"filename": "memo_20260711_193015.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260711_193015.wav",
|
||||
"size": 20653568,
|
||||
"sha256": "aae396ac31e4ee8586dee1c0ce455613a3bbd4e52193b7b51cea210277a98cc6",
|
||||
"duration_seconds": 645.423,
|
||||
"status": "transcribed_chunked",
|
||||
"transcription_note": "SpeechAnalyzer required six 120-second chunks.",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260711_193015.txt"
|
||||
},
|
||||
{
|
||||
"device": "grace",
|
||||
"filename": "memo_20260711_194936.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260711_194936.wav",
|
||||
"size": 11485228,
|
||||
"sha256": "d9db7566e49263a3569fe7168cc6302196455e8b47e42b16b5216b00a94c9693",
|
||||
"duration_seconds": 358.912,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260711_194936.txt"
|
||||
},
|
||||
{
|
||||
"device": "kitchen",
|
||||
"filename": "memo_20260702_041724.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260702_041724.wav",
|
||||
"size": 308268,
|
||||
"sha256": "1e25dd9d6096252de2e4979be0b00feeaed10aa56794a3c8185acf339138f219",
|
||||
"duration_seconds": 9.632,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260702_041724.txt"
|
||||
},
|
||||
{
|
||||
"device": "kitchen",
|
||||
"filename": "memo_20260712_153919.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260712_153919.wav",
|
||||
"size": 791596,
|
||||
"sha256": "fc93ae664837e0140b8d77acc16b6a2eaebf307f9af9bdcf9f4b6c0fe75989a7",
|
||||
"duration_seconds": 24.736,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260712_153919.txt"
|
||||
},
|
||||
{
|
||||
"device": "kitchen",
|
||||
"filename": "memo_20260712_154019.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260712_154019.wav",
|
||||
"size": 480300,
|
||||
"sha256": "39a696b06ee461f837aad0bfc79a4b4b77184745158598c7352182c8d67b34b0",
|
||||
"duration_seconds": 15.008,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260712_154019.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260702_162524.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260702_162524.wav",
|
||||
"size": 212012,
|
||||
"sha256": "c1388d681245780626fd822d98d1fd04c9b2713dd2bb4b744d751822f78a24ff",
|
||||
"duration_seconds": 6.624,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260702_162524.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260706_195910.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260706_195910.wav",
|
||||
"size": 4023340,
|
||||
"sha256": "eeb4cfb91c89c110d53b59947296831abcf51a95099c8065c63cfe9171c0a139",
|
||||
"duration_seconds": 125.728,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260706_195910.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260731_120809.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260731_120809.wav",
|
||||
"size": 2056236,
|
||||
"sha256": "39193951102a7687e2871f3b77536e1220f6855a0921c6b12207e9d8cb0586f5",
|
||||
"duration_seconds": 23.312834467120183,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260731_120809.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_135238.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_135238.wav",
|
||||
"size": 9584684,
|
||||
"sha256": "183c238cfde561477989df41a1e0249f7971d268003bfabd4e435c3f08573077",
|
||||
"duration_seconds": 108.66938775510204,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_135238.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_135637.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_135637.wav",
|
||||
"size": 11378732,
|
||||
"sha256": "0efefbef18be61d817f0e193e0d966b4686655e30ded61c9a9503165118e7003",
|
||||
"duration_seconds": 129.01006802721088,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_135637.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_140139.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_140139.wav",
|
||||
"size": 15548460,
|
||||
"sha256": "438fd3fd915c5c1a3da203e390b42e3a3facc096cdc63212a52ca855a8d4e9a2",
|
||||
"duration_seconds": 176.28589569160997,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_140139.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_141136.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_141136.wav",
|
||||
"size": 24338476,
|
||||
"sha256": "cd52fe9a1557d8707ffe01d5eb5d60ae0a94eaabec06018aea2d4a746fa3a712",
|
||||
"duration_seconds": 275.9459410430839,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_141136.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_141710.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_141710.wav",
|
||||
"size": 12632108,
|
||||
"sha256": "c571455ded3b88e0b57246cf119f579a97a5c8ac77bc17bdaa6a8d4442bff289",
|
||||
"duration_seconds": 143.22068027210884,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_141710.txt"
|
||||
},
|
||||
{
|
||||
"device": "personal",
|
||||
"filename": "memo_20260809_141939.wav",
|
||||
"remote_path": "/sdcard/memos/memo_20260809_141939.wav",
|
||||
"size": 18866220,
|
||||
"sha256": "cd90f3e1149060835ebdf793fb82c359e63c16d9e0f21ead4387864726ecdaa5",
|
||||
"duration_seconds": 213.90222222222224,
|
||||
"status": "transcribed",
|
||||
"transcription_remote_path": "/sdcard/memos/memo_20260809_141939.txt"
|
||||
},
|
||||
{
|
||||
"device": "whatsapp",
|
||||
"filename": "aud_ef2a801c38e3.m4a",
|
||||
"remote_path": "/Users/adolforeyna/.hermes/audio_cache/aud_ef2a801c38e3.m4a",
|
||||
"size": 33684653,
|
||||
"sha256": "a71cd9360c5ca8e1ce0b84bd86d7935d1c698ecd9845b3061fc5c37937bc91fc",
|
||||
"duration_seconds": 2007.530667,
|
||||
"status": "transcribed",
|
||||
"transcription_note": "/Users/adolforeyna/brain/areas/family/2026-08-26_prayer-for-elias-and-grace.md",
|
||||
"source_channel": "WhatsApp DM",
|
||||
"transcription_engine": "Apple SpeechAnalyzer + SpeechTranscriber/macOS 26.5",
|
||||
"locale": "en_US"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -43,9 +43,14 @@ Tags: [areas, finances, insurance, flood, 220_emerald, neptune]
|
||||
- Mail checks payable to: Neptune Flood Incorporated, PO Box 735653, Chicago, IL 60673-5653.
|
||||
- Courier deliveries only (FedEx/UPS): JPMorgan Chase, Attn: Neptune Flood Incorporated 735653, 131 S. Dearborn St, Floor 6, Chicago, IL 60603.
|
||||
|
||||
## 2026-08-21 Payment Status — User Confirmed
|
||||
- **Neptune flood renewal was paid.** The user confirmed payment in the family chat; retain the official payment confirmation/receipt if available.
|
||||
- Policy TNF4366115 covers 220 Emerald Ave through **2027-08-21**.
|
||||
- **Planning request:** research alternative flood-insurance options before the 2027 renewal payment, then compare price, limits, deductibles, exclusions, lender acceptance, and waiting period against Neptune. Do not cancel or change coverage without explicit approval.
|
||||
|
||||
## Follow-up
|
||||
- Verify after July 22, 2026 that the automatic payment processed for $870.23 and coverage renewed.
|
||||
- Keep the photo/notice as backup if lender or insurance questions come up.
|
||||
- Begin alternative-policy research around **June 2027**, before the August 21, 2027 renewal.
|
||||
- Keep the photo/notice and payment confirmation as backup if lender or insurance questions come up.
|
||||
|
||||
## Related
|
||||
- [[220_emerald_mortgage]]
|
||||
|
||||
@@ -25,6 +25,18 @@ Tags: [finances, mortgage, 220_emerald, debt]
|
||||
- Corrected by Adolfo on 2026-05-20 (supersedes earlier typo values).
|
||||
- Keep this note as the source of truth for current mortgage numbers unless a newer lender statement is provided.
|
||||
|
||||
## Escrow Analysis — Effective 2026-10-01
|
||||
- **Source:** Pennymac escrow-analysis email provided by Adolfo; analysis completed 2026-08-12. Original email/document path not supplied.
|
||||
- **New monthly payment:** `$5,373.43`, beginning with the payment due 2026-10-01.
|
||||
- **Current monthly payment:** `$5,358.53` (consistent with the prior lender snapshot).
|
||||
- **Change:** `+$14.90/month`.
|
||||
- **Principal & interest:** `$4,030.20` (unchanged in the notice).
|
||||
- **Current escrow payment:** `$1,328.33`.
|
||||
- **New escrow payment:** `$1,343.23` (`+$14.90/month`).
|
||||
- **Escrow drivers:** Property taxes unchanged at `$639.25/month`; mortgage insurance unchanged at `$145.35/month`; hazard insurance increased from `$543.73` to `$558.63/month` (`+$14.90/month`). Reserve requirement and shortage amount remain `$0.00`.
|
||||
- **Projected escrow surplus/refund:** `$536.36`, to be refunded by Pennymac to the bank account configured for eDisbursement.
|
||||
- **Action/date:** Payments due before 2026-10-01 should use the current amount; use `$5,373.43` starting 2026-10-01. Monitor for the `$536.36` refund.
|
||||
|
||||
## Related
|
||||
- [[Finances Index]]
|
||||
- [[Areas]]
|
||||
|
||||
@@ -18,12 +18,14 @@ Captured 2026-07-23. Full notes in journals/2026-07-22 and projects/220_emerald_
|
||||
|
||||
## 💧 Water Filtration System
|
||||
- **Peroxide & Salt Pellets**
|
||||
- **Last Service:** 2026-07-16 (Added 10 bottles peroxide and 2 bags salt pellets)
|
||||
- **Last Service:** 2026-08-20 (Added 10 gallons peroxide); salt pellets added 2026-08-15.
|
||||
- **Check Cycle:** Monthly (Avg. refill every 1.5 months)
|
||||
- **Next Check Due:** 2026-08-16
|
||||
- **Current Status:** Replenished on 2026-07-16 with usual amount: 10 bottles peroxide and 2 bags salt pellets.
|
||||
- **Next Action:** Check peroxide and salt pellet levels around 2026-08-16.
|
||||
- **Next Check Due:** 2026-09-20
|
||||
- **Current Status:** Peroxide replenished on 2026-08-20 with 10 gallons; salt pellets replenished 2026-08-15.
|
||||
- **Next Action:** Check peroxide and salt pellet levels around 2026-09-20.
|
||||
- **Service History:**
|
||||
- 2026-08-20: Added 10 gallons peroxide to water filtration system.
|
||||
- 2026-08-15: Added salt pellets to water filtration system.
|
||||
- 2026-07-16: Added usual amount to water filtration system — 10 bottles peroxide and 2 bags salt pellets.
|
||||
- 2026-06-05: Added 10 bottles peroxide and 2 bags salt pellets.
|
||||
- 2026-04-26: Added 2 bags salt pellets; peroxide purchase pending.
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
Date: 2026-09-12
|
||||
Author: Adolfo Reyna
|
||||
Tags: [home, maintenance, landscaping, front-yard, ideas, 220-emerald]
|
||||
---
|
||||
|
||||
# Front Yard Landscape Idea
|
||||
|
||||
Concept captured from an AI-generated front-yard makeover image for [[220 Emerald Maintenance Log]]. This is an inspiration concept, not a measured construction plan.
|
||||
|
||||
## Overall vision
|
||||
|
||||
Create a welcoming, Florida-friendly front yard for family and friends that combines beauty, shade, butterflies, and practical outdoor seating while keeping the existing driveway.
|
||||
|
||||
## Main design elements
|
||||
|
||||
- Keep the existing driveway as-is, with a clean edge along the landscape beds.
|
||||
- Add curved brick or reclaimed-brick edging around the driveway and planting beds.
|
||||
- Create a brick walkway leading from the driveway to a covered front porch.
|
||||
- Use layered planting beds: taller plants toward the house and lower plants along the walkway and driveway.
|
||||
- Add a covered front-porch sitting area with a porch swing.
|
||||
- Consider a ceiling fan on the porch for comfort and mosquito reduction.
|
||||
- Add a second porch swing beneath the large shade tree on the right side of the yard.
|
||||
- Use mulch in planting beds and low-voltage or solar path lighting along the walkway.
|
||||
- Add a few terracotta, ceramic, or resin planters near the porch.
|
||||
|
||||
## Suggested plant palette from the concept
|
||||
|
||||
### Butterfly-attracting plants
|
||||
|
||||
- Firebush
|
||||
- Pentas
|
||||
- Salvia
|
||||
- Porterweed
|
||||
- Milkweed
|
||||
|
||||
### Fragrant or mosquito-deterrent plants
|
||||
|
||||
- Citronella grass
|
||||
- Lemongrass
|
||||
- Lavender
|
||||
- Rosemary
|
||||
- Marigolds
|
||||
|
||||
### Structural and edging plants
|
||||
|
||||
- Cocoplum
|
||||
- Simpson's stopper
|
||||
- Dwarf yaupon holly
|
||||
- Liriope
|
||||
- Muhly grass
|
||||
|
||||
Plant selections should be confirmed for the actual sun, drainage, irrigation, mature size, and salt/wind exposure at 220 Emerald. Mosquito-deterrent claims should be treated as supplemental; standing-water control and appropriate screening remain more important.
|
||||
|
||||
## Practical planning notes
|
||||
|
||||
- Measure the front yard, driveway, porch, tree canopy, and proposed walkway before ordering materials.
|
||||
- Identify irrigation lines, electrical lines, septic or drainage features, and tree roots before digging.
|
||||
- Confirm that the existing porch and tree area can safely support the proposed swings.
|
||||
- Check local permit and HOA requirements before changing the porch, walkway, or driveway edge.
|
||||
- Plan the project in phases: walkway/edging first, foundation plants second, porch seating and lighting afterward.
|
||||
- Consider Home Assistant-compatible switches or dimmers for porch and path lighting once the electrical layout is known.
|
||||
|
||||
## Possible future phases
|
||||
|
||||
1. Clean and define the driveway edge.
|
||||
2. Install the curved brick walkway and bed edging.
|
||||
3. Establish the main Florida-friendly planting beds and mulch.
|
||||
4. Add porch swing, shade-tree swing, and outdoor cushions.
|
||||
5. Add path lighting and porch lighting with local Home Assistant control.
|
||||
6. Add irrigation, moisture, temperature, or outdoor-light sensors if useful.
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: Reyna Family Device Inventory
|
||||
type: living-inventory
|
||||
updated: '2026-07-13'
|
||||
version: 1
|
||||
updated: '2026-08-09'
|
||||
version: 2
|
||||
maintainer: Hermes Pi .126
|
||||
sources:
|
||||
- deco_api
|
||||
@@ -16,6 +16,53 @@ sources:
|
||||
|
||||
Living inventory. Update on new device, IP change, or replacement. Frontmatter YAML for machine parsing.
|
||||
|
||||
## Current Tactility fleet — friendly names
|
||||
|
||||
| Device ID | Friendly name | Size | Current IP | mDNS hostname |
|
||||
|---|---|---:|---|---|
|
||||
| `kidsos_5690` | Elias | 2.8-inch / 320x240 | `192.168.68.107` | `kidsos-5690.local` |
|
||||
| `kidsos_5c5c` | Grace | 2.8-inch / 320x240 | `192.168.68.114` | `kidsos-5c5c.local` |
|
||||
| `kidsos_591c` | Kitchen | 2.8-inch / 320x240 | `192.168.68.128` | `kidsos-591c.local` |
|
||||
| `kidsos_a790` | Personal / Dev | 3.5-inch / 480x320 | `192.168.68.129` | `kidsos-a790.local` |
|
||||
|
||||
All four were live-verified on 2026-08-09 through the Tactility HTTP API. The RLCD board remains optional/retired because its display is broken.
|
||||
|
||||
## Screen text update rule
|
||||
|
||||
Before writing new text to a Tactility screen, send a full-size black RGB565 frame to `/api/screen/raw`, then send the new rendered frame. This avoids residual text from the previous screen showing through.
|
||||
|
||||
|
||||
## Tactility apps, SD capacity, and usage report — 2026-08-09
|
||||
|
||||
Bible Verse and Voice Recorder are installed on all four boards at the current source manifest versions: Bible Verse `0.1.0` (code 2, SDK `0.8.0-dev`) and Voice Recorder `1.0.0` (code 1, SDK `0.8.0-dev`). No reinstall was needed.
|
||||
|
||||
- **Elias** — SD `4.50 GB free / 8.04 GB total`; apps: Book Player 1.0.0, Robot Arm 0.1.0, Discovery Mountain 0.1.0, SD Downloader 1.0.0, Immich Elias 0.1.0, Bible Verse 0.1.0, ReynaBot 1.0.0, Voice Recorder 1.0.0, MP3 Player 1.0.0. Bible favorites: `[81]`; progress raw: `31093 / 66 22 21 / 65 403`. Podcast state: `308_Fear_S14E01`.
|
||||
- **Grace** — SD `30.64 GB free / 31.09 GB total`; apps: SD Downloader 1.0.0, Discovery Mountain 0.1.0, Immich Elias 0.1.0, Robot Arm 0.1.0, ReynaBot 1.0.0, Voice Recorder 1.0.0, Book Player 1.0.0, Bible Verse 0.1.0, Breakout 0.7.0, 2048 0.9.0, MP3 Player 1.0.0, Pocket Dungeon 0.1.2. Bible favorites: `[]`; progress raw: `8890 / 11 5 12 / 10 172`. Podcast state: `308_Fear_S14E01`.
|
||||
- **Kitchen** — SD `8.02 GB free / 8.04 GB total`; apps: Immich Elias 0.1.0, Robot Arm 0.1.0, ReynaBot 1.0.0, Voice Recorder 1.0.0, Bible Verse 0.1.0, Breakout 0.5.0, Dairy Notes 1.0.0, MP3 Player 1.0.0. Bible favorites: `[30027, 30074, 21959, 23647, 28782, 29304]`; progress raw: `13691 / 18 34 8 / 17 821`. No Discovery Mountain state file found.
|
||||
- **Personal / Dev** — SD `12.77 GB free / 62.52 GB total`; apps: SD Downloader 1.0.0, Immich Elias 0.1.0, Snake 0.8.0, Discovery Mountain 0.1.0, Robot Arm 0.1.0, Bible Verse 0.1.0, Book Player 1.0.0, Voice Recorder 1.0.0, ReynaBot 1.0.0, Breakout 0.5.0, Dairy Notes 1.0.0, 2048 0.7.0, MP3 Player 1.0.0, Lua Game 0.2.0, Pocket Dungeon 0.1.2, Pipecat Voice 1.0.0. Bible favorites: `[18951, 19203, 19207]`; progress raw: `22889 / 38 1 12 / 37 11`. Podcast state: `318_Jakes_Promise_S13E01`; MP3 player state is empty.
|
||||
|
||||
Podcast state is stored on SD in `/sdcard/apps/one.tactility.discoverymountain/userdata/state.json`; Bible data is in `/sdcard/user/app/one.tactility.bibleverse/{favorites.txt,progress.txt}`. The report distinguishes “last played” state from merely downloaded episode files.
|
||||
|
||||
## CLI integrations
|
||||
|
||||
`reyna-cli tactility report <board> --json` now reads installed apps, sysinfo/SD capacity, Bible favorites/progress, Discovery Mountain state, MP3 state, and `/sdcard/dm` episode metadata. `reyna-cli tactility screen text <board> "message"` clears the full native RGB565 framebuffer before drawing by default; use `--no-clear-first` only when intentionally layering content.
|
||||
|
||||
|
||||
## Personal/Dev MCP smoke-test failures — 2026-08-09
|
||||
|
||||
All 25 live MCP tools were attempted on `kidsos_a790` / Personal / Dev. The following failures were verified and should remain future-work items:
|
||||
|
||||
- **Persistent display ownership:** `clear_screen` and `draw_text` both return success and produce a visible white screen with text transiently, but the Tactility launcher later redraws the home screen. A foreground-app, launcher-suspend, or display-ownership mechanism is needed for persistent custom content.
|
||||
- **mDNS resolution from CLI host:** `kidsos-a790.local` was not resolvable during MCP CLI calls; the reserved-IP fallback `192.168.68.129` worked. Keep mDNS-first with reliable IP fallback and investigate why local resolution differs from the board's advertised hostname.
|
||||
- **`record_voice`:** board returned `Failed to open the recording file`; investigate VoiceRecorder/app-user-data mount and microphone/storage permissions.
|
||||
- **`get_battery`:** board returned `Power device not found`; this hardware has no exposed power-management device. Treat battery as unsupported rather than a fleet-wide failure.
|
||||
- **`scan_ble`:** board returned `BLE device not found`; investigate firmware/BLE hardware configuration or mark BLE unavailable on this board.
|
||||
- **`download_file`:** board returned `Failed to open connection`; investigate outbound networking, DNS, HTTPS support, and URL-fetch implementation.
|
||||
- **`list_files`:** MCP paths are relative to `/sdcard`, not absolute. `/`, `/sdcard`, `/sdcard/`, and empty path failed, while `apps`, `user`, `user/app`, `dm`, and `memos` succeeded. Personal/Dev currently exposes downloaded podcast files under `dm/` and WAV voice memos under `memos/`.
|
||||
- **`play_audio` and `play_mp3`:** MCP requires a simple relative filename and rejects subdirectories (`filename must be a simple relative name`), so it cannot directly play files in `memos/` or `dm/`. The MP3 Player source correctly normalizes an app launch `file` parameter to `/sdcard/...`, but the current `/app/run` HTTP route returned 404 when given the file parameter. Add a supported app-launch-parameter or path-aware playback integration.
|
||||
|
||||
The LED was returned to `off` after testing. The CLI test suite remained green: 255 passed, 1 existing deprecation warning.
|
||||
|
||||
## Summary Stats
|
||||
|
||||
- Total tracked: 29 Deco clients + 6 Deco nodes + 9 canonical in local_devices.yaml = ~35 unique logical devices
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"fail": 7,
|
||||
"failures": [
|
||||
{
|
||||
"detail": "ConnectionRefusedError: [Errno 61] Connection refused",
|
||||
"elapsed_ms": 0,
|
||||
"group": "voice",
|
||||
"kind": "tcp",
|
||||
"service": "kokoro-tts",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>",
|
||||
"elapsed_ms": 174,
|
||||
"group": "emi",
|
||||
"kind": "http",
|
||||
"service": "emi-frontend",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "HTTP 502",
|
||||
"elapsed_ms": 165,
|
||||
"group": "emi",
|
||||
"http_status": 502,
|
||||
"kind": "http",
|
||||
"service": "emi-wordpress",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "ConnectionRefusedError: [Errno 61] Connection refused",
|
||||
"elapsed_ms": 1133,
|
||||
"group": "esp32",
|
||||
"kind": "tcp",
|
||||
"service": "reyna-cli-kidsos",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "URLError: <urlopen error [Errno 61] Connection refused>",
|
||||
"elapsed_ms": 1006,
|
||||
"group": "esp32",
|
||||
"kind": "http",
|
||||
"service": "kitchen-esp32",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "URLError: <urlopen error [Errno 65] No route to host>",
|
||||
"elapsed_ms": 1,
|
||||
"group": "esp32",
|
||||
"kind": "http",
|
||||
"service": "rlcd-esp32",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
},
|
||||
{
|
||||
"detail": "URLError: <urlopen error [Errno 61] Connection refused>",
|
||||
"elapsed_ms": 1002,
|
||||
"group": "operations",
|
||||
"kind": "http",
|
||||
"service": "hermes-dashboard-pi",
|
||||
"status": "fail",
|
||||
"timestamp": "2026-09-15T01:50:47+00:00"
|
||||
}
|
||||
],
|
||||
"log": "/Users/adolforeyna/brain/areas/operations/service_health_checks.jsonl",
|
||||
"ok": 14,
|
||||
"timestamp": "2026-09-15T01:50:47+00:00",
|
||||
"total": 21
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
---
|
||||
title: Reyna Family Services Inventory
|
||||
type: living-inventory
|
||||
status: active
|
||||
updated: 2026-08-15
|
||||
canonical_detail: areas/platform.md
|
||||
related:
|
||||
- areas/network/inventory_report_2026-07-13.md
|
||||
- areas/network/devices_inventory.md
|
||||
- areas/operations/hermes_migration_macmini_2026-08-02.md
|
||||
- areas/emi_things_to_do.md
|
||||
tags: [operations, services, infrastructure, emi, brain]
|
||||
---
|
||||
|
||||
# Reyna Family Services Inventory
|
||||
|
||||
Human-facing catalog of the services that support the Reyna family, Hermes, the brain, and EMI. `[[platform]]` is the more detailed technical tracker for hosts, MCP tools, LaunchAgents, plugins, cron jobs, and migration work.
|
||||
|
||||
**Status vocabulary:**
|
||||
- **Active/documented:** recorded as running or intentionally used in the latest inventory.
|
||||
- **Needs live verification:** documented previously, but the last check is dated or the service has known uncertainty.
|
||||
- **Legacy/planned:** retained for history or future work; do not assume it is running.
|
||||
|
||||
## 1. Brain, Hermes, and private operations
|
||||
|
||||
| Service | Purpose | Host / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Reyna family brain** | Markdown source of truth for family, projects, operations, EMI, maintenance, finances, media, and journals | Mac mini: `~/brain`; mirrored/backed up through Pi workflows and Gitea/Nextcloud paths | Active/documented |
|
||||
| **Hermes Agent gateway** | Main conversational agent, WhatsApp handling, MCP orchestration, profiles, skills, memory, and cron | Mac mini `.102`; historical Pi `.126` runtime | Active/documented; migration follow-up remains |
|
||||
| **Hermes profiles** | Separate operating contexts, including default, EMI, kids, and voice | `~/.hermes/profiles/` | Active/documented |
|
||||
| **Hermes cron/automation** | Briefings, wind-down reminders, coding recaps, price monitors, maintenance reminders, and family automation | Hermes cron plus Pi/system crontab | Active/documented; individual jobs need periodic verification |
|
||||
| **Brain sync** | Synchronizes brain content to backup/cloud destinations and maintains Git history | Pi `.126` plus local/Gitea/Nextcloud workflows | Needs live verification |
|
||||
| **Brain MCP/search layer** | Programmatic search and controlled access to brain notes | `brain/projects/para_brain_mcp_server.md` | Active project / implementation status needs verification |
|
||||
| **Reyna CLI privacy host** | Canonical local Mac service for privacy-sensitive Calendar, Contacts, Reminders, Notes, and system operations | Mac mini `.102`; signed Swift host + Unix socket | Active migration target |
|
||||
| **MacMiniMCP** | Older Mac automation/MCP host for Apple apps, speech, TTS, images, and Deco | Mac mini `.102` | Legacy; being replaced by Reyna CLI |
|
||||
| **Private browser automation** | Visible Chrome/ReynaFamilyBot profile, CDP, browser dashboard, and LAN observer proxy | Mac mini `.102`, loopback CDP `9222` | Active/documented |
|
||||
| **WhatsApp gateway** | Home/family, EMI, and direct assistant messaging | Mac mini gateway; old Pi session was migrated | Active/documented; live outbound/inbound verification should remain on the checklist |
|
||||
|
||||
## 2. Core home and network infrastructure
|
||||
|
||||
| Service | Purpose | Host / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Deco mesh network** | Home LAN, DHCP, Wi-Fi, device connectivity | Deco M5 nodes, gateway `.1` | Active/documented |
|
||||
| **Caddy reverse proxy** | TLS termination and routing for family, EMI, media, cloud, and internal domains | FamReynaServer `.110` | Active/documented; configuration has known stale/duplicate entries |
|
||||
| **Authentik SSO** | Authentication for protected browser/web services | FamReynaServer `.110`; some EMI routing points to `.119` | Active/documented; duplicate/legacy routes need verification |
|
||||
| **Pi-hole DNS** | LAN DNS and ad/blocking service | FamReynaServer `.110` | Active/documented |
|
||||
| **Docker / Portainer** | Container runtime and management | FamReynaServer `.110` | Active/documented |
|
||||
| **NAS / MyCloud** | Local backup and media storage | `.111` / related DHCP observations | Needs live verification |
|
||||
| **Ollama** | Local model serving | FamReynaServer `.110`; separate `.200` route also documented | Needs live verification |
|
||||
| **AFFiNE** | Self-hosted documents/knowledge workspace | Expected `.200:3010` | Legacy or offline; documented as down in the last inventory |
|
||||
| **Llama endpoint** | Model endpoint paired with AFFiNE | Expected `.200:11434` | Legacy or offline; documented as down in the last inventory |
|
||||
|
||||
## 3. Family media, photos, files, and communications
|
||||
|
||||
| Service | Purpose | Host / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Immich** | Private family photo/video library, search, albums, and media archive | FamReynaServer `.110`; `photos.reynafamily.com` | Active/documented |
|
||||
| **Nextcloud** | Cloud files, document sync, and brain/cloud workflows | FamReynaServer `.110`; `cloud.reynafamily.com` / `cloud.emmint.com` | Active/documented; Docker and Snap installations may both exist and require cleanup decision |
|
||||
| **Jellyfin** | Family media streaming | FamReynaServer `.110`; `media.reynafamily.com` | Active/documented |
|
||||
| **Memos** | Lightweight notes/micro-journal service | FamReynaServer `.110`; `memos.reynafamily.com` | Active/documented |
|
||||
| **Family voice system** | ESP32/iPhone/Mac voice capture, transcription, speaker context, TTS, and voice gateway | Mac mini `.102`, iPhone `.150`, Pi/ESP32 devices | Active project/infrastructure; several components require live verification |
|
||||
| **Kokoro / ksay** | Warm local neural TTS daemon | Mac mini `.102`, loopback `7332` | Active/documented |
|
||||
| **Voicebox** | Qwen3-TTS voice generation and family voice profiles | Mac mini `.102` | Active/documented |
|
||||
| **Apple Speech services** | Local speech transcription and voice synthesis integrations | Mac mini `.102` | Active/documented |
|
||||
| **iPhone MCP** | Camera, audio, video, screen, and voice-device bridge | iPhone `.150` | Active/documented |
|
||||
|
||||
## 4. ESP32, reMarkable, and household interfaces
|
||||
|
||||
### ESP32 / Tactility service family
|
||||
|
||||
The ESP32 fleet is not just hardware inventory. It is a set of local family services with device-side apps, HTTP/MCP APIs, media storage, and Hermes/Reyna CLI integrations.
|
||||
|
||||
| Service | Purpose | Device / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Tactility platform** | Shared ESP32 runtime for screens, touch, audio, SD storage, apps, and local HTTP/MCP operations | ESP32-S3 fleet | Active/documented |
|
||||
| **KidsOS dashboards** | Child/family dashboards, screen text, file transfer, local status, and household display surfaces | Tactility boards `.112`, `.113`, `.129` | Active/documented; individual board health varies |
|
||||
| **Reyna CLI KidsOS endpoint** | Device-side HTTP service exposed through the Reyna CLI/Caddy route | KidsOS-591C `.113`; `reyna-cli.reynafamily.com` | Active/documented; needs periodic live verification |
|
||||
| **Kitchen voice/display device** | Kitchen voice button, display, audio playback, and microphone endpoint | Little32 `.122` | Active project / needs live verification |
|
||||
| **ESP32 RLCD screen** | Reflective display, screenshots, sensors, BLE, video, and e-paper-style experiments | Waveshare RLCD `.123` | Active project / needs live verification |
|
||||
| **ESP32 voice gateway** | Local voice capture, audio transport, Hermes gateway integration, and voice responses | ESP32 voice devices + Mac mini adapter | Active project; Hermes route repair/testing remains outstanding |
|
||||
| **Book Player service** | Local storybook/podcast/audio playback from SD card | Tactility Book Player boards | Active app family |
|
||||
| **Grace/Poppy storybook player** | Image-and-audio storybook playback for the children | Expected `.107` | Needs live verification; last inventory showed offline/stale |
|
||||
| **Bible Verse app** | Offline Bible reading, progress, and favorites | Tactility fleet | Active/documented |
|
||||
| **Voice Recorder app** | Local voice-memo capture to SD card for later ingestion | Tactility fleet | Active app; recording permissions/storage need per-board verification |
|
||||
| **Tactility games and utility apps** | Breakout, 2048, Pocket Dungeon, Snake, MP3 Player, Robot Arm, Discovery Mountain, and related experiments | Tactility SD-card app packages | Active/experimental |
|
||||
| **ESP32 fleet management** | Device discovery, screen drawing, screenshots, file operations, app reports, and smoke tests | Reyna CLI + local device registry | Active/documented; mDNS/IP conflicts remain a known issue |
|
||||
|
||||
### reMarkable service family
|
||||
|
||||
| Service | Purpose | Device / location | Status |
|
||||
|---|---|---|---|
|
||||
| **reMarkable Paper Pro** | Handwritten journal, planning, drawings, source notes, and document workspace | Paper Pro `.132` | Active device |
|
||||
| **reMarkable UDP listener** | Receives device broadcast/IP updates so DHCP changes can be tracked | Pi/logger host | Needs live verification |
|
||||
| **reMarkable logger/poller** | Polls the Paper Pro, tracks document changes, writes JSONL events and latest/state snapshots | Expected `~/remarkable-logger/` on Pi `.126` | **Not working as of 2026-08-15**; service/timer and expected files were absent |
|
||||
| **reMarkable Paper Pro sidecar** | Device-side heartbeat, online/offline state, and document-change detection | Paper Pro system service | Needs live verification; old SSH alias is stale and the current `.132` host key is unresolved |
|
||||
| **reMarkable brain ingestion** | Vision/transcription of changed pages into journals, inbox, and durable brain areas | Brain ingestion workflow | Blocked by watcher failure; existing imported notes remain available |
|
||||
| **reMarkable rendering tools** | Parse/render Paper Pro v6 `.rm` pages and preserve color/ink information | Logger/tooling environment | Active tooling; depends on restored logger environment |
|
||||
|
||||
### Other household interfaces
|
||||
|
||||
| Service / device system | Purpose | Host / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Kindle/e-paper dashboards** | Household and office task/status display | Kindle/e-paper projects | Active project |
|
||||
| **Robot arm** | Hardware/robotics experimentation and MCP control | LAN device, expected `.116` | Active project / needs live verification |
|
||||
| **Google Home / Blink / TVs** | Household smart-home and media endpoints | LAN devices | Active household devices; not all are Hermes-managed |
|
||||
| **Water filtration system** | Peroxide and salt-pellet household water treatment | 220 Emerald | Active maintenance responsibility; monthly checks tracked in `areas/maintenance/220_emerald.md` |
|
||||
|
||||
## 5. EMI — Emanuel Ministries International
|
||||
|
||||
### Organization and governance
|
||||
|
||||
- **EMI-C Florida / local church:** board, bylaws, meeting history, minutes, scripts, governance, and ministry administration.
|
||||
- **EMI international family:** leadership and relationships across the USA, East Africa/Kenya, Europe, Latin America, and related churches.
|
||||
- **EMI gatherings:** Kenya 2026 archive, participants, logistics, media plan, translation, and technology coordination.
|
||||
- **EMI financial/board operations:** board-related accounts, financial records, and administrative follow-up.
|
||||
|
||||
### Public and technical services
|
||||
|
||||
| Service | Purpose | Host / domain | Status |
|
||||
|---|---|---|---|
|
||||
| **EMI Backend API** | Main EMI application API, Socket.IO/web-push integrations, Stripe, and Mongo-backed application functions | emiserver `.119:3001`; failover/routing also documented through `.110`; `emiapi.reynafamily.com`, `api.emmint.com` | Active/documented; `.119` access is incomplete and needs live verification |
|
||||
| **EMI frontend / website** | Public EMI web presence and ministry-facing frontend | `emi.reynafamily.com`; expected `.119:8082` | Needs live verification |
|
||||
| **EMI WordPress / WP1** | EMI web/content property | `wp1.reynafamily.com`; expected `.119:8081` | Needs live verification |
|
||||
| **EMI authentication** | Authentik route used by EMI domains | `auth.emmint.com`; expected `.119:9000` | Needs live verification; overlaps with family Authentik routing |
|
||||
| **EMI media archive** | Books, recordings, Bryan teaching series, livestreams, photos, and video source material | Brain, Immich, Nextcloud, local media archives, and EMI projects | Active/documented; organization work remains |
|
||||
| **EMI livestream/media workflow** | Capture, production, translation, captioning, archiving, search, and outreach | EMI media projects; Sardius/Ari workflow report | Active project |
|
||||
| **EMI publication pipeline** | Books, ministry publications, Subsplash embeds, YouTube, and outreach strategy | EMI projects and external platforms | Active project |
|
||||
| **EMI local ministries/collaboration** | Local ministry planning, Latin America collaboration, church relationships, and family gatherings | Brain project files | Active project |
|
||||
| **EMI social/video outreach** | YouTube strategy, media outreach, worship graphics, and public communication | EMI website/social/YouTube workflows | Active project |
|
||||
|
||||
## 6. Other web and collaboration services
|
||||
|
||||
| Service | Purpose | Host / location | Status |
|
||||
|---|---|---|---|
|
||||
| **Instatic** | Family website/CMS publishing | FamReynaServer `.110:3002`; planned `sites.reynafamily.com` | Active/documented; DNS/Caddy publishing route needs verification |
|
||||
| **n8n** | Workflow automation | FamReynaServer `.110:5678`; `auto.reynafamily.com` | Active/documented; workflows require authenticated inspection |
|
||||
| **Homarr** | Internal dashboard | FamReynaServer `.110:7575`; `dashboard.reynafamily.com` | Active/documented |
|
||||
| **Gitea** | Private source-code hosting and backup | Expected emiserver `.119:3000`; `git.reynafamily.com` | Needs live verification |
|
||||
| **Portainer** | Docker UI | FamReynaServer `.110:9000`; `docker.reynafamily.com` | Active/documented |
|
||||
| **Mixpost** | Social publishing | Expected FamReynaServer `.110:9010` | Needs live verification |
|
||||
| **Appwrite** | Backend-as-a-service experiment | Expected FamReynaServer `.110:8090` | Legacy/planned; not seen running in last inventory |
|
||||
| **Ghost** | Blog platform | Expected FamReynaServer `.110:2368`; `blog.reynafamily.com` | Legacy/offline in last inventory |
|
||||
| **Mattermost** | Team/chat platform | Expected `.110:8065`; `mattermost.reynafamily.com` | Legacy/offline in last inventory |
|
||||
|
||||
## 7. Service-management priorities
|
||||
|
||||
1. Restore and verify the **reMarkable watcher/logger**; it is currently a broken ingestion dependency for the brain.
|
||||
2. Make `areas/platform.md` and this file agree on the canonical **Reyna CLI privacy host** and LaunchAgent paths.
|
||||
3. Verify the **brain backup chain**: local files → Git/Gitea → Nextcloud/NAS, including recent successful timestamps.
|
||||
4. Resolve the **FamReynaServer duplicate Nextcloud** installation and document the single source of truth.
|
||||
5. Restore SSH/operator access to **emiserver `.119`** so EMI services can be checked directly.
|
||||
6. Separate **active EMI production services** from stale Caddy routes and historical deployments.
|
||||
7. Add one live verification record per service: URL/socket, owner, host, health check, data location, backup path, and recovery procedure.
|
||||
|
||||
## Source notes
|
||||
|
||||
This catalog was assembled from the living `areas/platform.md`, `areas/network/devices_inventory.md`, `areas/network/inventory_report_2026-07-13.md`, Hermes migration audit, EMI project files, maintenance areas, and the current reMarkable watcher investigation on 2026-08-15. Dated inventory claims are labeled as needing live verification rather than treated as current fact.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,758 @@
|
||||
%PDF-1.4
|
||||
%“Œ‹ž ReportLab Generated PDF document (opensource)
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R /F2 3 0 R /F3 7 0 R /F4 8 0 R /F5 9 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/Contents 79 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<<
|
||||
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<<
|
||||
/Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
12 0 obj
|
||||
<<
|
||||
/Contents 84 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
13 0 obj
|
||||
<<
|
||||
/Contents 85 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
14 0 obj
|
||||
<<
|
||||
/Contents 86 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
15 0 obj
|
||||
<<
|
||||
/Contents 87 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
16 0 obj
|
||||
<<
|
||||
/Contents 88 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
17 0 obj
|
||||
<<
|
||||
/Contents 89 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
18 0 obj
|
||||
<<
|
||||
/Contents 90 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
19 0 obj
|
||||
<<
|
||||
/Contents 91 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
20 0 obj
|
||||
<<
|
||||
/Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
22 0 obj
|
||||
<<
|
||||
/Contents 94 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
23 0 obj
|
||||
<<
|
||||
/Contents 95 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
24 0 obj
|
||||
<<
|
||||
/Contents 96 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
25 0 obj
|
||||
<<
|
||||
/Contents 97 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
26 0 obj
|
||||
<<
|
||||
/Contents 98 0 R /MediaBox [ 0 0 612 792 ] /Parent 78 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
27 0 obj
|
||||
<<
|
||||
/Outlines 29 0 R /PageMode /UseNone /Pages 78 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
28 0 obj
|
||||
<<
|
||||
/Author (Hermes) /CreationDate (D:20260903100230-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260903100230-04'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (Personal OS Wiki Integration Plan) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
29 0 obj
|
||||
<<
|
||||
/Count 58 /First 30 0 R /Last 77 0 R /Type /Outlines
|
||||
>>
|
||||
endobj
|
||||
30 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 10 0 R /Fit ] /First 31 0 R /Last 33 0 R /Next 34 0 R /Parent 29 0 R
|
||||
/Title (1. Executive Recommendation)
|
||||
>>
|
||||
endobj
|
||||
31 0 obj
|
||||
<<
|
||||
/Dest [ 10 0 R /Fit ] /Next 32 0 R /Parent 30 0 R /Title (Recommendation)
|
||||
>>
|
||||
endobj
|
||||
32 0 obj
|
||||
<<
|
||||
/Dest [ 11 0 R /Fit ] /Next 33 0 R /Parent 30 0 R /Prev 31 0 R /Title (Decision boundaries)
|
||||
>>
|
||||
endobj
|
||||
33 0 obj
|
||||
<<
|
||||
/Dest [ 11 0 R /Fit ] /Parent 30 0 R /Prev 32 0 R /Title (Adoption decision)
|
||||
>>
|
||||
endobj
|
||||
34 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 11 0 R /Fit ] /First 35 0 R /Last 37 0 R /Next 38 0 R /Parent 29 0 R
|
||||
/Prev 30 0 R /Title (2. Inspected Current State and Planning Assumptions)
|
||||
>>
|
||||
endobj
|
||||
35 0 obj
|
||||
<<
|
||||
/Dest [ 11 0 R /Fit ] /Next 36 0 R /Parent 34 0 R /Title (Existing workflow facts)
|
||||
>>
|
||||
endobj
|
||||
36 0 obj
|
||||
<<
|
||||
/Dest [ 12 0 R /Fit ] /Next 37 0 R /Parent 34 0 R /Prev 35 0 R /Title (Upstream project facts used as ideas, not instructions)
|
||||
>>
|
||||
endobj
|
||||
37 0 obj
|
||||
<<
|
||||
/Dest [ 12 0 R /Fit ] /Parent 34 0 R /Prev 36 0 R /Title (Important assumptions to validate before implementation)
|
||||
>>
|
||||
endobj
|
||||
38 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 12 0 R /Fit ] /First 39 0 R /Last 41 0 R /Next 42 0 R /Parent 29 0 R
|
||||
/Prev 34 0 R /Title (3. Target Model: Two Complementary Stores, Existing Authorities Preserved)
|
||||
>>
|
||||
endobj
|
||||
39 0 obj
|
||||
<<
|
||||
/Dest [ 12 0 R /Fit ] /Next 40 0 R /Parent 38 0 R /Title (3.1 The core split)
|
||||
>>
|
||||
endobj
|
||||
40 0 obj
|
||||
<<
|
||||
/Dest [ 13 0 R /Fit ] /Next 41 0 R /Parent 38 0 R /Prev 39 0 R /Title (3.2 Authority matrix)
|
||||
>>
|
||||
endobj
|
||||
41 0 obj
|
||||
<<
|
||||
/Dest [ 13 0 R /Fit ] /Parent 38 0 R /Prev 40 0 R /Title (3.3 Proposed minimal storage topology)
|
||||
>>
|
||||
endobj
|
||||
42 0 obj
|
||||
<<
|
||||
/Count 7 /Dest [ 13 0 R /Fit ] /First 43 0 R /Last 49 0 R /Next 50 0 R /Parent 29 0 R
|
||||
/Prev 38 0 R /Title (4. Concrete Workflow and State Mapping)
|
||||
>>
|
||||
endobj
|
||||
43 0 obj
|
||||
<<
|
||||
/Dest [ 13 0 R /Fit ] /Next 44 0 R /Parent 42 0 R /Title (4.1 Intake classification)
|
||||
>>
|
||||
endobj
|
||||
44 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 14 0 R /Fit ] /First 45 0 R /Last 47 0 R /Next 48 0 R /Parent 42 0 R
|
||||
/Prev 43 0 R /Title (4.2 Proposed canonical fields)
|
||||
>>
|
||||
endobj
|
||||
45 0 obj
|
||||
<<
|
||||
/Dest [ 14 0 R /Fit ] /Next 46 0 R /Parent 44 0 R /Title (Shared work-item fields)
|
||||
>>
|
||||
endobj
|
||||
46 0 obj
|
||||
<<
|
||||
/Dest [ 15 0 R /Fit ] /Next 47 0 R /Parent 44 0 R /Prev 45 0 R /Title (Task fields)
|
||||
>>
|
||||
endobj
|
||||
47 0 obj
|
||||
<<
|
||||
/Dest [ 15 0 R /Fit ] /Parent 44 0 R /Prev 46 0 R /Title (Claim, run, and review fields)
|
||||
>>
|
||||
endobj
|
||||
48 0 obj
|
||||
<<
|
||||
/Dest [ 15 0 R /Fit ] /Next 49 0 R /Parent 42 0 R /Prev 44 0 R /Title (4.3 Task lifecycle and lease policy)
|
||||
>>
|
||||
endobj
|
||||
49 0 obj
|
||||
<<
|
||||
/Dest [ 16 0 R /Fit ] /Parent 42 0 R /Prev 48 0 R /Title (4.4 Definition of Done templates)
|
||||
>>
|
||||
endobj
|
||||
50 0 obj
|
||||
<<
|
||||
/Count 2 /Dest [ 16 0 R /Fit ] /First 51 0 R /Last 52 0 R /Next 53 0 R /Parent 29 0 R
|
||||
/Prev 42 0 R /Title (5. Context Packets and Retrieval)
|
||||
>>
|
||||
endobj
|
||||
51 0 obj
|
||||
<<
|
||||
/Dest [ 16 0 R /Fit ] /Next 52 0 R /Parent 50 0 R /Title (5.1 Context packet contract)
|
||||
>>
|
||||
endobj
|
||||
52 0 obj
|
||||
<<
|
||||
/Dest [ 17 0 R /Fit ] /Parent 50 0 R /Prev 51 0 R /Title (5.2 Retrieval strategy: optional semantic layer)
|
||||
>>
|
||||
endobj
|
||||
53 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 17 0 R /Fit ] /First 54 0 R /Last 56 0 R /Next 57 0 R /Parent 29 0 R
|
||||
/Prev 50 0 R /Title (6. Notification and Apple Reminders Adapter Plan)
|
||||
>>
|
||||
endobj
|
||||
54 0 obj
|
||||
<<
|
||||
/Dest [ 17 0 R /Fit ] /Next 55 0 R /Parent 53 0 R /Title (Adapter boundary)
|
||||
>>
|
||||
endobj
|
||||
55 0 obj
|
||||
<<
|
||||
/Dest [ 17 0 R /Fit ] /Next 56 0 R /Parent 53 0 R /Prev 54 0 R /Title (Initial adapter order)
|
||||
>>
|
||||
endobj
|
||||
56 0 obj
|
||||
<<
|
||||
/Dest [ 17 0 R /Fit ] /Parent 53 0 R /Prev 55 0 R /Title (Adapter requirements)
|
||||
>>
|
||||
endobj
|
||||
57 0 obj
|
||||
<<
|
||||
/Count 4 /Dest [ 18 0 R /Fit ] /First 58 0 R /Last 61 0 R /Next 62 0 R /Parent 29 0 R
|
||||
/Prev 53 0 R /Title (7. Agent Safety, Review, Privacy, and Failure Handling)
|
||||
>>
|
||||
endobj
|
||||
58 0 obj
|
||||
<<
|
||||
/Dest [ 18 0 R /Fit ] /Next 59 0 R /Parent 57 0 R /Title (7.1 Claim eligibility and agent identity)
|
||||
>>
|
||||
endobj
|
||||
59 0 obj
|
||||
<<
|
||||
/Dest [ 18 0 R /Fit ] /Next 60 0 R /Parent 57 0 R /Prev 58 0 R /Title (7.2 Review gates)
|
||||
>>
|
||||
endobj
|
||||
60 0 obj
|
||||
<<
|
||||
/Dest [ 18 0 R /Fit ] /Next 61 0 R /Parent 57 0 R /Prev 59 0 R /Title (7.3 Evidence rules)
|
||||
>>
|
||||
endobj
|
||||
61 0 obj
|
||||
<<
|
||||
/Dest [ 19 0 R /Fit ] /Parent 57 0 R /Prev 60 0 R /Title (7.4 Failure policy)
|
||||
>>
|
||||
endobj
|
||||
62 0 obj
|
||||
<<
|
||||
/Count 6 /Dest [ 19 0 R /Fit ] /First 63 0 R /Last 68 0 R /Next 69 0 R /Parent 29 0 R
|
||||
/Prev 57 0 R /Title (8. Phased Adoption Roadmap)
|
||||
>>
|
||||
endobj
|
||||
63 0 obj
|
||||
<<
|
||||
/Dest [ 19 0 R /Fit ] /Next 64 0 R /Parent 62 0 R /Title (Phase 0: Governance, authority, and pilot selection)
|
||||
>>
|
||||
endobj
|
||||
64 0 obj
|
||||
<<
|
||||
/Dest [ 19 0 R /Fit ] /Next 65 0 R /Parent 62 0 R /Prev 63 0 R /Title (Phase 1: Local work-state contract and shadow ledger prototype)
|
||||
>>
|
||||
endobj
|
||||
65 0 obj
|
||||
<<
|
||||
/Dest [ 20 0 R /Fit ] /Next 66 0 R /Parent 62 0 R /Prev 64 0 R /Title (Phase 2: Hermes and Herdr read-only context packets)
|
||||
>>
|
||||
endobj
|
||||
66 0 obj
|
||||
<<
|
||||
/Dest [ 21 0 R /Fit ] /Next 67 0 R /Parent 62 0 R /Prev 65 0 R /Title (Phase 3: Controlled low-risk claims, review workflow, and Apple Reminders dry run)
|
||||
>>
|
||||
endobj
|
||||
67 0 obj
|
||||
<<
|
||||
/Dest [ 21 0 R /Fit ] /Next 68 0 R /Parent 62 0 R /Prev 66 0 R /Title (Phase 4: Project-specific integration for factory, infrastructure, and ministry)
|
||||
>>
|
||||
endobj
|
||||
68 0 obj
|
||||
<<
|
||||
/Dest [ 22 0 R /Fit ] /Parent 62 0 R /Prev 67 0 R /Title (Phase 5: Optional operational hardening and retrieval evaluation)
|
||||
>>
|
||||
endobj
|
||||
69 0 obj
|
||||
<<
|
||||
/Count 3 /Dest [ 22 0 R /Fit ] /First 70 0 R /Last 72 0 R /Next 73 0 R /Parent 29 0 R
|
||||
/Prev 62 0 R /Title (9. Migration and Rollout Strategy)
|
||||
>>
|
||||
endobj
|
||||
70 0 obj
|
||||
<<
|
||||
/Dest [ 22 0 R /Fit ] /Next 71 0 R /Parent 69 0 R /Title (Non-disruption principles)
|
||||
>>
|
||||
endobj
|
||||
71 0 obj
|
||||
<<
|
||||
/Dest [ 23 0 R /Fit ] /Next 72 0 R /Parent 69 0 R /Prev 70 0 R /Title (Suggested rollout cohort)
|
||||
>>
|
||||
endobj
|
||||
72 0 obj
|
||||
<<
|
||||
/Dest [ 23 0 R /Fit ] /Parent 69 0 R /Prev 71 0 R /Title (Legacy linking protocol)
|
||||
>>
|
||||
endobj
|
||||
73 0 obj
|
||||
<<
|
||||
/Dest [ 23 0 R /Fit ] /Next 74 0 R /Parent 29 0 R /Prev 69 0 R /Title (10. Measures of Success and Operating Metrics)
|
||||
>>
|
||||
endobj
|
||||
74 0 obj
|
||||
<<
|
||||
/Dest [ 23 0 R /Fit ] /Next 75 0 R /Parent 29 0 R /Prev 73 0 R /Title (11. Explicit Open Decisions for User Review)
|
||||
>>
|
||||
endobj
|
||||
75 0 obj
|
||||
<<
|
||||
/Dest [ 25 0 R /Fit ] /Next 76 0 R /Parent 29 0 R /Prev 74 0 R /Title (12. Ideas Deliberately Rejected or Deferred)
|
||||
>>
|
||||
endobj
|
||||
76 0 obj
|
||||
<<
|
||||
/Dest [ 25 0 R /Fit ] /Next 77 0 R /Parent 29 0 R /Prev 75 0 R /Title (13. Final Review Checklist)
|
||||
>>
|
||||
endobj
|
||||
77 0 obj
|
||||
<<
|
||||
/Dest [ 26 0 R /Fit ] /Parent 29 0 R /Prev 76 0 R /Title (Source Notes)
|
||||
>>
|
||||
endobj
|
||||
78 0 obj
|
||||
<<
|
||||
/Count 20 /Kids [ 4 0 R 5 0 R 6 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R
|
||||
17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
79 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 505
|
||||
>>
|
||||
stream
|
||||
Gatmu95iQ=&;9NK'm"0uR,ON6NWJuEJL7XP??/nPb$ZGk$0Bb2^[K=Rm(,c+JO#@5EbFOp$?5j[p4(s#QPIe1$4)KgJ^@)cqM#M\nPicB')UEQ0X"ot@EML&9/WL=[AST_?#g5u<@NWu^#YopaNK1j`$#+`F_!*Jh.Wt0BWWgAV5A"8^q6Y/LHa6?^<c<o5"'ciX0Bh@.eX0MD4SsKrC$<"Z[^^XrUi`KBah=%FD"2oZ)6g<K"3V(!&IY;:/R8l_HGZA.akc9KA`8F3jk@T-bBWHnd)BiNI-hVjEC*tO<:(MNo\&ZVQHB8F8sl'@=`Qn+.BWF@hFI*9PF9]*.Gr45/<e45,7#Se@qa3^,S1@goa$FL6nKI0PttX<8L8ZScL6O-3QOSRk4q$OGe88+!AF1SI+:nK?k]b@DK"P%['IHj5l6#,K!+9CCo(0=]-c;EGA*,msjHrE.RL+%]bt_\-\X(UT(lXDK(s.Qr'^@1lf+BFS<7BquoGq`^0~>endstream
|
||||
endobj
|
||||
80 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1509
|
||||
>>
|
||||
stream
|
||||
Gb!l!hc&Pn&:WfGfZ.c_;_;/CO*dWeB:.q+i6IlWlYIm2YUrpWJGf.I4-2_0QkFdf9l=DAM/>hrhsRu2b"rB57Jlhl!r+X*?[eb8).YOrS8cPuL\'lrn"VE2Tat348eMUgj!9ZS2EX>T:BLfSKdic/r_<Qa7UYCL3$MX(&jfXX":XdgDM#57rnXQQSZ5um'4bGnqmi3bato[B9Gd=K<hoET%Jo&9HF94k,LPCip&)ue?4HO;FWq)_&1.r$Z!&H-[/1NWV(4cH2%nd9-Yn3LnS0m!FosiEF(?goi;?pC$`@nXHr@MS.TI;5BiFc4G[8hP'R1%_FC8c+8<C+[3+7l&-7%gb%1%8qgeo9!0?4i)."=(%K?AfK7dPR-&-3jS+VHL0,#(WKA'c8N&7S6;c;^rNF?Y(,$cKkreW/T2il$J%8:TEJQkYOD_DGOJ5k+it-l0Ze:*L[@e!jHaMg[[l0I(O6[uJP$.c>DW/QO:pm%dQ&lN/\3=kC6V_b&T8Wnn?J_8q#"&.D-]"u2f.i!13\P6U"A]l%*\_k"%kZdRXF9]g4,$(cHVJ]C,]@&S!3Llu7TOGKe+m%7#<XHF;TepPFf=?.-4/Z+/:5o3/%a&!][]#H6:q26];A*.dD#`"EN;pm8\s6o\R4ap6c`]Ar5,<)+ocG6P5FjUfI(H"!LJZbG>TbMK"8eK?3XM`_QFl#Nu>J.0Rm=ka!C$3XT7oQAW"(ZT[:<hL%]0m9$-Xc;CF8oe0Y)UsAo`/7V.:mEt1$TP>Tn"iqJX+'IJK,:0fsQFE$eDa8[2T2Mn+V>E%r!1uKSKf7QLTd/"bNk?@gSEB<o8s)&UA]aO:Q\L)C*8L^4S/FY<sQWe!R:'<k?kI/>5M4P&l=&hO)a8Q_Vh:IAB8dV"?":hI?(O>g3R1F.HNhV<P0RrRHbbPt_0*Rg/,&e7S!fI?k@as56oIUp8"'J1n-/hB3&i-mnR[k:^QRQ?\Rb7@rRQ.A;Mu'U*5C?lM#FASl0MTS/_6AMGZt=la:])':cZ1_M'Bqk"F(gs-cDH,S</!)"@s#ET\(K&ZC0Zj9"M+MQH&<W<9^rUZ_2R"QLqc)@Oamrlp#\dt@T%S-AtOih3]ZNE7>Vf'pn=>sq,PD&Bn?ho-JIp,HM*J7YIa*ei7l;jstf-<Tq:K9oq3(-/2>`RH@7/e,j]2fKU\4_WUcW%X&bLO=:WFW%0eYLJ\eKjfNp7e/!?Bds5M1[8?1mf$]%VKO2C;/Ti2D[<K29L2E2'klMd7W7eU`ffUOI(21P8G=RPFgZDmnSI@oRbr!HO#lm^JV0$A+#Pt`_kR7En&m[POs\Zk8E7jMEPku^NJH@<:GrF1d)P7j$tWkdCkdsPOu_Uo,)HZMt[bb8uM>;gB9GnlP=Pf^AIu3#@$"cWfjd=3L"Q`m-'b0-e[2&\\?&XST6k;n:u#LcEL+:PGTe@IlXHL>q"IE8Kf%ND#^_TZt]'ti!hVD@j8M/^:aocmhhaZ#Wt6>p6>KUrWPgl!4mb"`;~>endstream
|
||||
endobj
|
||||
81 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1574
|
||||
>>
|
||||
stream
|
||||
Gb"/'?!#c?&:Mm.R)eV9crqOjar=!IjW%GPae!o]D'c-#/6>lFq=boa.A^fgG/<!gDGN7fE5G^un*&%;;$cYWgZNA^nG=2S4/P7\bSNMJ&MQG'U\X!2KI!)YQii2/K^fU\)%E>T/m_7C#hP7Q6:qjk4=3D1)T!mF1tm@/?oH\lNq(^<45C&e+r"b,J-_T55lu_[ObbI=Ab-FS\%F=M$ONtO%56"lX\C5P31IaVHDTSrFD>Nde#%fi6C,C%qub/mD/O;S8f3^Jr>LFJqUmr(n_:ZQQBF3o<:HBMrMEdtMbh^Z_f!hp2`O:661ULi!JDoh!o7$S.S(34I71Q5->Z#32JtdsW!Q13LCN8m6S&O:"%3II!AAu=e,Q2m:B\AQRdqfO>Ib9?Hr=^WO`[#7asd_<k/t+k\Dcp1W$Am%.\a.;"Uu;W'Zp>O\JUZhK,jtnIGAM:euEib+:hoAiIT$4*^gp1(k9aKNTb%H41V#kPG3V.;<H1Zp_*"1MS#M`_.!HN9?[cUEhV93%kc@s<nD\;DY9:=n:E3430q/.=9Ynu6_V]b+:-c#$ad)F'SS@)W%H?/)"/[0@7:tG$AX>bCJ]^klM%m:DVMH>>G?5"cZj/cK>8];,3]J%JmA_MnE_V!G6q`j>lm[`e=\"A3:ROlVE]nSKa8/Y=3Z38'\H-"%i$8Z:r2u-PmT]-(#l)^<2S$qTKEPCPGb',:QOh*G@^KA5+)sA^Qc.Ki?1'Zlb>*3bh'-=8sH6FmEahlp1H3.OV#X@.CsNBVhGn<.D.E;b*EZ!1`DF7]/3R#SHl-9@3!ds:g!o#+RH@GX7NR1eQGQP0&fIjp$[GcS\hAJE4!,5G-t[=CgW9ldTN!K(?G<ik2mQhPqUPZ<n97j[Zqa6>BigpB787P=@CU#1'^]355K(&YE`Co\qM'[k07Q_o6jOQgQi*;a[%5ZPo?5M3:g6g*qV$B(P2qh?Wh1`NfP?U_I6BIVSF+(_HcP6?*>Ad%!0+;E43K^.IRFhfdXs-<>>imgKKq'8CrsX/_YnE"_"C.6a=/YTm2).MM=no6,!T^@Z$qRq1,3O?WS`+$_;j_FUGN1()A;?`hH5oEa`PHlm?f;"?Q/eFcD^l%0;ALI?Fn4T7"e5*K?,/3/+]iD4kL18p-N]qb(YNp>R@S6>Vpn>$^+[k%Q(/l]4_aoRjE_IQYo*h1<V!r)ZMKNW)gs:!OQR!+t8!L<U+,EO`Z[B/e;hF$<&<P,(>%n^t@jq::f-\ZY=sF2F3mAYuMT"u)Kj2E?cnS"'[b%q5*Xbj[i,+s)r)fk.co[DQ<aG8h_^kaL<M&Wt*T;pi(p5Df147%C9RbdL@3En/6OCRm7[%._2^Z:)_SKC;A&5r+D+_]'n;m-Z`u"jAl-VWuIRSosu<PCM'RUMO$@!mfAXN."SfC?h&!dAO"kR<D<--+lW-<29HCXU4j!`egZV(E?'&G9H*0%t%X=l'Q`P![g!KNqjIeID`>,ETKMESe-#L;h(b^b$(&@+%^fKQE_INW-NFca1=!0]>NLC99lUdoWj*M_ftZ*DO)gj1!?!<fM'+cj#tJ4f03U5)5oH0G5~>endstream
|
||||
endobj
|
||||
82 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2469
|
||||
>>
|
||||
stream
|
||||
Gatm<9m>@#(>Sdggni^L;'JGW`N-@[de'Aq)uH1BZ@PPC6pq)-!(ti)rUr/M59sHnPpSMOUP&\$J@Taa%N*Us5GA*=.>`MaU[dZ3_MIV8$KE8+]6Eo%h:4_k_/^Gh(K1YVb@NN$iA1gRo+c[uEtuo4IjJeE#0WC2M]e%ZUtL,.K_+oP"l3LmTbeQ*fW-oL&C9@d,bcCk=7aOsK'?_c01+)+2^*"Hf7]/r!VTOAi.c$B,V/*W/U\=;6#WU])pPH\P&:URJ"jR$FSE+Gi&&Sm(9CQW0_*8h^N%2IX">[!+IWBIGBiIkJS2eK%`?7*T9C.#E4a'!BsaPd,RUC\`Ch1HF38t*&Pj/IUf_m#((N]e_)oFeV.HlQE(p1jhU(2gde#WQ,r[LTp;X;rDU<q%1hW+j/dsK4Tp-M$Oi1df7<a@P.9/rFEbPW%V+<(/U9"^iSm^'!Wgjr%[BuYn)#VQr9rtA%g2Z/FBO:0KPIAA@ORbdV#OI1JD?B[%F*W_u@.*a;"A+A$VN95EIn%]F9tb-XbS[0[m'n%3I)cUp\KL&?h(-1`$FM8)b]^?WN8,dl9)%(4<6@^HcErZP5<O1Pc1?>.(Q2\Sk49iOphfg<7dea%-)+Dt.j,,Xfjk7eK)3k'U^nEm]0s>0XQWOrFqY)P1/3<Vnb]<tM6K?VFXeqH(YnJ"A,mLFJfOj(<?<Q;08t%opqRE';8u4**0(TsF+MGuk/c)u%<HUiA9s`F]qi&J64S?EqH1hYB:daq`Y,?E!I7D(:<emW#Wp$ZB>^$Jr\N(l:SX6k&j*rU^Q;?IB,XebRZ^ii:Sc_,8dd.7LJ+:1dpV_\kgNNcrs$hWl6OF,'3f8O,l"CF*O2r^TXCe2b&I8PX7@ti$arP@_Cum0Xe:W;)=8RqB9?Ot>&0bK*r)j:qgt^bmb$tXbq3^5ano>9:&uQsl[\$i4K3bFGSUF(CRMW<(H+c<S!"Ki'e4d=)67P&aHTlF\<SmN7;\&h5fop/-MUW_/b0/NbT3hVUB70;X$Rgfg=-i]F&p^rr8%XMc1jaG])f=Z?:V8$Z40uDGWp@ecl1so3@.:$XU=EKP!\(pL/d<$ZgIapHS-C+n/Tlh"ASh1We)O'CKLg4;].s(Y-_CYj[6'5FWjG=LKm/E+Gt\OA;<g2S'@;5CB"RVh=2b7BhGi+Bn2YPP]7ThA>1%A.mEq(";-.Lb4$#)r\sQDH9S%Kl&O;Jp!ER[V)=RAX6VAc0/nlTVrpT\G8ZX^N"`>SFdkCq0<\"S;O]a'[75<1CSV)G&Pa97%HjtPn+F9>L0f;PFfS-L^3`KcC;4gf,^(_!:_)nUct"dN`)9W='\#!:Jk1FA#I(gCj7_qc#XA=KpAJ>n,*c[<;&)C&8kF4l,r%u%FQ<6uGhQQ.#rO>_qZi>6OW3$C^n;hrq,h^="km(0/Yr:cEf1B4VG7uP]7rP*V$ZCIkA64OZf-!Q9@s"fhW6j;3*I@*LQ1,HVQ1!r.#:n;(nX<A#AeN^FVMe3kJY#=)MA-IjWt%4pu#m"'MNo_^3$eTI,%'L:4a]bgEX]-@PV/Ym3-L&V;4Sm\@0c]_83li3aU*aprSD@=H;?Al$kAUD$fl(4AZT/k%bI$aNReD%==6*71b\MPP0cVETn1NY-^CDf<a'CmpeE]GC%3TN&n!WI_fdE*sMZF&Dco7Bie#A#e<QCg<$o)q#4AD\J_)=8h,,N9S:f^Y42P+bPaVrFscN^_%\NW9`m@Dcf6k\C('c9;#SMEE*k\eP;\uQ+4ON>S>!lg;b[P24YsDWmIOo;Zi;2p*fWm>k(QXRpXq(<gCl@cr*59jm_l8+i8e<kD!mbl;i@O-R%r&MWB'L:Sc<m\rF1p:MmahE/P4FSPLN+sCA.o$T?c=#.U=M/s"uD@P%bB?FWcm@d*kpGFECNb8O?(%5@L:>--FUH/?T;0c;PhYa_E/^c\Ji#mBrq,j;@?;H]Yr(BGCSY$K8PD>3S[6:RA-NOc1sL:?R[iIm(s'01#LXcDtHG")6ZU:FPF/`[#=SHO*[401N)\qtVq<WQHt`Xl&G_,S.(0(X\^(^Iq.1cbn@)s"Pd90'8/nq7oYd3],dj#a9&ne6ust<`O7a-k(&qXhTAAT`!?EojP`O&*WHXXf6>9\0q4%p,&YlI#=YPlZ13R.ILX=Ee\>6q*iB`;nba<k0HEO8,k<*HdWsphNf81hpQMd/[2Nsm-[9:9P@qpRP:IZ4ji1/,-=DU4798j-hG%3A=7T/6_(E'mP8buZ8F*S0>ZJ..ohGe=k@3?9:-0h/g219Q;:k?^The7Ts"=@\pLT,CZCk=a]2WBfJE5Df)P[PF4`HlYC,8lE$YlrXUB;3CJ4cB[9Z?'0$.BBdQ2Bqr<4brs%Xbh<kM>P(>/F%jKV@cf1XbF9ZD;)%8H0.G&dQQDFgVfhVI-Kfuo*D)t*BU<@,@R)C"5<_jeLA;Wti[W`5(&"0Ec=AOu0U1t1"T!R2P8BE~>endstream
|
||||
endobj
|
||||
83 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3451
|
||||
>>
|
||||
stream
|
||||
Gatm=BlE$&%fMu+_2mH(/R.d/=Y/K*+4H-31?g>.!t5a*V6XAI*M+`0C%&7_a/Y;5V\;-TSHOeOMe!PEa[[hV!IdE55L,)aI80Z!+b^M6Y:(@o,J&>"YHQ:O3X]Q;E&\k90V-I_i>A1a31e@YlKq_.VYd]i`aLP?d;U"_7[2;F1'kaR5>:>5R28$*h2jeoJqMHq1`o+"N5GC$0V`#8SW'Ehkqt[:HLmZjBH4gjN&m;'Rj&XtIJQWEe?,HhGq%?KPcDgh1)9ULkkZf8s2#-:V2WI2I,9_un(m\!Q?]?F)U3p!"M;O/O*JoOr6R*G1n"ooo*8;+.,r3W=D($1kS>)j/aU-5Yqg.PZDd=^BI1oSp@%[86>TZ(Im2p8$Kc64k+hHS5%F7GSeqs7=OD@I$\f8d69`bZ<kk.6X?^EoFmHhH'K&Xf2.CLe,HiS=.\blaK)^F95(I:[>:E7I=#soW^nX2;YgOnc(QE'dN0i"<-0$2mA=gl<hVR(Pg9K/lZr(YK0`\GQ0t\Dc83a)Ad2Ot,mC]I+=Jh7!oAVs!a]b9@ngJUK&&]!V/DZ3=;t757e9V!eR8W-^qB5EI;VV@S>,WEIcgY@6<9:"(W^K,-aagHqrAS5TZ/CYh;OIGA($2IB=cas/HD?pqd&CTA)bHlb2n=eXE2=??XjlP,8fpYW[aKl'ko6Vj<%Q:Rb3rkI(4,_2WXeF\WJ,LR<@7:n9#SA308F"6MR6KXdoI8lAR+qKSY]4^`"fpl)D@"X>o;&NkG3!+qPS:.>j0*/`rHa3?3VNZ$@PPODE*K3E;kKWN+PlL>k%`/$\MPP$[.peFVU7.jqA/$9`U-G,#<EI!Zr]&ageXUe!g+`Q,;<7qj+7IN-B7k]+h/0AIp&E1gSg+U!'8H-,+/?VrYO>^;=;bP\LB7=J:R^/T!n!14U,H]LsH(8LhK/o*^/'7-65^qQ;)T=9]';##8[Mm\P9UoS'0Eci1%3R5#0[cleDF24P+^`il"-)tt'i7WF"5o;t.>i(<Qn]&uj;s%VcP)S6Bu!k^7:rH0A/W[[J;Brg>fC>N%Y[h1,n[XNbg^]ki/]e>=KQH\f^/onSe*+S-W.%7G'WdLX`AMug%4cnL-5cL=2!lj7&<er?3GULq7d>%UE)6[9ZM6uT)2^2VP##QaR'29Rjb4Yc687'#n#Wu[^dT]`"7PQ04?+R[(I:Z(U\(tu\%Rs3Fm?<:6IT`X,WEi>"]!]&mY)Bcm5@/h'P!BP!^;YUO<olKmZJQ0+co#jScN/1D2/XpQD6mg:"S6\kYU*4";/=;]``f@A4R1/[KgP-808J-sT269@g*VGN5+N-)EG;fK:qs?Wh!*@XrgUmGor"iTDE_@?^04dVqt0Du:V_P=H`dt?b>mHVdeTg<n5jtGd`#e\?gct-So1(G\O>'bI:S*9JZ&7k\r@#l.:&afH.lhCACk"sX,2h3]qg#!f9=>"\GG6jC@RO@8$a"(Vi0pX3U]RP$N-$ed[(D8)U<M7Mn(Etm6Nc(EOr0[U68'c[_u+QRPt'+f>&7X;d+5dUqB%H"a!UP:hR<X(H87VZHC\U(8iS:\Aei`&ZA<i*V73'Hl5`XVUh6.b-jPbiK'=PdLS!!>CL))f+a1@QJl?uCdR7=P=`HRm$DQmm$Mpgp?8eTgM3.N/n%i915))I2>;n2N<-Nsp^ckqE5JNj0#KoQlnUR`<bbo#mb4N'Mi7R8X#gp^Q-9"Y^qru!cEf+[Fh#MWDaTY((QM9GB?j?h=:IW+]pHH<Ylo]ET('8:rh!^^N!j[6inX'kn,J$TYNX,7,9"e1h(pl`;uB-Kj0!dng@Dg>bj#\c*HFfE>JE!2"pZL\#<+QM4<Xo'>C22;RL<eIg']m=08/q*H[u]r$ffps"WT?8UAZI6p5/%H4cf()BfCfdVu7/N#B!%j>IN+4D&;d?'92e62r`_%)p[S_PQ'#uJjiRRI24rm6[S3q8ML1\/0*@*fgXiS7:6u.7f$"!YlqZh2nGs=)nOfY3X6GRmX+0o#.:abTd@K,Au4f-S)0nm;EN#db>KjBDZG?q6$U`kFmdVU/?9J5HU+bA)[[3lT]5GQLu>C#<(SLp'VN)F-,OJaL!WEIAV-D;.^^1"f)pqQ.e%sB[$3>TPRD"K"qrnq.SX2<&USq$VHEIkV8\S&k;OHDf\?2aN%]pFcR3n^?.t4`mc7u<+G]6?8o#d0T5E;dS">L"k@1[rHd&q=1U8*cc,(6Yc`IG$,5)j#Y*g)X&*2N1XYl/@@&b5*Lns4\i)[Y/769M'!q*ii1l*Kl_7V]D#.sr8Xo4KAV$%/PZk^IuE&.W(2$N\Lm_6MEg>\H?PG>YJK._mJ$.Z[qE33tbD3K"_A^Pc!Js"b\@(8t8dc0+$EQX#TjC.'RE\fYoReVHhrk,C_Z8Y66jZ>6_KMN"--P*";jLmb<CS1%*q&'(lDSaS_i-?s#Y2ik@Xqj0!m_G9[n^F&-;H0jjiM`aU?[1E!78fq3L"tdaD^@<sesk(GY29esTl2'VgJl.lKX^9g2g":uFBdZ>4E0S;\[e:<?Pbc[^d;CchrW&@gNUOgX1kd<'`HB"a0+g&6to\SHkHOb]_Dp325dO]G[-VF7K)[C0gGK7JiH,I/3^^bls?Bp/g1p,D$nGI4eoSH)gTTYU%Wj$cq^8qS;fY2IgAoF7mn^cMPsSP_rfT!N5(9!"F4OHa^-bG,\6>m'bUba#%5`s<1rYm<#3)c/!6fQf<)Y%*]`SlZ.C)SFbr[8ZA3rd>MuTI4b7sAVj)/TrY5c\SlG4SM'l9bq.%kX4MobmMnJQ>dYEJ(PPuPU5F!CHa8O[^5FE[dd2kM^6^6]f/*5I##8)S3kDCh"/nL*e3U4FUl7TWX<nH2Q`MnGAhS5i@bqhI"\+RL?%lXB:H(X^*X;l"fna+l:.-dP9jNUI=Uf]#A5qr';pM3DkNbnMQ+\X[Mp]Km]E,j"Ihcb^;mgYSbBg))+bjo2DCFNIA>'7V]5t:5+.5dUZ(Y:L9BL>T'd36#[E%-3HjS'RU'.BGHGPi]p4>r"8@%,DoiD3iqF;.B-n<\[R1FFbkTV]jr*4o^nTHPhq3@gMWU3P<NVAj_?rqS&bcMqUTZmj>W"Oj!S=66=LWW5oOQCK<&-=n\-!0s;,1QFl60n"N8"GiHmdIZEr`j[o.?S,7ZnCJ[c[i);.=>l0,)Q5_fJLscs1lZgY'qdS8S-,>/c;=[W`s5T.g_S*c^\GrE5D)20ip.4Lp.^EEihgo^o7aH`'D=Tg.3+<pr^H&._pMDd=XT!A?PH"7*erM#'@7[_Hb86R7JPY?9\_UV3o`/ra$=8$VQk4X7A<?tNi5#:*=cF,oJhgX;6nu]gs5*X!B?mGc2$F5gEYXcn)'qjB]8jW2]u.hD6[1Uq[n`YCf]6P8t9+=;q#E(_g.'Emg7>O`KiU?i=da,+2"U^*-2ZCX*Pb>Cre9\p*M([A+pNlFS:30-hX&~>endstream
|
||||
endobj
|
||||
84 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3084
|
||||
>>
|
||||
stream
|
||||
Gau0DbEgm@'&EF8C>$^k.$Am6a"*52,^m\(l*3<_2Vp\E,f*1f$iiofI/Vh%phDn>b-?;R+*rKl6Ii2B[uaFF5DfD)YDE1,7uNuQ8lE7T;mM9]FSD*XgqEL]7<H4:QJ3]Sg["0I\]/ERX>_$1s5c\VVXo_7ek'tsU?+::Xf.ue-B=6`pT^M)007QdXG6,D1E<OJX"7!p=s_iK^8>SSh5n$kR0,[8FRB=]krOE''j]Wf@s'@qqUYuKO1JD7;`f7Y_C8d>D(4`lkjB,?rQ#pOXfU,OQAoK7P@ad6&KgJMNOO:c]]qYpp3oN$cL]\lIdH6F9rVLiK_<S+ee-VH[>m&5*<Ape#]12@qq-'cl'Cp<H"XE2UaY?V[rcb:Pa&YsaP,%e#Z]>N=;!JXZdYNqfC]G7EI;r3UKWk]D'O*LM](WNf!WX4:[:]D]@P&TS?VaG]G.AL*2P?,-\\<n('eOt]#0T5?<Z/,nk(_JQ4Z$'-d7"4cSafSRGVLuBsAT`,6]&:k`]ln-a2)rg6^l\0WZh5<pn_*Nbp*-q+4_s.jb)[jCdYHL7<F@XOt_e@G'2Q`^n:n`nETXikYS\;HRXG,b2#::AusBW!sVi;Y!LOAXt^i[!NqWX=X+nURZalM9TWIXhOrOgF"^1>(7Ser$kEpfHW"qF_JDXkjm#;pUWdS)AEkE^]CKH`Slod5jSL[>9WNibSkmrZ@N^Ba)WHR5@;K8!@`h2+nq]_h/(/)+\R(dX#b$<<pgg14'6#!OD'at/BqfK*IoK""4Odhck%7UF6eLCA09`D`Gk(c!fKREJ(WCGk>Zl6$oa]aBq6QJ@0quO?j>&%q=&Fq\^1ToqbcTEm2thUX=h@49qpu9?uZ'$$jQ%D7h&LfPKGm09EUeq,BI]/`!KO*a[Mop[_bg2<"Br/HI4*1f>nFZ7\)LH4/:-+32=0c</KV6pI5SH0r$\rDYb$ld08NH[KYofl0>@pI7U];\ug/(OP]`W+fCs%;WZ';A1;\b;,^+jfQdc>k9jun*]2tUKd(,^jUWC4*ALFA>">.pbc-4j!Gngj"2=LYp:d12S.l,g!3^0g#4s:Y3IN=PH3&C[OGM`5R<*!o+_7,iha/#KQc?)m8VE&Rs#NK0Y3Z$(6=+X4N3PMR#O42QUt5E'r\Ch&`Z[PPVY+K$CgXhFD:BZ_0JkJ;GlDc!l8:p9%HGH^h!d*]8X1\LM$[BCZK@="!%/X:6%iN("bmSBDV3CVJ0Qi,d&i(R-h5Xt+3ZrF`1^T:0frcWOK`-Ll5ST=X0=8tAmU5KBKi;-lH.g!?(sM(Hm9\W%*OStoO--OFf<]/R6/%RMlu+!/aCetDF0an<00OQ#"*>i(h>LuT;3.#%"nU^?JXHhI_.o>NoHjr-"!'F?F`O:U5='*f?=Jp*%N:]_["jFFFAnd`EY#Cg*gO?$/)lUAER^8NRrYHJ1N32egVn:OI1k@Y?/Ir?m[<PL@Zd7^/2TbdXp!V>)fa0,g6P<@;st-E,i;B%NPGgO,\onTBAf2s#4Zo6T=BBgkQMWZrN]kcg4r@dX5oV\To@I7^n-trM&)Nm4Q2KHQ"p8ltXJLcY(R9(7ic]ae*D>o/]jl<<]MWI5UeG"UIXj+0YI9O2Uh7HBV\`E@.u.^<_tm[OC-PZ'VNaDS+'0I_XPO=ajXm^G7mGhcl1%:6W]^AfbUVGkpk7Ad:uthn8gMh&D)ADU]0@^rf+`mP\"OcO;o;f1Q0/miXXh1iQgfZYp+*PX`h^KEtk&U)+gS(+^n*n+]&/mm$L9E)=/k5:@+N7LI)SfGJ0p02EOLhb/D@PaUp8b_-9k+W=1N%Aspf5:S%/^C:(&($keE@_YLW_?ki'3r!V3?'_hTlf^g;_7Kej$jV<5CNgM,TKbnblR_PUISdksTbDh$B&4uP6KSj;n@B8,gm?EfMo*Z;^rAnL;?OoV>_%n.3(R;Sn.iHQq90Ia;E6j6+CAeAJ/Vl@rO`.O"7X,eIpe"6_^RtE.J3e`q[ikQQnKr(!p!T8CW!Vd@NGuq6O*W4@\B`uPbW9?O4pWQ<hbdal1uai7I3T3B)0\32:EV7l\6nn9BBfS\#tqAR[\6OG>'r`K7#F-"F^[=Y^A?D]r;oeS7(N^D(?,+0=RYB<T03PBF9eFF32Hsr%72[CunH9o$R=*FE3,-f1"K._rM89?JlpFh&Ua6D1Dcg)You'Cd3[O(+P.%/No9+IGF\@\F>kop=kr1*/:.YlFRfO.-r,^QLT05dgP[dX?U?F;/Ap\HmQSf_OuZW+-K\7O@AVL`AM(#egQWci;2D=pKg&5JmQ4*Tiu]7jX1ndbbIY$Z)Zp%J+@h3`(#\l+o[\i6P_>#6M63Dm*Z$p97PF=f);%T1]\R1\e(d$0.j\us"Zqoj7rNDm*eNEX?TLD]L!$!7%>A<IA.R\F-JsJHdi?h'C,5ROA+tu@A7cH@2T9^0WWA0dXXae0B`W7nHR.6JnrA5IA&)/Vt.81LAi@]*M*L[?]'3AaeJ2&/afD,kDB)*Sp2S<4+5O=Ma1=7F2gt+OB&$0N$omoBZ"C)<_nUmh\-nE`jmd&cO86]*"-5g'&Y+;8mc7k.Q(#YaI&=DBFN24F.@#@>;maZg#6BQ&C*k7r;CTGbYg\a9!^JXIt-"Ed\00JI#.\(o@9#m.a:7?HDf`Ah_=kAHEDsG"K+FK1@QmS&Be-\T2p!"!j6FQ4,)[Gk=N*%4oasL\r774rg\=dD+`nBC_(b"AY#rd"Kk-qMK]>6(9c[%mp8pbo*qh^<OB]9b67%K#5]LU`JJNbE%$^3ls80Q1i(h92gag?@CTtJl6=V;lbiH?:j:A=q$*TD``;N3f?B2mDYSnc")be)CQ3gWWfd5C2OO07LU7LHJ8`<bhS8mpAL812DDE2R',"EB&su;(((@c5W'<KuG5#ORdGWqb59/1i(uJZh=Eh<8G@+[eq$fqrhg]Wr>GE?H;/qfCG>Fbqr.cI9GCSH!Xe/boOr<6.dL=a`dfIIqoe;Y):,eW21@olA<5df<\XEpldtERdn3[?i,`g7aD@./$$VrTc_h]5f5RoB]._;uojJK\eQutaIpP:F\3N@6\Q1g8/RGQmUb(<st(Phk8Wr~>endstream
|
||||
endobj
|
||||
85 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3676
|
||||
>>
|
||||
stream
|
||||
Gau0FCNJ5g(B*Z.JWJND9Sj:niX\,RRl'OoM/0_efpSDq5U7U0-4(D0Xf0!`cNX)a*/W729u](_:r(%uSpMTHNUbm`^Vc;@T,uYK]usZA4fk"i3!"B9@IG8_r]G8a^?a*mk02t/c_'.!k>%l^G5'1J1L[o%N(mPi*\`*+"9D0KA3+nhBmH2Pqm1>.);`BgMfN8SQir>Pa.0qN9ZM5:pp4ZgF.$4\#M`3>41."e+BQ\i[mFesnUu>)B4'Z=QsF@8==]u`11Rd"ci1m)^9WMQZp8u(ai%=5RV?B9f7(UQT<C.o(QL_6<bV)B0GuMd*E:rkY^+i<rje9g.As&&/f^o[O8e"?_8AaH6ptga=BapYl!,^SPZS5<Z;>5SZ\X;j$Y(d@MMJ_`Z:sC3.^hngnf7,h*Rh;jTjWukMc=6Zc;qn[AlOF]7<,cUZVZJaUG5R:YhJ.\iG&f6,eY<8Q:eWC^^!)EobbeV7]Qj_4B'Bq[7hC#7P,[l!dqj<I3Jr/j2js%G[tmDMT8uRg>=cZ2=R<0b9Gh7($Bq0nm'/k3Wo_c'65WS^r!"!bZS$q>$*RhrJ[%"QCa&uNpj5oGD7&MI.cW<CaQMe)L!9-9@_<oXU(Q:e&hj<&tZl-Ye9!J`phWI*oP8CXj/>@<n7eceLR"fW9iI1gmLs3dbfYA?4drKAG=Hha2.HI^iSZ0*nS03cE:\%%PAYRG;2*4`i91kQ[!X*)8,-HSErc75$j<0Co',7\5IM='Nn;,pbG.r#Qu":TXtW[Rp\H0*bXA!=dKlYq5KcpHslW:3.#2H1s<0VcSn<4)o3t'>d.K'n.B+!'T4!rVp6&>W?.JOP5X?m!$+@g??C9h-tL/ajW`JjaE@mE-9PX,Q*NAr_MD1g:4o)gN"op@k)CKg$*HeKi_CD7>&$+ddo']rS&ngM;'hfeMH@%l?']R13)W'Z8Uc4'5W5b3V8NkK/m+,h;lblI,+$BNUsTZF#(Ae&r(s1O4%K7$HSI,%;iG`#q)JdXVZm%W<*^P%U"ft_#kY'[6N9pJV:!uq2$Q6MW/a\Bn0RmBKU@[rnf+oA_!3rAM)_]&_r*;GoJQIj7&3sPRB5ccUDpK#iLW1UZS)\cpYuG^\E[]G=%[4U:.druh^\G%KKq=:'Q1RMDt31N-hT*XZH+5miZhU0Z@=1\%ub>UXt>'H'5UL&Udsl,Y9#mbrV)B!\*r`;+0IhX]!'?6g=(S*XotfgD^HVQL.E5rH&\l7Z[RMiA#to2Pkum&7^]YECh4$nX)r!+?F]q>F=4Lpa!RYHSC",:Wt@[F__])#LalJ3p?bMA?fE'a;Fr]U\GoAV8,+>(OBl.Q:gnDlMgSai>rJ1!4b^kg_=KqBBq16%mmaS5Kc&3#FB&Qm.plAn+#%%u.-Z/7jK7IW6u-ild"$,V9K_\KVHg:'!/kb>/53;TV.h<;K>u?DIE?Ghh1g3+m\O`b\u[jT$RT0L9NpAZU>@<WEB8a]>`0b(75gs;Xn&=Hq2jiM#oaCZVBkeeXt,W<_!@"`bO5`krJpf&rWFK>R+>Y&[#R/NG*f3)'&\C=&Md<`kVD29AfIcK:ldrkm)HPa?bkn9@!5Lc,K`YjLRi@J/Cp:[1`l0=1?J`o;f0!'Mo8Y,e0tJ;.mPABQt"8n'jniO7gj'-JE]h),`&`/5Us/'CLF%m48&eLcH"5_pLi!9muRX[>I[TVd>35(n6G!./gI&3F%KGu<\#'.k/4$Q471l@SGHA",Z=M\.Y94Z-$'lt_a1:s\*/#kTHht3M_`->g@?PJ,$3@N,o)#"pEP=jMP%(bcJ3FZc5]`V4*,$/mEH(>j]_ef@N<gRF0N,AIV!+Qot^@U_st&LlW4QiirLD_6b'*"gj*[L\u>pr-(=qje,t/8'tU@L`^+BJ*7P(sf%RHBkt,[P8P@Ra\mDcqg,/A->.M:^n'Cakj<HKb?8eRn*T2S*Oq7E*Qp5ArU)qB*TA:uRdYrj2&;a>M$_m/N!"^>AU;].JV3Vb)F([6+!Qt(Ld>BJknV>/Hmd13=$D5lg=X4S`'"ajtF[l1%&aEtuQ$Co]jr4jDPa!T!<Ff<,%P7.klh1c@LQ?@8Fp>?8[N(X8RVg0:C!!B_8[muKk7aXI@Z=8DE"B1Xe*go;LQ/uIYTD^;C3q#"U<`OPZ#-80+d9MH2:a%>qql;NVRR>)*0I?@V9>kt^G!$"WUcKj)\W/"a@)mMYLoI."$LW\nL!9tY7[_06;DrMY!b2^lVHZ>F8mHlY@m;miDaG:r[dP5WV?f!<,>&mFAN0k9/KVFd:kmdkF/RW>FILX"W3Jr0aK$O,5d.AMf2)<3oaF(J$,JUT!Jtd=c/BeU*+u4'/\OT>Uc()03;\M,uJ^n,ALP4_p%5J'Lm?SI4\T_=W8coapl4\cc#J4R[MH2A7hm>5[Qq8]^=J"D;Qt?:7HPc'UF6mVY0<5\(IP9:<Yrkb,4<<_eprd@c*XA2X#&"9F81SeBhVJZaI\#?J)Jeg@hg?Mj.qSlG/B;?_f#9@Hp_3?Y\'ed3/k"W9LACX6dGH\o:58eg^m2!JZZYZ^'G:DXcEOD<*>Z1YcOeD_Wc'5lM'727*%@kq5>2EW$[<#HY<-87qQX+DI9,WCA1_@mi/BPSKW2kHLQfdqE2#jbC+2b>351Zn7TbIdFti__&L5]k4PJgbqo<dfKt2ZTUs+DGIm.4?hXnKN#:C&q:\%&fR$i!''KUk]Z4OW_0#@*b,%IhJ*WPO]Osf$,KTG)!tF>93t#*#[7Kpm5UZf[CDhB5(reOi=79.b7qNBIA@&?csBriP/[cH9Sg5RjIQti;B9dA:Y@>LZW?.j5KiOnW$2$`^?*XAg)fWf@]DKAkj4MYnnMb-as[kRS#,2G1Z<Smhq#VZ:42sX*_joQ/K,->7OMGu:)(I9N3*`'1E4(f8E1rCkHV1eP\.RAV"rbi/T=rU)<R!3%&%ggS9@H^0&/K^^=Ft86Vd03$63NmYb2DI,,M#1aWh)!Xb\sB`UC[^At3_s*@]mPI4PBb9]T#_<Yi"sF`uG]ju&7bkWu36qLAC8e/aTGntO%bL=^&3FQ0ttHKsP&%_A;3f"FBM_GcTM/=1<pA^<]<r`4LBNDfq*\8e)blh%/clK[\5c.hF"7gP0$:P?bG@c?f"IqdJ:?S'#6hjHi,'T99_:IWP8mK52B(fdA?"nG_srFDpLEBl5'Sg60p#5X'(h?)S4Hk.+JV)^`e77s*XJR;%Ijq'UBq(.bTQMV%a2:g,ESY"?#G!E#EW.Ok;X';=0&O7*<5;Vq^%\SmQBu-e3;hs-Y'"lE":*r7;mJdjr'heAc:kCMU@$/i\=Y_.p<l#a=%6n"r9D@^GZN#3AIq<9ocMeJi&Uj>G!X1t/m(T6ufq3sH`4tiITZ_\.PL4h8!^-Z.<C^?U,o9RV]obn9S;*J-*'b$3Z4c+[9TH]JGNu`a!?#gX@%ClmeDtjN-\N.$h7/E"&h("._8]XtFmn!E,j]QSi('p,ij@07OiB&7:l!s&DG'7OINBi>GVpl,P9==@^A@D"G%JDJF)DWRCYks%B2dqQqU+rfR7(1eq_I2YHYcqk-P@s%;MJ#P/LU3Z21]Y7h8<U84+W!l=KWfcc0]S\\c(k@g\gUU01bCtMq;5kFRmpu*ojhX%+4@\\1UolDan/F=C?L/?ItYLjKCCD?FEB&\P'@d*3m1n7P.-ScMe=pK#bV~>endstream
|
||||
endobj
|
||||
86 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2890
|
||||
>>
|
||||
stream
|
||||
Gau0E>BAQ-&q9SYfLN>Ze%CT$IS/(b9i$,)fUh>#?XOM0&<d5!P.(&PcS!#&'M4P09KPfo@Yqd+0AeB%Yjm35s./3N^YHa"7gC"MmT8?AQ4N_>_MA#HD\lI83Sr0dCDfRD(Z<'2'8/*qrcV]Rn9e(ui)l*PhU:tCa<:h+b6cpq);JN)>;)*WpQ"!f/O/`7gBGcEim<_$ns5uaF?ltm"/cm[D!_EBb*Bm(1KThm=9a94_*?pV^o*phCW1$3$i$6si[;89$MQauKCLQ[@)_Z?9f+'kJh$2/$bb1"6F7(K++*W%=KrGrp&dC:8B?CsY^P:]YTq>4iQ><_&&huMo7a;*1ob5qg=iWGDq'fB&$aT(EXW3)Md803ji01sB$VIla,3EAl]3Y:eCOo4oX9ZR7G61P0JnSbgDpaD3]`jBTt+fGqd+8Q#uX&fVYG7tYo?*l(UGjqnA=`O43l01n@3,<mlqalj728*'G[jLhFJr-oXq*^,5AD7Hg]U-/.<g`^`[Yk&05=Xn`'94ZFFPtj4'4:`To-h=iRK\p^9ldRQY3Z&f#m/r0a.M.7?=Ab$jd3=mRBMr9LrND,VR,Q<qZWgHmBi6p>Uu"hB52dp%<qpg6]XC([(@SSYff%;/hWJWeP&grQ,YQ._u4PG`2,^VZqjcp=<k8)ZDrT[7te'ea,El;<WqL_-sD3Ns\21j-s!KNffDbE(dGljk\O.Hd.Xhli$f-WDRPa+nC[?8^E35C)rQfuHVXfAtSiW@:nL9qF/K]gU="cAQE^HT;l&17..m=sl(W,-br`_P*&YY$4jfTb93D?aFH4Nh4DVYqKBm3a)okNRbJ;H%+3MQPjG;OG[,<`el9-EH8IY#3/:V6t-L;c>/06S=T48a.(*kr[7$'nWXR0`Ub)a%@RDt<;MHLYYm63Uetfkg4\aU42*W%*m55-<.uaOn?0]%#.H]2"U[\,;5._K6$2e!OK<NW.9E!3_KRFZCD85:\3]SXA%I43O6T/-3J@k'AX)YG[(pL+aG'W/5@5"'qF`o+_2;'^#Rg29s)s_I<dFsOFoX&]+I;gpR$&5[-*GmI05^XtQctB]6VVl7PP18)XS-#Tj1"_7dsYE??'9^&[J"mi`=738)SOoiO-dQ$TbGnumIRJUTel2VkO,_s%^5DJ7hg<3UmJAuD%BP:9.a@pOJ#nUZKGL664R1PHsdClYSY%!qn15I@cMcpgL@>?#(ajFNr$?G(rS-XK,e+&*?!KF[V1!r`k*n-!pH'Rk=@B?mVP.?3q!Dl=<?N2#Y`Sf.OlVF-"W*fPp#AG!eVDbhXShEWZ9\mr52M%2ue%dY>1LJI`Lhb<),G8X=SsR*6W#AK*K0;V.egFB^r5i#"G^`JgmWq4DeI"Hl&.HPgtMRQqu$NPW;Omp&H8uhE>&>Oq#rumt`>e.<I;FrMWZ[2kRuBiNn\S&]F>)UtlTr28%l`I&^VWA5cP*D0:]c+;#?S!dms6^Guh6[W_3>2LYK/]C_T=@M`dl+E%fJ5&d1[>]TbCW6osIp./s`F@\@[`7>A&l<RNg`!C1E`kKrV+Cu`sMG9o+pe7k'KOAjMMOH\'>L*c5"T'FFf5Ej*p$OaY<^KdhW`52G(cM-rOproQJJB.*"7T:>'t&'9?s!lD[HFe/9pLRp&O1`1lET1((qS?SQ0f(8\2:ni_"-26Q>c95^,@U'WQY@XEQlMHdDN0lQ"1::"PbC3Ah."\)FFsZQ<"Z^pe.O2WFo_Hp;i8^QG5*^fErSR>j#24T7SC63P)*hnm.Vh_?75.ADi`s1AOV*dtk,SO;>u60nc2DD\*H&U/o@NJii#QT7.fR*k"[8Q;U8pP$sO#!?gsgKYn78R[b*oe?eI:CJeR^f0n+i)6T39E6kL>oRi:f]K!9b1b0im87uWAGa\l_d-]+TG>R,ZD/m$nWcb'e?%^Ha4:L6neXd`d@W]A1+Qtk-9rpOAE`9*aI-gjlXQYQ1Oesl,&&8O-p59BWBP[#b6m7:O]KB6O+%:/R<ME!Ml+;81eBBg4dM(bbU>V,jp.35qbpb5/Fhn2[;_`g2D3:O?!VNn>o!6m];@p:,ece!Cdo:2#RO5,JdGtd;B;^<`f^JIQo`+o4EnCpmDtb3AKVm:flE@g@%VH]9rP"IFC!`;(%1'2u:6[0K>UOA%33O%7LsbL'KP1nn^O04'hjnJenDQg_8-(4Ql:V414WWp?&j5_:4E#HFX=Q/L)dQMPM'2$hj+6RGkkChi8b]4DCYW*aJ-TaGpU.?a"(k1P[4@FfEt1'+4"9+spKb%/AD:huh-al:-&RsK,K>!]cH)/(*Oeuqnj$*2$kq/J.CFG5;L_I$G`j72,B1j"DX[WPp2p4d]ER'6<C8_[&UN#u*3dKRg\o$_fNZ'NN\J%KZ.Da*O%%UV*J2R^<O"Er?AXVJe$+-T.isG\'g)l8+AicHMR?Ak?jWtEBJ7J0<V<p"PgPf#S^8E3RSEtJfIWP.`qd?ho%dQaK;iOB%;'5Es6?Iu<YAOBbW]Q7GehZk'0Zg@3@S=?-EBr!gaq?#URJ;4c1>[68$$dTCF(s[MZFs+d7HE0%m7bD?OmOO]9nUEAuBa#o``F1T]--$Z$>Ohbt2_56fK\naq&*Lmf:fjZ(K*d=I]NEpqs(G5G=#.-JMjtq!+_4r=H9\FBP0@/PrS!fh\X%**46'mF9/"/WcoAaWmub1h?Qe_HUDM$bCgJUJ,(LWSd#-5t=+e-1_o"RYn-J;ACb'JCcC?-2c%'Al_NkPZ[VI;unea,l79E3OP5Z^%(s:[$/Chhqc'3q!NIF>^q\=^VAd\h8Zim2]D=`>B$=a[0-Bk(IEVY&Gj:r(QB4"8&*u@06*N0(!c"M,7926O--g.TUbH[YOT0\I=/SHr3Bg/qs^G:lbmY,s5a;7rXY*^pc&~>endstream
|
||||
endobj
|
||||
87 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3265
|
||||
>>
|
||||
stream
|
||||
Gatm>=``=W&q9SYkXY$):%8q::"<9)a38..1/;ZSk0X?pOG&uH3$;m'<Vtgc!V!B`M=atk`>4/>2t1sb0>IT-IiSDKc2c_Y_u*R@*#J%pi:rTKpOBuVqhr3AXJP*)Ta+W.>e46lIpFF(6u`%XKb_Dk,)<t=Q9KPejnk-*Yco]l;*UpsG>Y[VOW&L82.Of?r5a&tnssH&0>[4rKc`>u2X1IDSt9BX"r>K7K@s<U8tM4\DXQFEHXuV+QZOI.A3>XN.EVSopHRU8(F>a#,m^S#lI\KfZ>[7kkL)]CZ,-[=U)*4Vj?b`9@'NrZ#bE%Z$nl4,K53HmIrup?Q5W+l/Tc/3b"#PiRO7,PTnd**r"Cnr,>\7?.l%r1IUGZ=,rJc@_?Gf)m%rgSE92cJ+=O=@\ZdqY1H2F1]:4Z.AKqd1`PiZkNY15rOc*t\grMs=*%]H6X"k%kQ#WH@/[N<$e`)Ulbmfu])U9_u$RIgV2b+&2delNa9>bA8rON#5Y%'$W5aW,u^p5iE=Xf3/NiT6aQFeuJT(@jS6d;OjH@.>!9*ABj/^!Dn]a&2::k)JdQjHBJrA[rM&sgpUS<1[P4je8\*FZ6>r$:5NjmhAmj9EVa[&d:GPB,A6@p2R#N)O$mdW'7l9(J@HklA-aP4\NKJ[G\;93@#n`=gaRB9SZiSMF]qH+Oq1JoSWfIajGu@>>i#g[SAB&0eY"]\71/,4a8G+FOL>A0Kp=KUb]n:K.Uc:`r1Mp_,^fJu:0VT>Jj0r3t^Pe"?1l<afPJ\^uaT>[+g^,P!1Z:_km"CDK:Bh3TZ>kr`An-?7jV69t1%/n)f](.aJ30s>Uh<[h$Y>b&_Y%,[(<6J!c$C)/boO$'>8ke(*_0m$GB'i0.P1!^LrKbCMG+=\6,Sf$9\!P#6ThU;2h,S1@\m6CsR=2b;:5!>TbU+[Af,'`Km[Z;PN>>*!'_YG,2^;.u[ncVfl;k`>OrZ.rFYq?Wf/5mec-^/U;b:8dD:r\+8]\IP\qW1ih?ij\kGYIlb=1aN"_R@T$U-)d=OV))NkY*97)_/&6I48k7.P@jE#j0t]2C8;nj%<&*$W"bCG8=fsbo2*;Su35'0A4]W5*XT06d#epglN>((.8R!iPV$s?8*MKLQq6K"=kQA#c`=96Y!HT&b8b)*R5bR_m&d,_Ys5/pk9%KgNOMfn.5@`dkP]0p5lTIf-qX^*CgcA.op6AFBc3,:.dro?V8/oU%I7`,Q^oO&p-kR1rWk,@]9]sC0PV4UqJ@]Q(+J,Pc*"DH>a>d,XnZYpT<%(QK;Q%T>+XkRYqnRcr'LD3MFaF4&=B$oWu>TJOss0]V$T1P?Y%lk7=*'I''1+*ZZ/"BnF?0,c@jSc;7U[=8Q2tFiQc:__]qeh?<),``g`?c$a9Rar*r"HWX-E3dmZ)i=eB"ZT$:K+0[AliY[_TRdp[]_(3^7MZ1ol$$?Ic?H_jIHVBp2KN")G.9$;cK^`Q<_P`W[>9]rp7tYE+m\lkAT]pV;H;$"H!3%6iH,dIR\I6ude9$G@!0\(Q\ab0J-mrQkB?JahkHT$7Qnn';1cPDFDMjYR8,a+,:m,<0n.&Q\TpI4T0M@$2F*VNUq%,1Y_Z)hQXJI#m5m5ce;-bQR6N$5*]&Vq@Q<Vf@b*k5MGuX1>>gL,)Yb->X59ju9Nj*MC'&=*_ZidJg)fYan^^b\nps9F/;,<'qBEuo9G6@We%er1flCf5;HL"TBblC)\IZL+jY8=l@/@m_64h6#;CgUp%e.$e:4_b;r`t#%d_qdF>XLi`[@rBqAqVKq6r1Ilj&k%GQ\Z#X0I$rQ+FR?m7VR7D7jkF""G&X<"i6COW'+doagp>+<9.kjs_7<1!7rU#(QHQc72Qba(&pl=`]s?#40'Vt\@&Ho!.<N.)R6m9=;UXWP6M/]js&R[kP]A3!V>M\e6EV`!;qS.:n!%'K48HLY'WQm/kTAYh[0RU6_),8R[r:;96%r&m:KGZTC\-Eaj&%07\(,a'apZL&53RI@BfqT]&ToG]2!^i\16&NiqB%FHdo*`WZAaSgSb^0&jgjJXUJmF[N\H_JjQORj=3l0Xl=R%>\eD(aS\pbYWd$O<8Br*c:t+F8V<^ugZHqKf<(h"Y2rHEQ6T?.LkHp0O/#Ep!Ul^k/Agn2VqZ5e#=pq?*olg#(^JMK&'C6[+S#5Z1TQ@EsZ\3odXSIEKEeimBAt2bskH3"-1nA5/$st="ZrPBTfr6NoS?e[H)*H9J:.<0=AoSUdUICa&"Z8I).HVAO_$rQc!&@P29QMe_,<O#RFW5G<D&njak^ngtds!Dc0g9`*,X,a=g%h6TQ@A3m(RC&X)`CdBXt/&(K,ntl=n/'!+^J.UPFnEb,Z!'YpY$\LZ)7D@;.0=3;N5(G/>F%,Z9mq,"_:p*e]0GFUN?fr_@Ptk\T6`!Wo%Y@-*PejQjZ2YF+N<Aa-5\;mb<m$PKVM\IAA<(-Xu^]cp,GA,RJe>BmWDhQ_#9G^Z>T>7aoZjNq"g[s%Xs;iI^Dp:6LJ3$-(]#R$_A/#1I;)-@6T^Kn&ZbWFQG/(86b/MNhj3aiGMo.dK209Y0fGDM#%[]#n;C:?a+t#R@pIce,b9e*d`*?-0eD(%1@\*UnAnW/"t-lFdc%.fCFaU8,_.[U8(XUEt=MgYn;:Vd*<HLLX'rG*TG8mRaBU^:l;_)[.4IoKcDo3f^`jjlgJ]1Z.ag?Q;\kR`>5,*Uf`+d.L1_!^9N8478hEg&$dCU>dC65H3)FD)!.AE4%rII"b;!XGcpnchI;L]VQA.*H)9oA](41iu4B_+(cVF/JbkE':\q&DUiThmdYq?Q-t)#D2P+^q6%8?d3g[#-Mh!$)]j<Pr"o!$pVdg0TC.X+k4/kl2htQ*_=ZjI6ZW9=IP'P2cD8K\*MoDNU;q10eKEV?APO-/k(iK6etR&2oQqh-Ro]VI\'UXXloX?f(X-7]?;J9$\;_gTUQgnDZ&2`jm\bQ*-u(DOT\YlU-u6I**QfOOf-C,##(5FGQ%A+:kfglqFjn:/)_Oj"UJLSbFY-<`*7E><p_NN3^/lc'd;9uTN-eGY/b<&^ih1#C[EEGE34ma%'7+_r&68ME'rD,EKXtEAJtV3t0ZP@A!G0ZGIBcK-?^P&jG4e]=PSNVSZ<UJ1+k5%mb2=sIn,h7r*.M[_D3-3g^9$9pV5NQT/,"7`s"V/@;[EC&NSp@\]B)0rDXTR9js5(B'[S@:WLeY1Wtr(eU(S#\9_T6E3oet3)'Yf:dh0'Db+rrF7o-"Z7ic2pje,iW00t5KrrG0:Qpg~>endstream
|
||||
endobj
|
||||
88 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3204
|
||||
>>
|
||||
stream
|
||||
Gatm=bAu@W'&Dk(HE!C.!<OD=LfSM+ht!oE`j&O/9f>@H8</CjB)kR%qja7oK6iWDA0tlW,R06re(pot2ZaoXs1nW)j@&HTaT!)R&CSg\Jr)F[Rm6,Sc,G_OD]T)0/0]!jT8-:&J&<D#0'MVN0>*\?/ddI<Da'k.k"R1e;`l(I_6j00dC5%boF.d/HdNc*-LkV$%`t1CMs5I]?8S-HAc_-Rh[m0LF/Hk-_nL0&r$&Nt$^&i/hro!$X6<JZbI&+n.LZ*9M;gaAo:9cJi<S^R@5HkM-5c3Rq[7%appaJ2n=h@>l*`db)u$5sf#Mt,_i;Bg.@;i)0L%R*IJV%]O*q-*dr$fEq;4F'P8Bg5L_ibEnH'iL'4D:k"O76u9pZsi/#?fL8L@DSBIT-#QXmS`IuN4?0=;MYY5PK3H:_\1m7=<nWN"`Fb%/*'7h$+m2'`NlCj\`n.uW,Vs-I88X[q]Ze@/PJ$f#VnK*UuG/#>tr*WFKhq'QS<6VXg`KeaV6e#66/>chO7)nM5:OqB39V'`H(r0R`Q4n[*B55,gWiLTbBG6[Ahr.Cq4n$kMo4!.dX.5R7UI$9e[oWQGR8iEDG9*:9bjfN'P78g1gFT*4VV59<#lN!4Eb1*FnPAU`]i,blA,M\LBp)ab!:4cNV@70NV/amJT6ujd_+7N0Dp`um0gl$X`e`h'QHgBjOq;8a`1sIdWLa0H!<#(8&,#qQF!oK`R&Zj[NSOaAre\nN2]7P'kW[@I!C;"njQ+=;g4Sm=*&hlUs\]+LUIk>WQ0"[kfl/Z['oLVMX!U\=VZG?XfIX5S*\4,nbN>B]2%OhSu2H;57M_b@tL2^!IDG);R`d-ASKhS9s6LRZ10q:&m^=e@Lj%esCT6+P#dkMZq$,r&*P`n(;+0jEQ.hU<-dAFQ2!4k_,-LDEM?upliAL.]o$02KL%M,KQh%ocFU.jLJXjh*^J8_Q1l#Or-,0M77BphP$A=l:aH&?C]8I(2%4[`VtjUu\lC?t"m1)n80fd#RhaQ*q2&@`Vrf]mh*<VT`QESC7iY3<GJE))g&)'[(jfM&[)UU!>,s,jd07<d]1K=qu3L%-"9`oFTGL%Gl6&-;o:rUM(=X?7=]EpL\1pV[@Ao3'D.p(:`?#_@[G0#jjZ:J'$)GK7/N[rPfoZ2[9[123/o#7P)]MZ#=Q=gl_fk^p'h^qlShj_'+62u2LL97-=2>VYpW2h^eK`ilH^*<7XM_Hn-dIKf`ZSS\5hTq6NNJSFVrViD9Mp0656KSaDsOpi7NguN]PVH<IiSg1/'f]%9mYY<Y8(%oj):67@0Wm@+<Fc:$.)86,na:qq7Uq6[kj*":")J#>#6:=H`YFY2=8K&'+4.L3()sZuFGe_iiJY/6"_]'__L\`:]iG01Fih3Vp),KM'd'kIU-e'`i?mUnNW![uT*UZn?6*3YFcUH(nKfsA[%Et*V%&b-.a%f*3bskl,\d)No9#U;<PhB*C?aiWoL9Z>\IY36*5FFR]_'Fr*UV7Quc5$4VBb[V<<[XI/`8\2`J&i4o!/JH0lr.[KrM>5efWZk5Oh2$8I0Jo<NPB:/L'l5Kbke20Po_i>\!irm=H=C,PG5*LFUL7KRPAY7jAN1X?SuHU@p)k#XARO\!sr4Unpo<Dl7n(<cBK7i7BW:P<3alMRCYuT7\B<EI'2P?&\t2[B`f>r-VRmUYG`fZ(FagDjFA?)M-HPte1ag"O5Rfd)_!Oe/_S5+f%4K!fsRB2FNPP/A"*h_<P^6u#Gt-b`5S<FRmKX0.QUL_I/*UG;6iS,fTVot7J,<.FJq=o7$Vg8=6lF%O4;M:)JZ=4B4^cD7d[ii[F]`F4cO('=P,n-Qb&rcST2r_Q4o,C#kltFgd0NX!;8(NduH1^F=q%F3IeGD2!J^TH>W?r!rZ;CpLbN6j6X2"TjGh,;'mDro*T%2@M^&qm>D0-UbW%$HFF]mVTJ+PKh"'@Y0EV"FSTea^jR]^-@]k,eCfk/;!s(0_tnlXoDJ`Je&km5N\etSY%IGjSCoVojQ8k$d*+SNl+Z_IW3B\%(WHu7*'[QX00*DeQq,%?rmG/0B6tHaV8!T0m>8T"(Zp''b_Pl]hXYnn%8efqC"iP+`jR,Mh6nD\h>VO^[SL)[rld6A@XHR\Qg!e7D_@nf]=Z.A4o2j_(jrS%"(O@_X/r^laLbBQ75PtWn^Dn]lim?*h#,$L1UK[_/$X7>j-fZ,EcYbpo3SRl4&fq7$eU"JnOT@M+eV6HP&hffn_d(&B]dc]doml(3.jUb:;bhniO0F(%!Isg27_%'K5"6kV$\Y7N,*I%Q`&U9E'?r,?[D#$d#iZaD\$8e_L,jB4gg,Ln<R3E5Cu$ZC)Dp0Gifj\S0<:%Yio#d++AW!5Hk6]:Y-i.oh=rGXo+4Ne#hE!,KSiG;*S1c3H??#Eq;-F:'bYbC<T8)9u`jD\'JX&j'_Q2:X3NXK\)!+R5@r6F]nJJEWnfSCoE<&?Ao)6ghA27`:LAFAL/9]:j#h11?F'[QBffj4q_b4;V]XDKL^I\n'cmMmKcp](%n>he"EJ;rlc'@3Y$ISrB-a&Q,#ta2<ZB?D:guR]tr-M>89XU[UH7&4iW8S9gL;,&*.rP!/%;7)`s%;k&IFdE[n2-##3kFmDb.*m,X,#4d1?Pp="opnWY,Ig#AplouGse%+`bbLYmCH^ghmY>cl_-`XUjFgFtC<=9K?PHXdY/'7DgJAAj\_l<^gAZP3mm\.:@?WVLGMcTQW[-eM[;S-0ad]RaWT7R$fXA2&H:7fLbW=Zk\i#$Q9_"M4l4lf3rmqJPrD<Pp']qoYdeD4e:Hh+7Ai$mR9\G?hJbL)UZ<9hk^JM;IgkUBBrZX,k*l)1_&G);3lUi:du4i:j!ti$Tds5%M98%1Y/f\l<X^CC7<].V$?c/"patI@+<tk.N0d`%O32SJ^>Eac!Yf#iiC5DhmQHpCMuI1EcN_X0"YEA6#2Ic\Vc]V?RaGjUhWg6MnaCUnSVUokO46JmUH.k#ZTnBdl$F35`(Cr@$"^e\1;uoaCO.)E0XBg2g^F9qbF"6pd*ZP="_TY?PA2oA8uBp#+6#j[sK%>F/:pXiifQY%!"6IF>4T'!'&ijW*?Ql\4)[5]++!9J'&S24_EPf=_T^fq@VZ*h1Tk%o'F0m&P;0fRrYc-<g]#QEdQ_Y)#.P9rc>J:SOtC()c*ik;SN=Zq0!.Co*'N#;qGR@gR#M(d#>((IWHGdf~>endstream
|
||||
endobj
|
||||
89 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3011
|
||||
>>
|
||||
stream
|
||||
Gau0E?$G$]&q0MXQq)(U9SjkfC7__Nd`pI@Rn_]3AR?PmP#.>B%?OK;?b^eMMNVhq9O.DS`3L\.0Xu1:jpi*R#ld6k1G+F^GsfJn+b^Na/1F8EKPj!#gRF,5MdR<UnMI+N3h&S.(p?drT$6Hj0,MHl[MPCP@5(>&Sd%bQ"cXn)+Iofgk4Ic02*JonfUfR,K4LLr7hGnr31l.A'ZAHl1(D@.pjoYlY;%&W"8GmCjX4c5d3>LgI%`dSXePR$Ot/%4AMehXL&M>5r(/h3nHR$7fM$B@'8B$CreiShhej@XK6RH"p9)`Sj2%O6IH4JeGP#WDiKR2LoA?c9H!pU=fDto[mY)7fIdfGF"!<UI9ZEhf5XH`j0k(\P0sE1>r)/ADdWR4C[BsIUAX2$N,3?oC0mkot%WIi)U<I0pgUB91Q\1&D949=so)=?N()rrfZ,f^D2>6!TD5o*<AL=`Rb?pB632ohJAk<%/EHPUX.I[b2f&5A!/Lp\/L\L@?Rr'daPpH0*\]P*MJ3OXu;978bdD0q4Gri+!ETG>&j)mTI1#"hm@3>?h[pMd>jj;.=Xmum>PTmf+'o?LU+;]jD7=<1Eg+m'%8s?;t8*O4@Q0\Z`17]J6NB"&&hf5.C8MV<G+8Zsrrj'!FKjg1gTs#)qN6g[IGHO7rb15om1*u*0^Ej8]/!X!bG1-*[(+6rn#B>^Ve2miqlO86hXk[cQc/=J`l$<=lX0imC-!'f_V<!9W\+g\+qbsA@^&Qa@dedhX-?KGaVG^L&!VT/41Qi]BH,;2!F]C[cCTph"C8Dqf<OE$<A]Ifs:o.7#YX7U5a#BWh7)9caF&ffk@oeJ'a8;4C8OjkV^!4c%PAjfpOTDnF?$8^$*@[Q$YL3k9;2L"bVm*\m9UCpTGq.7Mlm5([kmGns-LeG5H#)MI%3gue(,F'PHoKg\?4aQ,Ks?".IhG-qa5PW06pP[LG!OX,HFL+.40!!a@hhTV*m/O:0FU5-cTMLPcY"ntp'9Vj5Rlg,Qbla%iJ8UEc@f.9Om]BB=NVj6mV:uG]0MCag#@W^,3uNtc\K__.[1#a?M2,jSHna&K;UMS%X;Z<Hs7CX%H:t(!k@[:KrbD)_@]>(Gt]BRR&OPrR^DA##:GqR(d=M\1Z6aS9Ll*J);-]L;U,q>ZDf@s==S;'P5eVle?/ge1<>dLI(+"8er*'3[jCks&F#.G!Kkks(AN3dKM8@B0U=t7JS+2J7qU2\5Y[SJmu\b7T:lS+o>mKm1E?4IHpGYY3Z*2ONj,$7.a4It^?VGL*Qbn,Y*$ql+&;==dQQ^kmnJ.BWB=QQ,s!Z8%&.b"UR!*q$:g<JIo/&a2C$Q`NE+L]TXS%9gT/AhG2._?acR%2#%HI^nW7S@4.E>$;PY%?5h@`!D5Fmgfss]jS4Wdh(C\7R#RirT7.EB+K*\4I#a<QCiWrC=nMp=>k].<_Y6JmD[$bcu_66M1G6k=&gV.h&3YNg?_$>&-8\Zs=c-N9]p)>YYXYXC04e'L`ae;)IP;#D<$g&%M"$6&$(iJj*RNf>3d!1cXEC@o"Qk?7^:Yt)nB/>G-NGJ.aS2A6))7+tm/>UH"4;M%`]G-lZc/^!<f/tU7i)qWpVQ&[cM$eg!\SA,(HYX:0c\6j?><lcY-*orD-'d$VOmW,2`V-r&!RY`.0`u,Q;Fe/ZbFKF@k/2Nu[fSDY:R8^;BD_A/"ddnXj)[';<j+XuN\'#Arr`d.6\cHFE"Z2EY=N)4neoqc_4oKgaZ_a1MpF@0][r$rb3kA4Vqth^42.4C3>fLmOctPT4SkX(r)X/1\_S@QZ*=2FEgB0C;V:Hc]ZW&H_5l>LPtNg.U`/W7\$'FoJJ)4iQatd-?*%8!>(h8Hf4(L?Ufo^0?Z1LQUM"`;mV3tm)UR]p\pLS<^'iE9(l>E.k1@YmYcIf2P$5<'598V.$)g'kPLV)iU5b=?DJT,8/&NXBbDjSJRkEE&7b$3*S,RAoTt"'0-SL^#>D:g*m=RQjNLiMtaKGU1nWU1!XP]QiMgl<3LQ/013I5KHE'.grYi[Rt:s][_R'M]D6eWNM,p&=%FD0RJ\NjHfkNGG+no4V`S[eH7FkauT$sFV<kYSV"pn_"C\844gK[Co5c@.seFMa'T%5D^$94NmQG^T6BnAD9q)-lK^-$%m_Oc61,a6C+LdoC>1j4SJf@i+atl'Q\GcP,oZqnhn/3i0a1LJ?A^FH\?Vab^.IcSDO4$5&V3b?SJk3Z;:&&0boX:dBZ-K_Wtq5TF7\X?nnM5BcNKG1^se=MZ.i#<I]haID6l@%$#'M4Vbb?I@J?/7cKilP9'L>W,=65<uA(0Jt>%n`*5ndl#_k/(=4Gc@pJ::uM+%TNVXojO,&DQ?OOH^YhSVl#SVp/%FW;=YQ;9cMV;j>VC*b(#*/\%#:^.aF)`BB8%a988.([6Elk1-TKNk8"q1Gc"cFFY5N4'=$Z/41ZR?oltB8*17mOe</tp-a/ZS:eN=8iY.aL=2iLgYASuZRed\R>Fp4Sc(#@JY09TB'"+@E^BCQA.k4VE+rH!As9ZA`0o5HD_[/0U$0-Qd`l_0%[e;GYGgi4E8jfT5l]78#[M3<6^gucI6+%HPJ\`#a3hs,GIB]W*j>!5]]U-HH`Z\J>Fr1`@^rB-8u$iYPm[_:/cP1Pf,[U$r5L-&q+CRG^D7Uir_=@=`0Os$\#I<?c?!kPPFWc96RXfMT$kQ49,G:D3gE8Hk,\3P036G5-cgHJbn+Z(eML0!4tY;?SVaknS04Y[eEpNC#LEV>sD^\YD%FX&^ehcVKU!(&b&\)?SFlYmg#dFrL[XOstJ$@F@Q=QH:>@1>cE]Wo(q[h:PBRK?Fsh6cepC08Q9A^:p:+mM5tiDAA9qeYhDQ)1g8L>/e>dPl,.(tSXK&"),.mgXZ^^s%^#_kcpK`M/cG7@Hgcb(aWUb.eI]n`0k3_t_9eCO(f(DjmkQ3H^I=pB<[JT[:r.dmtZ9X8Pc6(A/PV,0PNA]l$[;i,m/9Io^>l1p5)Gq^iWmJg[BK?2PeH&>eU~>endstream
|
||||
endobj
|
||||
90 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3135
|
||||
>>
|
||||
stream
|
||||
Gau0Fa`?-,'#!T]njmt$+?",>PK3QR]>nb=VD#XtJHAt+/2X@LMY$N4Z3gscMl,U/m'&kZKg\ro04/<O+<Q(8q_K[WrcLr![fHXU?"Xki?;/rml-8n?[gR*d"joFVDn]>,d1j@5?ohN?kB@a!P]dih9`o;G;`+7.QjT;-HnUkp?ZZ'ad>FN*2.S@E_-T6`Q[VJ3*%Yb%K"Pb\Mrt,kCORC>eT7J&W<^*D)L[dVY"Fi*J%j:el:00Vd`?P_N2fMHP`,)9?2m:D^[V[AV6H>+&/0^%li+aBn%W`]"l=>*ZZN3#XQ&*<<Sb-bmji]EV-a!1iNid+@G2iqqFg/q"qIObD;\*7?aNT@b@O,.T(>b!^H^01ALb,Xes$K+2mq/B'$1S_=[o,ZWKu;=2C']Mb!]r8X1V&BA4iiFeZGqI=(F40:SkuG8nof6Uo)(F;ce7i$_)"9'#%UAXi4IYn)!1JZ(2u@pRc34@*T@.g3C='T/U*'qW1TO;-=d%nJ4-:&lHMZh\rKIC7D*9pJf"O\EVBG_[Gr6+lZ+qfP^$?(;[Kn)RdNSJk_j*Be*p-Mi,.sfq:?Aa-NTWYAT$]p,LJ594;-hj.nu$+>"6dF,VJ8Yu9nbC,B0t'^SaL10%66Vu/6</Ij@D1G+QO+g-+LdRVS'MmAGKL5f_"FYrjVj]Z-*?UQ6cIS?BqXcg:NIB(i"88s.1HKtWohW%83b4R4Nicrg&A68lH6nQ-kn_Bacn&LO[UK'!e=;&QSM?1E5Kdm@J]iHYK/$l^"$*1U/nIq6a.2>8-r7OD\OFEeJI3XmamAg$&KbT<%&Z]/7?EFgcH,".k3m+IkjII^-3MPfPXHC^H8=@?cD3!gH]":%<h8sc*n0!<Z17#/rqnR?4^:q+O<9\6Pp623PWn>;%%=E_O:o/%bjHkHNVa>R<LqMs)lp"&@p:-5Hb8qMt\=[GV/_8Xq(]Yc#<`=Od<nQ&'0Yp6@>M-/78-W6T``e#""-=]FZ`.^456j5qYDk(qqV8klKd9Ss3Gm_#V&=LLf]'DAVQ0M!T"LUTl\o/aHh6Fn(U$BsXTRBL]r*r^dOnOZco8>6JEqPQ/qiL)1/R18SoiF<oTmhdVI'*22dQ9Omk9(0g-*tt0>#jh`1@SL(fe])9<I_FUS8BuqsOsY/@XA5W2/to(iA*LEBgE;mc5dk83>`=B0]ej&/1pM=!IYOCO>e0QPa9Y#*i6GREcp=mqK^9-OED"68kHX7MPk0B)N]L)2+W5Wr-#-BP\-="B"L0V6q6r#1UWA.P\.6]8.G7[3i>IQX.&%\Qm#H[u>0\jEMI9?E5ui7>k'B^S!U,3qoENrV/B=VjDiRd!t.nB8pks!4e5q@p2l,REBU[ck3ZgJ]:tN&*,7l/5<-\Bn.?_Ma,c'g/M;$QJY_S$BuGrjAsfX.N6[+>`)`N38H&'LHY-F+HcJ2/X*2(=V0LK2966FC6Xq1+J0Vt1@V]aP[1@0)q:e`&MO'u@V9'Q@EV_c%@X+h]K?Pa""dYFr.hq],>Utq4hSDf-fP:t:]5t`Kle4%Ha(c][sRXS)_0`*Y]$GN2oZP>92FMZ:pJcPNP<Vj#IaGrdqD''b@G(BmP1)!gle5s[=8^#RT;pc)o\M[=IaHA*IP.cO1lAKop8Iu4MQ4jGH500Xc>SG3sSbj(bT[M5i*X:P0FhkMqQ[36tn6Yh?ftErMK4,Ns(@g.XFM/G:jhWe^TFtm,T=%SoiH7N:u,::G!ckbVh\PR7J/2\u(@9+`1t6LbPlu.1+/^d$H1S=$_FKH5o.Y>))2piu^$V:#S3P[@,s)R1(pR[Am6pP]IYgRI&&Kk4f9S24OstAu\6;kbQqT$.hmM96isKdjm:JV-t]R.W&-Oa[RU9a$Hp=J[9(g!EEha9C>1$3'_Gc,`94@'PD1a,4`lG7^)@/<OW@Z4UMjG_.+RBE'K52fi+s=Z05bFU'`R\0G^O1d.(-_EjBO_Gs<rIfioOoWAXgTo/#(k;k(sh.DQgdA`NZHB?XXcNi$='^R52rB'o0H7aS+?Ln9D'iSo[5Dshk!"A8#m.1^i2aEe<pJgeaArOCIEfcZ*pR&mDI0NKEU`]Ts#4fudQf<8Mgf'a^@`ZUk)Y;1qe<'(i%/M,bI2MlKX<G$"%\=4Q<=4SkUK@rVS#<\N]hN$%bkH`s$qM3]:S1A;;%obM%KgNB.<f4F?\o@*'a+UN1QMi-LQ)@!L$R6-uF?In(\.$[cQe(RjC`>,Nd+W*Pifn8mcRi2PnmY[Z7Km7/o3bO.XaVfFj!Uk<r)$=3'qEsp'j>WsfH%6eJ?,jMaCVrKoam1Wb6X<-jiq)2*DR)]P]\Bs0\s's5s'eF2l<.AF@kt(2#SBnrj`"D[63&F?ul]PUcEmYF$"B&grR0=TLHmeh,bZ,QduNB%KG9Rs5(VAaUp6n'HGoFQi;_(4h-%rh2V5N\;nnkjlg)te?'3m9+F=<Hi*@&m8:5ua7J-\j)Far,O@R.g&(O<_I[uCl.blc4#!h;[`_5n/#\qB[NcM]h%Uk;I^b,=njKu]LJ#Wah@n$^;EUO$&7Mlq>S=l!Wa'Wt0pd'3eVD^-j-J\im>t]3EMZ!d,uoMM*7k0fdqCME!+0]?-CJM5I4FLa>WgQ&KsSa+^GE6.&\[E9&mOa&@hqi<1EN!p6&oh`m>0#0]PK4rq^Ft.n5mU55<!KuKV)\>]8\L]M+eeXG!]-8@Ru[HeYugYnZNqlr8]J_prR/.7sF47rndS$2ImfV?UstY$WM&AN2QCi/>p6<f)3'A&&QYsB:&K9"a/upPC]h9@TjTcUS9&[P<PAPJ3u(Vi"icCbt5OkkKc(q*/'q/(4&B2RB64J[\]=8XH)X"[ef&sVp"6bq&P-\@C*,\Y\1L@jg2flecqI7HQq&PRI;5-T!Ua&4<M?J_Tr:&dS;n!n9Rm6X4KI:G'+I'q;c8=Eq/53$eqBDA(nSum-0Nggt+6TFF?*r/?dWn<]h,A"S0g406U':=uYLq-R4K]^=K;)h?_h9M?s<U,Lhn4$\u<EP8+HEP_V*'_1J0fo[*f;hG@\k(BXmH&?R7i"Ja"b1u\EqL$Kc79G]G&\+k(>i8!3F>^%e$ASrb1Niea#H-j!rJrt6#N^."V5=t6P<M>B=BBlM$kMVA.5P,Lmr#Z8Po_S~>endstream
|
||||
endobj
|
||||
91 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3066
|
||||
>>
|
||||
stream
|
||||
Gau0EbBDW"'&EF8C8pGB;1.UoH^0GOFO*OVh6CU=1E2,Q-,_(F#!k8<YFd:pUa4\-D21\X*:k>HlD!RpXc`oArq4L]3!]6A*DA\Di;%>YJepHkgjOnfG8Ga936T)F('-CQjjFZOpqQ:Bjq3">FQ(I%iM(jjk:At+(/>]5%^W_3Gk:&QKA2;rklne\CIcXd:,iV+f*<\qU:Il=-WnU1Ka2?e+7L3?m*bmW6+_.Sh/HB9Jn=Gl/c6p_"oMD7^/do8=hmbOMLWFt2n8a=2E4rqQLX^mGeq4CJ"i"EgF`?E=j.Hno%kaldJKU,4q&7q/:(j($U/j&USC"tT(USh(lf.4prGj(.h8E"7(bV8r9<o2f6(]mp/+))^kjUE;)iWl-1,$cVLF=Bc.o-/pb;4RG_)?[^Ke9\6#35U<nA2LGDFo?LtI#[Z^#14n:Sg&o5jiN`KPT,.%8dL8tOFe3bI2Fj5`f#r7R57A%2u_o"St6GQKD0@9Xo*afRr"U9ND&5j2TPq_L?2c\D&5D(0N(/ojJN-&13!%@+"pbb6ZA(B%jGXOhH13O:%Pn)MhSB'k5a:0S%"hjM'2P/[0#K@t>BE<])4e>QnM$^NYo]@BC"8+/ULqXE;k80emIK.'X#J?:;-`;Bre9<0(("fk>:pT:bH(<9<!U0*&6TNQCJ8lYQ1\YGNF#<Ia$M&]u-UmP/N9]P#''+c$o<W@>P)SaQ-pOj^!>*b9%g@3H+O\-@l2Gi?A4pJ^Z"l>`e`a#lk_hnS-RQBqlD\6IN5`;B!J0_S$YgJRhB)rJ?@0"!#A]^j9Uo)c7)IbOGN@*^1RAd^\722/)(du.0Xh<g"(0_qc#`M(<$;*^PX"B)3M-7VD?j8e@<],GX"fkg;$/R9/6\hI3QEq-Ko3id>YS@K+$URloQkd;r%CP_C]ul$U6pqX1]ZdnJ;j44D)4Q"kn".E?H>Q9EYi\/TM,_F%0W.H!4R#3WEX-$nRl3O[VWRI37'7Z!GT0fN&K*JL4X!.L5+;Q&6t*(RQ0-1'6J9>C/@E97efr-'PSKPXfcXM32EOZaqaKd[E*lFakH?IeV_aP3*YP%NjK;bn1NAj8&P!RE-0la@#-juPeJ=HbhNdC=]qVg'q$9t36_*>$$l9!l%7Z52q,Hl^<^KHeRjOZn!6'm4HA;Yfk"7GW97B7]FJh)SH/-=aEZS;]<&qh=P)1`qh;5a1@@jS\^.'KTl\a(M&-I+nK5[",1+X9@'+dO9-+hm*g]uP02GaPu,Nfi0O8n5SLj3B.\F>i<Bf9kgdpt16LJ=>G!eWHJ<=_^Y5Y:j@-YogV#Kgh>Bqjmu(SdZZQh7iMW<?,Y2QE\j`r9$.LMC"$:]X?j*p`+V:m5;"m3Bs"hC`k<;3gnW;gFLM28rq&A.DeJU139,Ugbd.("V<S"I<NV2t5RmT*,+#q!T/FT!m6kQK[NF4+me:oG=Cr$uG7_p-<oX"kcO`3t$[3pV8r'koROj]lIR"hd%3a_Me,=\+KA)kb<ES#IJu2(Yo0X3d?/kh#m,]$bC!nT]=jVr4Td,5Ho=FG:j<t\+04<K7cVjFqK3>;LHkYc*)K's*V74%AS3tRQg=Z*phY4QaM!&f.tZHIqn"cl+kPu;3\dfW59abI?cA*=kV7`LLK*DYEVsORjsOp(!gfeb7?/\5Y6-L+AJ\hEG>,38W_t^L/Bk)5Z+qUV35&KflG-_%]-ii0R6Pos)sffemYuC8;.b3:$W:]iN4l1"YtK(1^u>AH-tK`+.c+BN5<2\:FM-#_6D4E>Pn'<&nWRJ/CkQ^Cl\8CkB]lRB:je2,"ne$rAsA-eMl3(b:bqc(:D$G/(V.NB:q+[@G5J/%f`sQ``,W'="pRrW8I/0N.[tq6ppchbtDB)@=hS,\FFJOWXT9g884fL1aWiS65?4c`Hk]jRF8+_?6A=gIX^t$4Rf!(_)l`/NVR5\$sR=W7SZT<WL5[iVo+?jqoQqg\r#4!J_^1NiWCJ"4-Q_B[j:;p#:PVD^k\Fg2u29_J'87&TXr:I/D\I9Xm1k^9,)>\F/"9E^V5bbpAs@"S)ef/5b=Bh+[Z0RKY#]@+VYjaT*+?/Uc]3DAb'7r,FsPt&t,N%U*0d8P<">@Ed=Gk;Z4BFT;5Te;,<[3/hdAHSRMD=KF\_/mq*t.^/G9En!$=e4I#[P>h`Qc;d=$]&:/uR7P8YDXV=0(3D\jXVPt^3&pR(O1V=V.*cYeP'Q(6&)-etsc$@-\hgZToiAX(fiFO?[kfB1CXdMLGMhW/,']Q$&cLXPa%hRaP*$O9;0LY+qCN3@B^p`F;2PD-ae#b>eXaOPBqTr1o3qHZc(@Ad49u)GFJQYBZ-*sMb]\c8E^J,t`i+Zp;P_cA58Eqt*7Z'u8KU)n2XnZB^YENZmK%ZI0Y2$B/Q%E)&XdI'nDa#Tqd>L'?bVg#eD/"J=43Yu[(e1\E7d&F_4d@=081?l]#A=Z&D$7S#-tmANFBa@n;4pbe(,$`d[u.+YH<;V,PNaGg>h6=h=QMs&bj)WegY!A.=JFUfeht?O6h>bc"7Ob[H*StB%CjJ`(<=);bX;V(#sMsL2:M<t+!Hm?206P-!-r(=MA<\#A"TliVOZ)mVkPV&V@jpe;63'^=0d'Jp`gJn*fBpU"$gj9\>-$#k2_L[5]3MS4B9;1^&BX5U0QD*5(m1hjpMHq"o*:2KP+RK]ak`^1"ijTNK2K>@^bA?A*puoi5lD6I;HV7_SrrGCWA/!&Zf?TO5=^K(4LWS?JXTCi:TN&+u^tX-rtfY.`^>LMLLL(J\:MIY/\hEHW!i1&9;Re2CdgmSkoNWb65#RXQ.1+@G%+KG,TsFFGK2+IPl_/:@4I@jtGcuXG?\5QtF-]NRlg4e*Ama:rs3sjEd0^=d%@0dQTB;U]&c"2(;dI=<\h@2U.0j/_<nhb0r_#C[-I]ql/uN#IJ`0.C??#0+B":MO>?K.]lP"f(;D)FUTLJB1=Ms>#S7//>chAU/FXP<T`&a*7)bkdPM!Gg@8P-)')8RTA:_N;i33!Y,n"p;IO%2!\uFo09Yg+D37FOFJNA]DQ^QKh<5:EPsh7J8.fe$dMMZ+E:JEn5Rk@~>endstream
|
||||
endobj
|
||||
92 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3012
|
||||
>>
|
||||
stream
|
||||
Gau0F9m>>O'"n*CoJ*sRVF9_(3G$g1*P[r/nKcEJAM4T$8Vfri"-A\R^OE3aI`QM<3gT@-&m5hV!nH+,e]ib(_Oo3R)eVS=\>/"9+b^NaXXTbC'>"'+n*_n.\d0)3E',4@0OHB*nJ&0(31VYcj1d3u.IAd/RYJXf6K<>FR8?B%fdI,=p"P]p?.;NnEAc<RedD_Hl!uf3.%#\2fk<[fGWqV@6S]V[Ks9F*?TOV[fN1O\DPaU!(Ff=QM>j:<(#@rIg_`m<S^VF*o"WT.(V9K*hr&_o?7+s'#q&6prJ<<o^>1nV#3-S/Bst`p)\6QRejo/n`uD^^;E/==Gkpg055T);?lMk<UEpB\KVL!#%6_.\f>c]okId3oi+!JklN_`W/Zmaf,k?U\BhKqbP#<;&Uf8Z[Bun:uR0fmpauAbC=QDMEI"bmTO`>),XRo7o;(:l1JDsP,Cd=l?#:+LCOa/M"aL*l&'>D8;E^+4Iq*n>?.WM</bCSD;Y"Q1BqCX7S9[un,6gtAGVkD?OMdUf3kg?`0GH7>@oUDpQAVLlY^ng_81m^7!%lNjbe4+8MO,4IZ'es2Q`4,I\"H*eQ[tfKO*Ng[Q?i9QZ#?AnnE-kT&nPu=DMJjf)(394IBN#D#N&>*<L!d/!.O3j1C;ulF?5fA6Ltjk*.a<K][4O=,>/Z5;=mi].Vg#U/"4DRHMl!Z4cSrOWRP'3V$#pkJ+/a;T^V1_I-3?\'q0kH:37]RG%(M04PbKXA-W65>jLcZQ1uT))_sMV+r+5/Sod6"9jZ=9kqMY'MD[&K#R]GDN8f=&(V1OaBQ]ZZWETKe8du!^^iCeqaLjg;d9H8k`CVINlOWleJ\SZ84U'9$7X5ie7C7K^[qK_Ai?'90tD+12nQ])T76kg&!\J6E1Jt'\&IR&kC5#X8"U;US6H;0gK/%e%'I0q;g(^cNPrAgO:<etpnV0*LbDahC&7jXsIknoOm%uQ>7=8IKkA$&XX0s]/,Toorcp4GlJAmO6j.SYZZ=)og78t3QI9UG?YIR7kJcc2hdrB.?qXU.BlXKqsB7b\8p?ZKJ1<@[=5,\l@N#OtDd%bOGAAB#`;3rt4D)56UE3/Y\PN@C3`7Y"rR*,9%_V@='gW'jY<?:\`#PI,Z04J_B0kCN8t^lBS%aRDmbS:RqHm9!I9&i0BB=Jp^f/].QtSV"KY[$ALm.kC[8!B(]r3.Oud(\'ebb[Ebj`h`p;)=>mp5djj-b.<L8E)iLN6K4WMCt-*rHJMh$[E>G,?`4R+L<1&]C:sY:/:X$A`ZDnY$%Do?VK3Nc%2$Xd-jB'$2NU\/`)Y]L`hV-&NRg0TT.oZl5CD1_flFRR*<*H'L*PdmJj`baXFOq6lLNHO\%Tq*[LkcXh]d$\"')eOK5fKn/ULu]>JGc^?3j9;p_f`McNt,j#7(-r^Z:p"a!V?Cb9!!Ahdq;ZQXuFl/&te@3)#X%f6EgPiQs0*%NM#;@t%0aVgbl<cr@]f?JKG$CThdFk&"VhOZ/,UPqRDa;pN^U$HcD,XQZM=aaEe#$@X.%mG_bDl\"r^.hUZ?`R*'QQNfi!j9s/4faBPUV_rt4.[=aafl/X<6f:&-XW0aSqgkkq!E.BJH*\;22>qN1p0FJCf4;f@*2@[^2+Rn/L'BXOUZt*68u+(j=NVdgh@6060X,,\5CPjf=VQrJ@-[Vd%t#rWhD+YS'qJs&HI.PpCR3g9G1)d!qG!?(=P=`+AU&-m6?6(FRHP;*=L,T-c.TTBK"F<nfZKqJ"E4Q+S'\_rdEm"n$T^Y%GIqG"%nW%*]^&VG>F3OD%0N)?4H/(%-K<`cX@LHP[pA%74]h9=T'KI$M6=n0HIBLR7pe0GVjau+Np,-9T>*R'7-lg[Ds]+7K55=nR8;_N`f"QO[1SJ'`Y=Bt3S%^r+&/@s3T<&a[i]&BB3+!0)e-RYX2al)G4B'O^9L9)ja1.a^AT)JbEHrG_[U\:mTZpq-LQq2Ja<9JH`sNWndWhEfA*3Bc9]kiLL*jt*uV_TcZ!1edTB*<NFOfuhq>`Q8(]33f(0Fa[1<]/MHPj>g:**R0C/BA>Q<E%k,.QmO8F6YpXIOcd=UblXQ.^lUm]Et<7n=%Y(<C<\HkMMfN#.)o;H$mWW;4uVl/g09q2/O1IW>kKi;.;j;OT^g$2$`\M-MAO*^ek"Wo[l:M6$-\K&ja-OikC+$t.OT5Su&AUdEH>heRDmqG_"KIc,@<YAjdS_A27&U0oj?a8QUP@(d:5"9H^X@qe(9!8d[Q6]fl>osrBiitt(Q+&rU3D'g\)s3=;SoV*<NQub]e#Q$eG^5JK5<icH<^05&/k<_`p1k/CfQRGn-e_s=!M9[W]sVAU;!7,*K>F=/5A7'<*g*F4e)I/":Wokakc<4XFDV"^mo3Xr>@m2<CZMoIa;4:<BU@uTc1'QV%=8YO*jMLc4So2,&4PP,rQt-\`GY3%pf9!RT>6d/r'IALqZh=[H!UPh<98\oHcU%&:fiBWa%iR4XAm>LiWmTVel`U=Te0`!r,3:/&K@<e.HEMG:6=?>:EoY5Ic3%EM,^(=qK8j2LK$H<S@U-,7'G3)`&?fgjcpoDpaeiL_m?WLWh1+7j<3'fs*iVoPrs1s:9lolJ*W!L4b.ihOr3MN;X0XZ6"2LOoB:R"I#cTP3/N*Y:3Wb28NrSu5'9t;O>[SSe_Q%%IGXfcr!]BpIQp>9Ur#:i)L?k4WN2_i_9qk9cIRo\%J6OFF1.X`OfT8oXld_QH\/B*DY=R'gkcikY/4lCo;3)Tib.2J>Mg>qbe7/MmfeBn%WALu;isUq+2a]hm^.aL??9)gAu7CW!m*rA]+upWP.-WZRA4Kb7;XmYGnZ$PnM?j#`,o+N*,&H:MF0JfX,;SZWI*^gm@p(6-qa`Q%=M&(k!*c8goc&8M/s=\I\&!P9,tR8=Ri=kREWp0[q_b^`ce+P!J,WSdjj=]!g@Rn]_&L<bj8>Ilt,,!Ib]j0Iq0%3Bsao^ORl_1P)<INc3`Z^]0u2h?NII(+FVgVGd4HGTSrgPg#5S#~>endstream
|
||||
endobj
|
||||
93 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3052
|
||||
>>
|
||||
stream
|
||||
GauHMgNM=2&q'FToV6Vk9Sp>anWPot8TH^FnL!+``uKng,`I!f!48m(qQ0rE;Y#g-XmF/$jB*\KY-+o[1h%B]:[J'TEh\%g;?)uMiZVSZ.3:uh])#):=%@`]7Alo*1`K:K4$=UE-MSS#PNeUOIQ333FF.!6,`YX?1n$kn1$(6[%\e1drgV<EUTjA!=(CWC=?%3p`q.$.U2`;f%SeGkc)0N(9R=Z:`8UCed_eY0pWDaq;JK,G,,6gKk]_0OkYkpO8dh]BJhAiVr/IlYTW>j!"*Rc)AVTS-nRUgoIj;u3a3EUh1n"I]I'^-dre:U9+b+r1=@8NI%^IK(:Bkln!N_"hTG2a;oSSYnf"!2B-*2LWT$(f#gQ(O2WcWM28Pi;#<gQr9;nCN%8udPMe$@JfQ+&,ER;8g%<a%6o92Sukpb3tNZq!Sd!\h]3dj#H*`/U`i10$jp8un7-EB%f&5H]N<To)jW#KB+jVXm@]7l4`dJ./2<L@KLHR*>#1D*UH`G4#?fA"WPK;<mps/W?LQ4*oe=gVfFh6KP(7>2CZQ9=Lb3?K0-L#K]MJP.o(D'e+AmWSW`>MlsO]c'XM%P<!qX-GM,2OGQsrO!X?]#g9u4hnQlK<?MpY[>BqHU>*(B*1S7(^R#iOWMhAgVI_B!G:GC29Q*\K,275%BfqAe#Gg`OAL2nLOXOobM:X+q80UW9AOVa&1T'Y>ko;,e.p5tP\D8Wm"jVoK+U$7`>;"%#jd*)!;S+@\^&S#09l`VP6r[Wh11`D)$\Af&",s39<Y^(s9Gr1H[?3MO$0\pI7'R'ZnTBPcZ(584:SZ$toM:)2#buRYh;Wj1T()U\&>+5[4:$WV,kKLlAi's[3H/'g5P8PRNN,,bC=@Nf5@4Zc9;lj%J^R(U+ZS'q,uSXWpdhff3"fUl?OXlsV8/[ZO6@E>5N#K?hDL<YhrUD&C+I'ZNpg4=%r(5Rd0ar3W+O=O-:,lT=pf*_;HRU#-;@RU-hCc.M-"+MHkuU&nK0)Vr.%IJje&s/P"`R1Pqc#l>XbHG9-LQ+4b3a"?a>.ITQCCW6+b4(-Z.gcJqGah57UFN@iGGj7aIjYXT!6^[Z^>$5TaM[\JMQ-3Ye=k!%HeWQb(C."(cn7[%`7N?D]K0lF<u!9i;nSGE\9nXgQUB7O/qq`'S(L4i%0:NH*4Bd4$JM?Bl;+\Y3flWS*J4r0ideO<$QHCpWtHO?HrSf%,H6?'VBW=YI4&)2`^l$i4&DENFl>;0Ks9D4:jDen)Nu45KYE?r-Mas't`;+q:J.FCq4IF]k1Vnlg(f=Ccg"$#Z[PDPoA,)^fkRfA]8b\haZ_kUj4BPaS&u>PnK/s#rhdf?gq$bgFm_4/p,Dh^22%#K"Ca10jf+T)2QH_C3.-$_6bOn4g;TI28AsotrKUi_F6M;>MV)<opWgD/\0o&hV>=^IH&*b@P0>2&)=<9CTnmqL[SuAP8`&>'ibWkZ5Nd2["?Qg/&M8'V1=\a+s7%s4qfsXq<LrNc7jU>)=ll0nscIBuZoRqu?oiV$JCeZGCWP)NY!<=JdRAVWXGq&jqNB2ToLR\H5a]R43)lrW_q;+OdFKC"QeTb1b.%Nd%,H%MGZPN16-AeqIN=]k>!N([:(U4`cW%^!J]=[up2Yii7R]/[\b2hONUPGh^U1GGQV^">#!<hP9o52.H/4,.<COJ;@84fIQ?tB5(M6)U.f)S+_8#9)IaS<>@]of!&X\,EPg7A>"2dhT8m)^cK#6M<[KB2@nO31D"::5DW*HCW-A[^WR!=V57rsG,J.-f3=$W)?9>/L?XE^:Oh.Q4k$H[HOfR)('pJq"qWVV(oB<I0@T>%)8F:pF9"!YTNV)mKMP"Y=V?Yrh\U<3"q>>1<?u=kL33@4MU$6B-:t=$pM6OKGgKm>Me7(!b0a$a.P'arNee*4m#%3*E!eI-9>lU&f:CZUXgX_Zhr32renKA:aK3QG@oU)`1hrEbkH]NLFQ"o94`*XT5f:/&41`of:V':pKs4r<YZY]GXh:c@MStg,e&)tpQn#0&":[eGmt:rY^#!kEqeXX#btfA)?%@Z\GV5,-_jC2P">U0oVg,;CA[0*@BT#U]\C'tSO+VJ"D<G76'J*&B$lH36gnKP29KKY0_su[T@H>`Sd>`<$Th'9>>h>sAaK+;L?'m)LeuNHGFB7Uj[#?+Ph<06B/HeVkkN8o[H+)2k4akK-_KA=k-(WZsj2MQ,^F!jg4FU!`IA+Dk=$KBe5:HE6?M*b2Kr_OVKT;jhV#OLn;4FC9,I:rSmZ8b:<#EA?64*,cBS#PZZL2(Km6dA9H&\Zd2(@+*%$e\9b2h9\&>Xl:gBj)\K=+Y/>_5(d>`k9j-aOE`9?OsB]B;Q-5@",0oe">8LOk/FJ]8#!G4@%O11&?^RiFXWg1sbS:`n[?l6Ek;<bl5mB3:bIFG8H>#7YRnmF9I#I+ok[C]S:LnffTJCHbj@ElMgm"FacVmDZJiaNnc&WIsdhmGQeBdh&,e5omap`k`gB)8FXd7N.gkVhP_ROJ26@l0K[^93fiseDns7-dEUaeIRkD?UV'D5P?&S'*gn+T2!uB\NE^m>*5TZ9ppf+SI)udk^<:+^'Hg(R+F#_W^sEVh<OOujH7bl2Oo)U\e?=F&80Xd2:Y>;hR"<9nT\S+m:`)[f@E0k0&1haf;]#FFlm]5We66H:,UeV&!P%l?U$\SE$=SfbRe]%Kn_.U=tFM--!0a@]9jYAJ.%mM"*pm@#:6YsQ\)sr%#k-c4JGLC94s/Whd'[ATZ2D&h<.KgF_sm_gm6g+APW('217r!`7YGJVIH(r4\M@Ca/<r,lHHgdi5XK:#IR!h^$$1*9p:\%LSW2S#Hc2tg>]O^c,NkR47.];+_PV(q5>'3iS!E(+#_"0)7_BYe!D@&HC\k"fWMrA)i/E.#i%]Z$,(JL%A_#\GJ7Uq\4*MM-:tLD=k[f"i!OUf3h0FL9iojh$ZoVCf`m8]c<n/<gM`LY4?pNMr:n+QPIng*1_#gi45?SYj#rE+HY^oZV_*Frc?#[Z(itQ#<c%OFh4gP3[<i/C-p(NDX-*\sM2qQ?"GCY4~>endstream
|
||||
endobj
|
||||
94 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 2927
|
||||
>>
|
||||
stream
|
||||
Gau0EgN)&Y&q'FTbbNK5M%V77QgBpFP3f%q[hHCI4@:AB+XRL"+Jn;j[g0RfM.8TT>cEU'+X*MVVl+1kdhMh0pOAD>rHUbo[m'Tgh'D(-]fFo]V`-ONh_)Rlbb$J"j=OH6?l%a?i.m4JIJN3G$gDVm;s8S/3R*lHHqkQ5MlGkmR^X_O?SkD/EAc<R2[b!(E5%nJjN[Yr@_*b%[Tq%C5++"[i&BDkQOZ=mqo\-nZSY_G,,J)eoRD"akZqN;XV%DX3IOXkrZA`I8iQe3+#mP[QO3M"r5Hd#s2,`CrnMPVHf5%1nEKms3*g$@^`Wo&HG;ZBh/,o$`X>T!#.4)=#Qt)'ShC&*7O9Oa[j^g76kmb;'R:rQ19/:EimjUegp<]Rc]DU'%@/N"Upk$AS@YciDJ:)R^Z7*>H%0hh`=K"6rj[CZ-#_qd'7\.N=e1c^@;s/UaL@=kN3nH3-]pmXk`uRN^WNLN==,M!N6[6DeYss.9F#EP9-`PS8ngp[_Mrmg&(8g2RTN#?a?_8i(TE9kfcKT;P@c<mYq/e$Ub.n,K.;)V.OduDb#H)$]X<o5P2OA4kpWQjOg-hVJ]0,.f"W;XNc5L5TO7W+q0#"!.Sl#-V5^2p1(:mQa#["WN*]<";V53,6!A!r#fp"FWkFpMPVT\3ioQ`3-h$.t6q<-"/QEk^7s5HN`S=\3(hhabB*.JFLNaFOOd)&uCc+D]b](uC&d*pm("EMI)d<XB3IW[l@u]qt?'>(eS,+VHlc:F\Y^J1Q6,;W@7X/5@Y\rte!@D8Q5e[41Zc*n5&LqA+.8,#!eL$QgiRAN$K@;57PP5`G/gsok##P\-hX&3XknZJc.\@YS99F1ZTPH:C#%C[i;e!.gQ;&Q_P4cMa6:A;GF\+nH%B^AT]=9O%%,tJ@>:6O_O,.t/ON%IdTV,XMdY.cAg/US&cnBn&C&H:iBb,/\^OD.G?2e,@fIYLd/mKc#>ges"Gn)pXRmkK<11guHWi%mEl&LJRD6u"eUa6Q[OG_h5^/g>^7,d.MOY#>pQ/bSM`>6FCBp@qs9ZuJCJ]$$405:M,(H@dbj'_$@jYZlqXoUVK\r-B6m8j.1*S?n_ki"&g<3YrP'S*s,*I,98@:[[&L"3u[dO9rg-iU;i(Cb5)Z0Vh5Z_R,+_]2'6h@lF21/bCDK&aq?M%mur!iH*]6a'BO6O)J<J:Wa=.*N'1)VH-47W<*T<EcDBPU`)fUp;20).'l6%L*1#0YHkeXf_BC,JTNJPS_UJd_Y?XP#en5s9-TXeDMqXeR=#-aQWl$peBgu*_\u=(@\;,amU[h.=MTl?]49c8l.LQ3m:;Rm3cA.ohNS&LuViT-H$tA8#T.3ArS'S.H:_3BFn7hmmE=*XK_-[+=@BZ\55r;_3o@c!@A0j<'AWEMqlOe!,Y>m;D&h7LJUi2Mh<I&Do,dGhB,J<L1=<$0ZQqS!B!lhc6'K#$q;k-Tqd";Q8lrQE462s4S7$HfI:$a,D5bL@ue?slYi,2ZfY!0T>YqZ(b4)W'K.%O^U=<Z[Cn)Y&#WAK>XHLtCIEh=V4Zfe(3ICOHW?S+-G7(HK('hBAp1(kqfTgs,eFta21n/V0ZHT25cib)ZhQ`@4]IAtkLMRuP!2OkP"iPpFCf?ts!Kt&76nO3G:7`FP"ZcAE6bo&-GTEh<)*X'f(,NfR^e?+0@QG-"\&qbq@FBu5\G:^UeYu9?SPbXcpPYS\f.Tt-#MuY_/Pr;CqKi8S2e;?dI(6AaVXO>L]V#Vh`2^/MhZ"JF76pp$*H@PUMeOSB70Q]@&:)=d3N.8>33>a6dNI,BPk,UNXOl_*WNU6k?PTte*#M-:N8Hg1%c_-`s+'i)B:/@8CBYG4_#5eG6bajD+&X>_FbuWe%gUrl@`QT+@Qg<&q`Qo17`co?jV(D)ZJ&JB,%)bkQ_FX<?J5jNmBuZtjIt/TZqN.Hq#/:o@5+YGe"sXA:pMrX%IeE<2bm0QoaKbh1:uXr=SKHd(&P<sX6//M!('6X'XHTIM$OrNV)rGXk\`So(dTI_1Euk[-7W\^<JUpD?jpV;P>s-;@$io"`INCbXTT-&.17k^<[^@1@%kbDiM<?;mA0"VdGbEiYBJ<n`6ABWOZ6WA2$E,a/.*[Qk;P\gqg<&QeQY_G)1LKAieQ!Xu1Y<uXbJdCL$]ftJ?i<*Kr_jX2hDLrEMHC\]bactYUc/q]Cj4YOFkVqO94RYVW<(jEWp*9g!G!$cjmg,bg-ddef572J?qmYIni&\Q$Kg=G*UOM%]E^q:f+OM5KWO,52ZBgVS8?:$[Rs?\fj2chDY*F=m<mk&@^Z=>ghU.00*IIIg>tlt=<Of0VB$;nChJ8+B?0:h;O':i<<!p4G6YeL0h=!r^F=AO?mpWK"[CR>e'1!8V3UCXAQrkTcUK$<21j0e29\&X&Zpo@E0O_7H]4p')5=];jS#obR?j@(Qccn<2c;bH="Z`mg84B26WdFtD*0Jj7.hE>oqfC9DcBdKc,WuUl4DK`ajNT&h'0&TL2/[DdeD=i&On>i_%c,-OL0o:o?T!)7.?11L':M.-jd*?7ReU*+&I^"-!D19!%m8s;kio;HfSV9`7lJZsGJ#gfpSS?oY(+Rkr4o#%+[m8SG>3H//Ip@mU$Qu,LSC$[n2rV4e230ZjTbC'KC@Q/AW9B@hn?m?.dlq[/R4N5l0pqM\/fB/VU8\>[m<\T03rX)ng+@b3[^Wg`_>]t33HkIQdrO3JR)cZnOkKE'ZE?"I!$J68n1Q`;ajB@[F5$3_0L?</W(ea:AMa;iY;:/d8aH0.%<M<T6I+&mIWmEc)gL5@c%6UU5<'`l50F0ng_k<oT.M<(q@N2p!!XlmF4YbJEW\=@;U_[;r>=+GqN6,bArM^4pV*3?h^McZ<^1,36JFs@Z<$C>;p`aG\I$lBa#Dd!_U%I]lQ1MC\g74k!P8%Brsbef~>endstream
|
||||
endobj
|
||||
95 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3407
|
||||
>>
|
||||
stream
|
||||
Gau0FflGh,(4GpYi).s7e)I7$k@#hRVn4^Lm\F?jnhMj0#t]qE630?pqYNGm+=VSu(ru!=Ci]b4cJ?dZ@*$@_+1g?4ak2)]f]@#p$R9i$A76)rm,eCsGB<KV/==Cb4H3JtS^!lg`SW(;-Zf"WpTkuRgTud6@5(>V4:RI,Pq8JbK5f8/(@:n!)1%1<1%r6t3(VJ.5)ra,K_*<1`e&Fr8Z!Z[.s`@T`:H>dB`P\92Yn]+;&(b:a(tBKhFdLUZ=9Z@Q)\;c$=<[hh0`]k^X*+=UX1^BI[G)#nD%AQj2:,YiB2oDJ>F!/joc2ANTamHoKtnt;AN"62%6)u)1D'ho^@P;i27/?N9K^8bT(%hViW#pdd\;"5nd*&*J@`(HGr@G`>qd;MaB+OUOqq92a7W*]KTe+ddT[KWthsV_$Z=.KP"e4/<9NHhUHQl$.qJP^<P3:@_BjO\<k4`93\62Q\F-3-7d7q)mGh10H%(H6F:MLELj5nS]EJ'rC1KOEjh6VX_Q%"DE0530pmt=<U3=D#4&W44M^<_:+!;M0RndO-7<rA++4usI&t9*QLC3NPI[Wr9J)Psdue'3WJu<q7G!i@b8*/D2;Jo/#07'^eQr\+1D@!R<O$%]Bn="<*+I)`bQ^6"bsoSXnkL.+k3.hU8ib'oPt<4oZ5Jcbs1qC!/MrgE,mO1"X/o3"S?o%A0EMR=mc%K<gcC:6>sOuFh5.G#I>.*LH0aP=kelWP:Ba/YSHL^Y+NsfuY_B"E]#rUMBT@JVBpC\S"I.3<#^Wpb9/n7Y*O(c$RJBsmjYg<NI1Gq4a)U\,p0+@U/P=r^(NX$1a_0+X?A=db;=_lP%.9L@HcEI$HsoES0C+MQEEUY=]kWCf%_*XUfT%'r2aKW!VW2dt81A$a;%PB$P[WbXHK\8Gkdk*&KHYQkA1hiq9Wd:RI6rUNT8Bs],X6,ah;DDo;3a@N@I2UtWOK:,OnVY/AM!e0'MZG!@bLHA965Fi*E<okhai[P7p>$MKd%muei(TBQ]7J<DJgnZ10)/&&4r/DZ,YPpoTd^7PZ[r'W:kiS!7_m=(H>*fi!$L79IZMW]jS6#YL#-;#QbjYYaklAS*<@N1(C+a#Uhi4FJJjq'Q'ps#*"O\0Fj9P^9V=F.n+H.eH!\+flMhmS7Mkj,s7^L<["]aXiX7AWkF*@I9go0hJ>+>q?eXRc5B@g00Y;Wgg@CiQBi^_'/0+fJUlk1CabrQi+SH=Fu$kgo%Jls2)JiI%EJn-Mr=/Y3_8Bt'@_NY)S<fjYf>#GonXs^4L,6a2(shm_#=o#e;0\m!C5F#lWhpX0cuVaGn+QZI`!2m]mtW>%Mql)L_\80>Q?gk.T8d.%--Sk!Uo>XGf,'>_T7gX$ulDQAP.U.&NKmPkf='MKhI$lf,c*!g&.J#A,F(I5i=6R3*&W0We(C3Hrg[UO96@qnHr#@/)tU6T]ep'4E,_Z7P^X;A6TN/FX4*K?se=_"hXRJhV3VsSHc,6r;/:+m!2P),J8jKc(nn[5>&VbUKiGL535HqkY&1i/kV<:k6-RmEo:_J6obRj%*Dah9el%_d$;,MDd4E31B';G;HJ[1/igC7pY;`U"dSeUSjkr.?s;(?e#7JC%hdZf0nPM*Kb#'X`;\SDk0"%Q3]l:;.TiXjnNm:Y#1spkG_mV>lQ'--.WSDj&er3T;Zo%>WUsZNdE/#t/3/^C+]j(DAtQFQL@8i%=8>blJdZ(bPSfiWXbBENC^n_1P8Tth#(5sR.q4uOf>Y^lZ7V$#,)+)8:1\fM,I?`_Z$RK!52C0K%Tr5$^&7gA9.W&&Sp@GDh;Wsc2`WHmR]ZcVDb<bpI>JMIR:Cdu!pbsrql8*]P@a_M>*.W>.V&pYh9u0*>n!(Ihd?%B*7*W^eEC(3;*9o$/:qP!%M8r,(_C`Z`7^2e?&c^@7iMk^c?5\O-9"]>NuLC0-qXNW_H]d,:m6.6CiuKn3,9?i;u6b";A<,c:-MamCp^iBTXZ\'8Ruh;"bf@rS`rf'^o^6H_*"TE/=:c<k?`Ol>7n1B'8aLpAjIEAMi^\!VO"tZ0P/jU*;`0HrPj"MbVi7'Ub@PVC<SF2V2#?'G\nF+>W@_B=ZP8b=2IK;AoH`;U#P:KE=rG]fmr\n?6`jqQ]=ju<DKGFXDQ\UW.u=74l"Fh.U1!,QA*Pa\]ejMl\nMo3Zl%C%jf56Y);Qmc^Xc$/<R^6E<g<b+%hJ=@7['Mg3+0q1'O-,3-4=n+tK3)*Y28$AMP;t4(+rD7r/XL=%af`<MF06U-bsHeP-sr:l+WR.GjFWHtj<>ACdTd&%9uf"@:=NKt[,KV/(HUW:/?n:e3I41TGt[(-@m]\S4.ebIT+S*NtA7oETW[aY9I%CO<??dT2SBUois/;+g.Xp8"B>R%NQ"0$e=<1sNH/q3pYRH_VK'CT<$RY#fCk$/;K);O+E\QMT6;+:]-$eJ>0`hosrY%RE7WcLG]fFZ,cq$4'XT*1B?XoD()]:r=`RKh0J<m<MnAY$KGm:lu*%eoKfX\9)'!bCs3OW]%#5aAM5#Aalp4jSMlhRN2aC7^7m-L4`O/ld>qHLZFUVN]'5bVpmY`L6:Ku)%T+-?J'Cmm\]M><rMH86d1*PZasuo&Zclbg26Aj-3B!-d@&I>q@R[Fo$KWA%0b"K$3g>/fe%u85Y0X`i:`sF]sN)I54u`M8u8=D^?A$F6d>PJ#c%Q'eL3M<Vpb(.4nIn1OJ)ff&qtGPb_g_8/45:BM&bW]]!gp'HAGoHAWFbgB6?:JI/VNlL%qLtqO!%cn7<\AK(T=siY0,)WTfDC'7HJ3FafFJlq(O=W+[k6]Dd?p$nTcKbIWoFa72<s>g&k*CZNhVq<@hLdU7,qKj^\8NYh&/bmSe@GrId3.Ea^Uc<KQ,#t9EeWC,dV[Eg:3(U\#jgfD.;WbFu_+OV,]Z2RER&3fR*Kuch*j*"NrT0-0oP$QH?&gGNTIS56nq4,1uLS&KtW1.)]5F>mM)617sIRd?2rClQBTP;U2Z7VIB.=F<W3@VQZis-C@%j('Y3AO8f5Ia-0h$mnur=,9=2j3FA%@hN!U@@(F:>-ZYFFP=Om:Ch)?,gl23B^Jb\ed2l*%YOH>Ri-&1-o)1F*P4+31c8pl#(RP^\cWF<^tfM17l#m7f,*aX*R3C^tpqbR@6JX]+UO-:BZX:11.!Sm9*mok@HQ#eL)'/2bgm"L\ZP]P:YWA\LLGgr;*dgpYPA)&8`jhi@'B:r8"mWGdjf8^p(1M\DBZ`;dSsnJj[!$l0[(Smct.b<csPR(;tfLP/8L#cKD,P.pf7Uo^8LQbRRX.p?>kLDX_)]^372%NjQ!'$hG7OhtW556QJZ9AH5,lW0uK6:m%$s!B>MDi/EjjL*IG""YnsOF5Pa/J(N\p$.=EEm6^F.l#7?bh/o">QU_eBg-+q-+7/?4cqcdf~>endstream
|
||||
endobj
|
||||
96 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1651
|
||||
>>
|
||||
stream
|
||||
Gatn&gN)"=&;KZP'R`Q]N/U$]YW&OEj\Q]\H>T[&PFFjQ_(;@D1,FMnT76eX#tu=TP1\m%_5>c3dpMk,m?e+QMSmcA,l2XY=)VQ*LGUY4:83F(+6\d]`TN.m3f6Fk&OhoJF>un_3fMPXN,INZ6n)t+1o51K9kZA?P(ZG"a+Gc]GJ>W=]BEKq?k)#"c>f)Ea_WZ,.#DTs_3C\AA=Q>&1/%X4gkF@k*i9P/.]IX0``?7kqWj/*b-e&>g@<Ss-S%nM9'B>5s+f`$q#cYjGW3Ne2t?O]mVgnNbMsr>//jM1Q@7uG&9p&"66??r0*CU>'Mj,-i-t<Sp[J@ST8t#N]*g85qUZ6;H&+fiO=3lP_$im:M.$_qEQc-KWH[NYCFj>&9Iq).bjOY5]T9[O\jsNb[Ac&XDT.9QF_*Q\,n&"AR:?$BlQ/XPX7gQY$MTgT96suX=QI*cAsj:;jSZZaaIM&TH+U2?:?pqd_hG+ros^H-Rmecs4(Z!YGoUG9oh!oADsfF[%<b'NXOIR*:TlCM1/s."Ua&s'!'i0h(_F'[X;.3Lp924Z]rt(U4InsJB9[T1A80qJJ#'IKK4kh:.HFpOrSBTMjc/=Q=XS;D9R`_YY8ce`2f*Z5WbpWa]-adnNP#S1>mYV'TNkY7:Zc?@PX:Q?DNR>dg\-`/EZsUr!coqi](duBRdibWI0KoT%_]d?m6RI^1s:b4PR-MGpT;ZMcNUo)dC(grZ]NULPWf1IqD>"#pQs=#b2Dgn/@5uA\uAK!&\F-1WR89'Dj:)28R!l>AO?&?X`h(:DFMhVD7pMU`/0(-T9am$dI]\u+;4<I3YpP,rG3e@62Q#-!*RAo9SGa[Y,XtQ+b2lt'M5tNQH@;U(&5Fi!46Jc2o=t.7'qa6EgGBtlDNJL1E/R'm,7hRR([!n,;!%uo*JNCD7WoGNYq6cQ5BIb(#%%)<EoF/O]F*1P&>K6DLd=ul&o>YJ\lRSf#mBo>Ohm,6eceW&W/mNr7c8mdV8P&9f!1n!&/[2^qKII!/;N0mf\/lN4F;YV&'nW:I+]bP1^0LYEpqBd&_Y!JYDVogD;IV$@8UUK9keUbI:nmM$t?KfQU!3X=6fd#gs0FCI.6IpOc`,%'FL-+I@L\F6;3_5.W.Le"<!l\Yq[AX]3H`Z8I)KC21,>.^YQYIZ!0+4"][*&+:[;[:m`.6l.I#]p+8d(k0iAS4DaEVs1OVmBQ>&r4r3Q1tsll/!^22GcMR=CCDVb8V5XrB*TmK68U/Kc!Hoh^CE4V42"&%hhY0^mor^VZpJa8hS)>Ohce,q3jh%[\Hpcg\/PA%Y]W2m?V+q4$55.paqAH)BufouMd[5mT#"n01lI"\QXOmWcIZ?u:U#(FD)%#(@Cl0Sfa4YUU>1WgBsbPd9eK`+FLG1;(hq:M`nRYLn$u\VB$)D*3`p[2[TbEq(p8QqkLEV^_SF&8aT=*?/o\o`H.N!Bn_hN:hn+B3jaaUG\KE*A8D^#Dn[_+L:J)\6k>m<<!;Wf*+=JE3Qi]IBCYiKHb57KYJM`\@=u6Mbei!\R8qobF!nFe\A`S?n8G6-XCM,Ctd]fu.=D'/Ji;/S)a+d]-%Gpt</NY$Zi_h>CdOQ>mTK9Xp)@5eZ0qdEk1'A#*1O`?_El#:n>40!NClKH>](dA0q^a5~>endstream
|
||||
endobj
|
||||
97 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 3464
|
||||
>>
|
||||
stream
|
||||
GauHN>C5,7&UjDWQq)@9;7oJp\kh2<RWc$,:#'Y/g-.bI,U"?<"s>Lu^V4?rMe"3@U9;r*M^&SID/eX])2n[gnMbDOdt6e]3uYjD-j]'T8O;^^FS@T)]"@fdjX!b8bp)^j8J4K+r#Z-,l'srM\ah)S]dd_/GY(TVb_os\BJT7o@+md+o^Sq#HA8m`p:M?sM^S&M&'9`^q:&3]Me:F_(6D[=LS.jX4*3IPYc`S\hb.I%.<>:X,Q4c'MVaZ,>T$Bh?./UTP^fF>:NZ=5:N/9#%hnAd$0DK]rJ!I!So,=`hJ<P*nEtpPQ!lK[Yq%JtqcN<N<VdF"\Du0ai>jhLgZ<PhHLs+Z_U;)FX+eJYA\OoMnrla_R?9C@=A!(6p1Qa!/h'JkhP=N,4Q8Tdc.f)>j,#urGY'3-`0$*d:Ai%g65g"`4;^Z5+0KuM@(UB%e@o.$3#m$)@n^kr4)=Rm@__p\,6t.5\T+fupID\.bTb'Jj^rig;e5u`UGGAZkU"=SBDd1k4$"6a@NGsL\23^68`9e9'XU'r`C,/>'DkE^prgbQHp::O1V2?32QL*OW*W,3.U*i@$9Ig<5OY5s8brVeY-Y6!\tPupf:lM5K=h,%I/hDBI!l7O/a-mTba3X&l@^A*E7VDdoZ4[`CD'c^knj.lH_9X6^"9]!)>Wg3T5Wqi:,gVVO=2ufC$6XWDu,`)f6SZ7]WWj=&rbrH1(og/<N]6pEm$c'[4M,-L7[s%fijXk=r<sUnR&-7%0%lS*A9ibCU8XhVV5R(kTb*fA%&.3hd[ZqPHIJ10rh1O#!lW:O7$uFpEFOo,2Z0s-u4+29$(%qZ;_0@oTnQj9H2$13:U2/_!8/Bcu$DG\[3QI=@nd9<#2d@^#uU>c7af]+Mge9nG>tJ9r>C2CF\&<H;0g+`Br5U(8'7E(f[7Y\Kk-M68U[N\\mLLI!i*arc*=%'o=/>jN=V;,M#R4aq98YO*qPb>a67rh9[*@9/0VcWU]N`Y*I1HL%/P9D_UY,$PP(%%7E3HbSnBO3lh<\pHXRtpI]=AW6tlc:q<TMq`,Pn1/e1W!k3!RffY%WE#rBK4RTHNRT]rj65JoPU:!rPm,e\k*!=:$(A)GD$)b*;!JK\WPQDB_[uYU;NFE>oCN=*N<#O7"Z:q*CFCH\tX(HV,[Uk#sJ`=IIBeEB$XB&=jK37L>Uk+,V8*U+@=Vk80&<10QnC2>d`H(FF9Jh`W()$.k!b-qAgT&-15KH0V)/M//*IMSkjZ&HI;sS1#)Rcc6bh9W4#9F(ED45d!&iGl27_k4dJS[Dd](p>LJY,4*AItJ]>(DPtr/oR*>KW2lclo`8\s?#2HWr@$+:JRd>:GhqN6Yb//mrT6<(b`EqW6'1isu?C('27>Jc1rnhZ;HJL!k=i+gpp#nV>jXZo#>o/*ofnVb,iF$i7<l%?`N"e59-=]A.sgZZ..(_$i<cLg\9mp)6ha.ZOeBAH3-oKTd/dlQ'(7>+r;<<p[\\;`9?.+Zl&l4,+S5[aF?qMt_`2I,>r"h.@O-M<Ip>eAB_VCrDK(b?e`oaF+t;2bY&4cOkLr\Q$o?N*pf]73&SYD,Y6:8>XsP/N/dbP]Uen0Oi!nN^4"g"Y_@"qkUs9fZLo?.IihRl6oOQJ[`54&IFg]&am'43-)Mn+op-Q'$L?TX&oDhNt-)KQuA[<YB8&qSN?#rmI9DqEhOSp#T.#]f:l_3R^lK\TY(h9%28eL4!7qp#)9*6#j=e@RR0)>1%KAfKNZ5?.=`[&_AG]4/7a?RL#9/6_O)dWQH%@f_CuUIbRCS)LDYq(g9L]5.u>sI\Ld(iB#9:jja`1IB^.3S^t,g2m=OBf;QW]g/3Higr'?SCkK<X2i<C^j*?m9@lSp&;^a.Fm4^BrLLmTN=,#gUWf?4b0kQW#F'F1]U:91a!C$5\2Ml=Bk<L;MaRR<Op]B?tm6l3__a-oTLLb7_7jj'F''^Q7#iFn<K[:2ja262*!c<%E0e#lGDjT;Xf>GFos"dR7[af0Q,$8h?q28^NQbf*9NSh6/oDTM7g'`QN'[qOTPo9lI"U[5uFBBb%b0GEmJX:K]]K@PrI:0D<#3ABF/d;q"/SEjb,p@+)0Mj<F2EV`ttj4G74XVPM>l;:JgR92/dP!.`)lkZ7$Bq-S7Fi;bns#%>MP80+tSlbkraPJam'@m_V$^k20N!55>+)jNCdtY%N@'\(::=-8%V+3S1I`3a#OeA3WYq+AC3A]]OWZ4BJGmq`dp,r&tF]i[5Lu!3kZRYZ8rq99cEkYC#3PuJQ^!OUrr,Tp/_Hc8AOlT[grgkBd9.e:l8Y<X^]hm3tQXe<nLKh)K9Bl'MSsMEV`V3;Q]0E^>>X`.<Jm'QoJN&AM3WtODUSV99h5o1_Z3*Xn9'$<rNKmj4kJ-!5V^jEWBDuF:?@k<d;t=PqM=A`SO/OXYo_7`AJ)fBLEnR40Ri`RH7pl+R?6!931/&ZU#>KI,)kop.Dr?DE_4M`)i1Y&pV[#TZ_pArA#7YqA)hK?l2t4`3&0EHj+,0uLEmT>l^0rqWIuhqQ>o[aVq`:+i):Uc;p[QTW;3WaA\[D=EDuK&o"XWLb-sp\HkPOPe+"I%R*kbS_]al^N]\qR+#I%"SGJ^m,S]U@umniW,Tn9L!9)R308#rE;UI;X;`Mkr*C9'Fr[GW%?Bi7n-ji$_AH/d*)o"*gXdM>-G?1I-_[ab$k9gDBW/`D<9Oa>dSalm@K8ls45gA_+Ds)rVJ"/@umA\OicQgh*4OGTq04-l_6G"9[W9,?Qci>mdi>mel6Hd1fX:D(nHr.IJIjSN-a\Ds9Y1N28s"imsn4-VOn\*bsF"eaD8Q3.o[#3h:NN.TD">B#=hCF&bpQ\2j$Fg<!L'f^h/%r,(WD,6U4g:QbH0[2<HkHF6eht2I?Nn^`pbq""Qi9nbG?fWOU^Rhfj^+SM7IHtpiY$i1ARS-L2Dk,Yfp@;I,AN#9k(+MZq5nZ4-jcje80?X@_1sLn6o1h+jA7;4nYj$%LATlM;ESN:ppFu(jpk>s(V1F#p.3DIO3`i]0--.XLJZg5H>"DM7oal=o%7%51A'WOo:8'mXjg-K"EQZ,b-d<?#q6q9VPF70A04^qa:+j%EYUBL-*]-*%7L@VISQf9c01R%2rC>:>Xk"^"#uG+B2bm$#\'e5VXJDXI`'!<kB!@jT!d1sCBE(WspdX!IK3nsp?XBD62\D"HP\VmW8tYN@99gaVjDS3*bB774R8#:L18gu`pHmu#YAqO\4h/hZ)Y)iojJT)FbeILY(rj9(hB(9Wg=p.^bNe.Y-7Y@HZRGoDKFM#+lK]'-GB[:?A$gM.mHT-\-hr/\?l8c-B)+lJRT9D\=5J)/'jQ?-o$++0r/43"8St.D?kRYq</?K+2O,ih$Aj&/bmulJElpS0kkid'0_U4eo:bo4:/+mF4=P$\_[LRqVQ<c-4#lup.RL^!T]tYR;ErJ&=b!Ms$_oJ%hG0N;7\Zs`!^DJF0E~>endstream
|
||||
endobj
|
||||
98 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1325
|
||||
>>
|
||||
stream
|
||||
Gatm:mr.2F&H0m]0d!r)84XkSoGcCo>GS_"+FC0>l"%>]!H/W5CR`c/?[q*tdaHPq<%#VFM"1*.S!c5/To1S=rldub5>q!bptuC=cGAt]I7Q"78R"D`m]bmK#!Ho1_dUn"nN66X.#-u3b7.n9&eOp-YReEug[@K9@FTGuW-Kq%enUi_(ld0f"75a!IbYCJmJCnQ*J3#b7/_ZIC1.qR%D<3m&A#r`K_>jR=peHKA-Urd*J^mRCn[fd;SZ!m`G^k;JFn&t_+PIM'0O/8h%t'\iYcsL)u-\mMbo]elGK(#)`?-WFn@<6:'gj7WeU$B46Y'BFO\n1LYWdXNsZ+8C?ofFh8RBX_q^E3h+`n2qgAe<^Yp8*m[8BSJf:LO0XI)1cI5JCo8IrTWs\Z)11<Ee<l'r6i'r?($XaKF_)#t:\LOQY>#e2Oe&$Z?Rbb(q:W]?85G:D\*M=S]6e-dVV\?KRUNml2%/??*FXl/e!T"/'%AT7&e7B3`iW.0A%H8uU`#Al+S)Xa(1%t6^)7=*tV(r8,dP1XISsZ*F,W.\0V9ddYG?N\&mJ<_k]u]+.WJC2Dbco*0I5jodckX_4b>4dCiI)"kjP./$EoEut_6dG/c(E`2g<T\B/opZ):cu_`C(GB(k#.IkQTXO'HBG;]VChI>+_nm54]\7UO%4$38l!TnMhNKIP$B'8'W_!6.]0m4UXO<?rD"[ua`Nc--eG[,&$\Qje''T@VTJ&g.QMD@MCM55bt4='`9P.fYllPVR3Yt]bo.<?%3K%`**"/YbZR5`D@gs%_[b8VOUNgdL07B\i;^*QcilVs)Xs(egXZbhK.UdaF[o!/FbJ&/RV^)FVio^sglEF"N+4qKNpbcDn:09.cesR?Epl.Q^0mtZVTkp(o>R^I:"pEfl^&V@MT6C/V08MB,pq-pR]gl7;p#mK8dA2#m&lKkZa)=Db^rFj)?F])I4/A<\`*),"a.c(g255E=^TNL_]u9:H,(;0-bP_'^QB%>f*[FYV<pXX]#EofP0TJ),%GQhEG8+C:HWR3c#RsmB!V%9\pe24pB.U6mLgNkeMZ20p9Y9ha_e_0%,ai1jYG<ABR4tZ:6X0!lgulhfW7,0Y#BB?FaSANU2Lk*an6o*Q]p`VOs\X.Eg9n'`>rVB29'![Fi@r93D3,f1UP0>3F%P=abK`WCik:Tp+P7b&2,l\HM;0a$Tpj5,GUauVjmdIl4_H^i+;9nrVsF0V+[rl:VEdsA(^:9eE@Z7U1*-,fsM7oRaLA-NFO(i[8@d@mk@Ym!/:"Va163j*<CRYUT'nt:pIed!K7KGG-nusD%#$ccYHCOocMY@.4"~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 99
|
||||
0000000000 65535 f
|
||||
0000000061 00000 n
|
||||
0000000132 00000 n
|
||||
0000000239 00000 n
|
||||
0000000351 00000 n
|
||||
0000000546 00000 n
|
||||
0000000741 00000 n
|
||||
0000000936 00000 n
|
||||
0000001055 00000 n
|
||||
0000001170 00000 n
|
||||
0000001275 00000 n
|
||||
0000001471 00000 n
|
||||
0000001667 00000 n
|
||||
0000001863 00000 n
|
||||
0000002059 00000 n
|
||||
0000002255 00000 n
|
||||
0000002451 00000 n
|
||||
0000002647 00000 n
|
||||
0000002843 00000 n
|
||||
0000003039 00000 n
|
||||
0000003235 00000 n
|
||||
0000003431 00000 n
|
||||
0000003627 00000 n
|
||||
0000003823 00000 n
|
||||
0000004019 00000 n
|
||||
0000004215 00000 n
|
||||
0000004411 00000 n
|
||||
0000004607 00000 n
|
||||
0000004694 00000 n
|
||||
0000004988 00000 n
|
||||
0000005063 00000 n
|
||||
0000005211 00000 n
|
||||
0000005307 00000 n
|
||||
0000005421 00000 n
|
||||
0000005520 00000 n
|
||||
0000005705 00000 n
|
||||
0000005810 00000 n
|
||||
0000005959 00000 n
|
||||
0000006096 00000 n
|
||||
0000006303 00000 n
|
||||
0000006403 00000 n
|
||||
0000006518 00000 n
|
||||
0000006637 00000 n
|
||||
0000006809 00000 n
|
||||
0000006916 00000 n
|
||||
0000007079 00000 n
|
||||
0000007184 00000 n
|
||||
0000007290 00000 n
|
||||
0000007401 00000 n
|
||||
0000007531 00000 n
|
||||
0000007645 00000 n
|
||||
0000007811 00000 n
|
||||
0000007920 00000 n
|
||||
0000008049 00000 n
|
||||
0000008231 00000 n
|
||||
0000008329 00000 n
|
||||
0000008445 00000 n
|
||||
0000008547 00000 n
|
||||
0000008735 00000 n
|
||||
0000008857 00000 n
|
||||
0000008968 00000 n
|
||||
0000009081 00000 n
|
||||
0000009181 00000 n
|
||||
0000009341 00000 n
|
||||
0000009474 00000 n
|
||||
0000009631 00000 n
|
||||
0000009777 00000 n
|
||||
0000009953 00000 n
|
||||
0000010127 00000 n
|
||||
0000010273 00000 n
|
||||
0000010440 00000 n
|
||||
0000010547 00000 n
|
||||
0000010666 00000 n
|
||||
0000010771 00000 n
|
||||
0000010911 00000 n
|
||||
0000011049 00000 n
|
||||
0000011187 00000 n
|
||||
0000011308 00000 n
|
||||
0000011402 00000 n
|
||||
0000011597 00000 n
|
||||
0000012193 00000 n
|
||||
0000013794 00000 n
|
||||
0000015460 00000 n
|
||||
0000018021 00000 n
|
||||
0000021564 00000 n
|
||||
0000024740 00000 n
|
||||
0000028508 00000 n
|
||||
0000031490 00000 n
|
||||
0000034847 00000 n
|
||||
0000038143 00000 n
|
||||
0000041246 00000 n
|
||||
0000044473 00000 n
|
||||
0000047631 00000 n
|
||||
0000050735 00000 n
|
||||
0000053879 00000 n
|
||||
0000056898 00000 n
|
||||
0000060397 00000 n
|
||||
0000062140 00000 n
|
||||
0000065696 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<497bf44bd6437367d13d198fa3df9264><497bf44bd6437367d13d198fa3df9264>]
|
||||
% ReportLab generated PDF document -- digest (opensource)
|
||||
|
||||
/Info 28 0 R
|
||||
/Root 27 0 R
|
||||
/Size 99
|
||||
>>
|
||||
startxref
|
||||
67113
|
||||
%%EOF
|
||||
@@ -16,7 +16,10 @@
|
||||
- [[Voice Agent Platform Research 2026]]: Compare open-gpt-live (WS+VAD) + StreamCore (Go+WebRTC+plugins+RAG+ESP32) for Jarvis v3 / Hermes voice; fork StreamCore recommended.
|
||||
- [[Jarvis v2 - Always Listening Voice Assistant]]: Current iMac local wakeword+speakerID+faceID pipeline; to be extended with OGL VAD cal + StreamCore chassis.
|
||||
- [[Family Voice Context and Speaker Identification 2026]]: Local ESP32-triggered audio context, Adolfo voice verification, and later family speaker identification.
|
||||
- [[Kindle Office Dashboard 2026]]: Permanent office e-ink Kindle for family-task dashboards, grayscale images, and SSH/eips experiments.
|
||||
- **[[Areas]]:** Ongoing responsibilities and household maintenance.
|
||||
- [[EMI Things to Do]]: Ongoing EMI media and ministry tasks.
|
||||
- [[Services Inventory]]: Human-facing catalog of family, brain, infrastructure, and EMI services; canonical technical detail is in [[Platform]].
|
||||
- **[[Resources]]:** Interests, reference material, and research.
|
||||
- [[Family Timeline]]: Chronological milestones.
|
||||
- [[Clawbot Carryover Ideas]]: old OpenClaw ideas worth revisiting.
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
# Factory Project Operations Context
|
||||
|
||||
## Purpose and scope
|
||||
|
||||
This file is the authoritative operating context for AI agents that manage **our projects**. It does not replace repository-level `AGENTS.md`, source control, service documentation, or Paseo agent/workspace records.
|
||||
|
||||
An **our project** is a cross-server product or system. Its definition file lives at `factory/<project-key>.md`. A native Paseo project is a local execution unit: one repository or directory on one daemon host.
|
||||
|
||||
```text
|
||||
Our project → server-local Paseo project → workspace → agent → active session
|
||||
```
|
||||
|
||||
## Start every task with the project definition
|
||||
|
||||
1. Identify the project key and read `factory/<project-key>.md`.
|
||||
2. Identify affected servers, repositories, services, and target devices.
|
||||
3. Read the repository's nearest `AGENTS.md` before inspecting or changing source.
|
||||
4. Check the target host's actual Paseo/provider/workspace state; do not infer it from this brain record.
|
||||
5. Create a concise task record: goal, acceptance criteria, allowed paths/commands, required checks, forbidden effects, evidence, and approval gate.
|
||||
|
||||
## Operating policy
|
||||
|
||||
- **Bounded goal loops.** After discovery and an approved plan, the factory may iterate isolated implementation → deterministic verification → independent review → targeted repair until the named acceptance criteria pass. Every loop must have an iteration cap, wall-clock/resource cap, and clear stop conditions. It must stop and report at approval boundaries or when blocked; it may never self-approve merge, push, deployment, restart, publishing, credentials, migrations, or production configuration.
|
||||
- **Exclusive factory ownership.** For every factory-managed project task, the `factory` profile alone performs repository/server inspection, Paseo dispatch/monitoring, edits, commits, pushes, deployments, and verification. The default/personal profile is the human-facing control surface only: it relays instructions and reports factory evidence but never executes project work directly.
|
||||
- **Coordinator dispatch-and-follow-through.** For multi-step work, do not call the factory profile as a one-shot `-z` process. Keep the named coordinator session interactive/resumable; record every dispatched Paseo agent/workspace ID, monitor its state, then resume that same coordinator session with the observed result. A pinned session is historical continuity only, not a background supervisor. Use an explicit bounded monitor/continuation when work must outlive the coordinator turn.
|
||||
- **Paseo session permission mode.** Every new coding or release Paseo agent must be started explicitly in the provider's `auto-review` mode; for Codex, pass `--mode auto-review`. Do not rely on defaults, fall back to full-access/unreviewed modes, or continue if the requested mode is unavailable.
|
||||
- **One durable coordinator session per feature or incident.** Resume the same factory-profile session for all follow-ups to a project feature, release, reconciliation, or incident. Do not create a new one-shot coordinator session for every request. Name it `<project-key>: <feature-or-incident>` and record its ID in the project definition when continuity matters.
|
||||
- Our project files are the cross-server project-manager record; Paseo Desktop/Web are execution views, not the project authority.
|
||||
- One source-changing task uses one isolated worktree workspace. Do not have independent agents edit a shared checkout.
|
||||
- Planner and reviewer are read-only. Implementers may edit only their assigned worktree.
|
||||
- Verifiers report exact command outcomes; they do not silently repair source.
|
||||
- Merge, deploy, restart, publish, external sends, credentials, production configuration, and migrations require explicit human approval.
|
||||
- A Paseo status change may create a notification or review task; it never authorizes a production action.
|
||||
- Never place credentials, pairing offers, raw private audio, or user data in these project files.
|
||||
|
||||
## Durable evidence to record
|
||||
|
||||
Record stable decision and handoff data only: repository/host mapping, workspace/agent IDs when needed for continuation, verification outcomes, approval decisions, rollout/rollback notes, and open blockers. Keep raw logs and transient agent conversation out of the brain.
|
||||
|
||||
## Project-definition standard
|
||||
|
||||
Each `factory/<project-key>.md` includes purpose, server/repository/service mapping, factory readiness, persona roles, special constraints, current open work, and human approval boundaries.
|
||||
|
||||
## Updating this directory
|
||||
|
||||
- Create a new definition before treating a system as a factory-managed project.
|
||||
- Update an existing definition when its server/repository/service mapping or safety boundary changes.
|
||||
- Do not claim a remote host is enrolled or a deployment works without current host evidence.
|
||||
- Keep definitions concise and link to detailed project notes instead of duplicating them.
|
||||
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 460" role="img" aria-labelledby="title desc">
|
||||
<title id="title">The covenant parenting pathway</title><desc id="desc">A gentle visual pathway from rooted love through daily formation to a generational legacy.</desc>
|
||||
<defs><linearGradient id="bg" x1="0" x2="1"><stop stop-color="#eef3ef"/><stop offset="1" stop-color="#f7f0e4"/></linearGradient></defs>
|
||||
<rect width="1200" height="460" rx="28" fill="url(#bg)"/>
|
||||
<path d="M88 337 C235 311 290 161 424 210 S600 380 702 256 S875 126 1110 145" fill="none" stroke="#b39057" stroke-width="8" stroke-linecap="round"/>
|
||||
<g font-family="Georgia, serif" fill="#263d4a" text-anchor="middle"><text x="600" y="72" font-size="38" font-weight="bold">The Covenant Parenting Pathway</text><text x="600" y="108" font-size="21" fill="#6b5d4d">A life of faithful presence, practiced one day at a time</text></g>
|
||||
<g font-family="Arial, sans-serif" text-anchor="middle"><g><circle cx="140" cy="327" r="45" fill="#486372"/><text x="140" y="335" fill="white" font-size="21" font-weight="bold">ROOTED</text><text x="140" y="397" fill="#263d4a" font-size="22">Love & refuge</text></g><g><circle cx="410" cy="214" r="45" fill="#6b8b7a"/><text x="410" y="222" fill="white" font-size="21" font-weight="bold">PRESENT</text><text x="410" y="286" fill="#263d4a" font-size="22">Modeling</text></g><g><circle cx="700" cy="258" r="45" fill="#b39057"/><text x="700" y="266" fill="white" font-size="21" font-weight="bold">FORMED</text><text x="700" y="330" fill="#263d4a" font-size="22">Daily practice</text></g><g><circle cx="1060" cy="148" r="45" fill="#a36b53"/><text x="1060" y="156" fill="white" font-size="21" font-weight="bold">GROWING</text><text x="1060" y="220" fill="#263d4a" font-size="22">Generational hope</text></g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 430" role="img" aria-labelledby="title desc">
|
||||
<title id="title">A family rhythm of repair</title><desc id="desc">Four connected steps: pause, listen, repair, and return to peace.</desc>
|
||||
<rect width="1200" height="430" rx="28" fill="#f8f4ec"/><text x="600" y="67" text-anchor="middle" font-family="Georgia,serif" font-size="38" font-weight="bold" fill="#263d4a">A Family Rhythm of Repair</text><text x="600" y="102" text-anchor="middle" font-family="Georgia,serif" font-size="21" fill="#6b5d4d">Humility makes room for safety, truth, and restoration</text>
|
||||
<g fill="none" stroke="#b39057" stroke-width="7" stroke-linecap="round"><path d="M250 214 H390"/><path d="M530 214 H670"/><path d="M810 214 H950"/></g>
|
||||
<g font-family="Arial,sans-serif" text-anchor="middle"><g><circle cx="180" cy="214" r="68" fill="#486372"/><text x="180" y="207" font-size="24" font-weight="bold" fill="white">PAUSE</text><text x="180" y="236" font-size="16" fill="white">make room</text><text x="180" y="324" font-size="21" fill="#263d4a">Choose calm</text></g><g><circle cx="460" cy="214" r="68" fill="#6b8b7a"/><text x="460" y="207" font-size="24" font-weight="bold" fill="white">LISTEN</text><text x="460" y="236" font-size="16" fill="white">with care</text><text x="460" y="324" font-size="21" fill="#263d4a">Hear the heart</text></g><g><circle cx="740" cy="214" r="68" fill="#b39057"/><text x="740" y="207" font-size="24" font-weight="bold" fill="white">REPAIR</text><text x="740" y="236" font-size="16" fill="white">speak truth</text><text x="740" y="324" font-size="21" fill="#263d4a">Own what happened</text></g><g><circle cx="1020" cy="214" r="68" fill="#a36b53"/><text x="1020" y="207" font-size="24" font-weight="bold" fill="white">RETURN</text><text x="1020" y="236" font-size="16" fill="white">together</text><text x="1020" y="324" font-size="21" fill="#263d4a">Restore peace</text></g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,29 @@
|
||||
# Grade 3 Learning Studio Demo
|
||||
|
||||
## Start it tomorrow
|
||||
|
||||
```bash
|
||||
cd ~/brain/projects/ckmath-interactive-pilot
|
||||
python3 server.py --port 8899
|
||||
```
|
||||
|
||||
Open `http://127.0.0.1:8899` on the Mac mini. This is intentionally loopback-only: it is a private demo, not a LAN service.
|
||||
|
||||
## A 3-minute walkthrough for Alicia
|
||||
|
||||
1. **Start at the landing page.** Explain that the library is derived from the downloaded Grade 3 curriculum, not a separate subscription or AI-generated scope-and-sequence.
|
||||
2. **Use a subject filter.** Choose **Math** to show the nine Grade 3 math entries, then point out the “Open Teacher Guide” and “Open Student Reader” links.
|
||||
3. **Open CKMath Unit 1’s Teacher Guide.** It opens the original 285-page guide from inside the verified ZIP—no duplicate PDF copy is created. Explain that this is where the teacher’s learning goals, timing, prompts, materials, expected responses, and support notes live.
|
||||
4. **Return to the site and open the Interactive lesson.** Demonstrate building seven pairs of shoes, writing `7 × 2 = 14`, and giving a one-sentence explanation.
|
||||
5. **Frame the next decision.** The library and teacher-plan access can cover the whole Grade 3 collection now; we should next choose which curriculum areas deserve human-reviewed interactive sessions first.
|
||||
|
||||
## Current scope
|
||||
|
||||
- 51 downloaded Grade 3 units indexed.
|
||||
- 37 teacher-guide PDFs and 25 student-resource PDFs available on demand from their original archives.
|
||||
- One completed interactive math lesson: Unit 1, equal groups.
|
||||
- No account, analytics, AI, or learner-record storage.
|
||||
|
||||
## Not yet claimed
|
||||
|
||||
This is not yet a complete digitization of every Grade 3 lesson. It is a full source library plus a working interactive pattern. Every additional interactive lesson should be selected, authored/reviewed against its teacher guide, and checked for its individual license notice.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Grade 3 Learning Studio
|
||||
|
||||
A private, browser-only Grade 3 curriculum showcase built from the verified local Core Knowledge collection. It catalogs every downloaded Grade 3 archive, exposes original teacher-guide/student PDFs without duplicating them, and includes a 10-minute interactive equal-groups math session.
|
||||
|
||||
## Run locally
|
||||
|
||||
```bash
|
||||
cd ~/brain/projects/ckmath-interactive-pilot
|
||||
python3 server.py --port 8899
|
||||
```
|
||||
|
||||
Open `http://127.0.0.1:8899`. The server is deliberately loopback-only and does not expose the curriculum on the home network.
|
||||
|
||||
See `DEMO.md` for Alicia’s short walkthrough.
|
||||
|
||||
## Privacy
|
||||
|
||||
This showcase uses no login, AI service, analytics, or learner-data storage. The original curriculum assets remain inside `/Users/adolforeyna/Downloads/CoreKnowledge_Grades_1-5_EN_ES`; the server streams a selected original PDF only after a locally generated, catalog-known material ID is requested.
|
||||
|
||||
## Source and license
|
||||
|
||||
The catalog is derived from the verified downloaded Core Knowledge Grade 3 archive set. The interactive session is adapted from *CKMath Grade 3, Unit 1: Introducing Multiplication*, Core Knowledge Foundation, Lesson 9 (“Equal Group Situations”), downloaded from [Core Knowledge](https://www.coreknowledge.org/download-free-curriculum/).
|
||||
|
||||
The sampled math source PDF carries a Creative Commons **Attribution–NonCommercial–ShareAlike 4.0 International** notice. This pilot is private and non-commercial. Any future sharing must retain attribution, the license notice, and the same ShareAlike terms. Confirm the license embedded in every additional unit before adapting it.
|
||||
@@ -0,0 +1,81 @@
|
||||
import { isCorrectTotal, isCorrectEquation, hasReasoningEvidence } from './src/session.mjs';
|
||||
|
||||
const groups = document.querySelector('#groups');
|
||||
const addPair = document.querySelector('#add-pair');
|
||||
const buildFeedback = document.querySelector('#build-feedback');
|
||||
const totalRow = document.querySelector('#total-row');
|
||||
const total = document.querySelector('#total');
|
||||
const totalFeedback = document.querySelector('#total-feedback');
|
||||
const activity2 = document.querySelector('#activity-2');
|
||||
const activity3 = document.querySelector('#activity-3');
|
||||
const equation = document.querySelector('#equation');
|
||||
const equationFeedback = document.querySelector('#equation-feedback');
|
||||
const reasoning = document.querySelector('#reasoning');
|
||||
const reasoningFeedback = document.querySelector('#reasoning-feedback');
|
||||
|
||||
let pairsAdded = 0;
|
||||
|
||||
function feedback(element, message, kind = '') {
|
||||
element.textContent = message;
|
||||
element.className = `feedback ${kind}`;
|
||||
}
|
||||
|
||||
function renderGroups() {
|
||||
groups.innerHTML = '';
|
||||
for (let i = 1; i <= 7; i += 1) {
|
||||
const group = document.createElement('div');
|
||||
group.className = 'group';
|
||||
group.innerHTML = `<span>Person ${i}</span><div class="shoes">${i <= pairsAdded ? '👟 👟' : '· ·'}</div>`;
|
||||
groups.append(group);
|
||||
}
|
||||
}
|
||||
|
||||
function reveal(activity, progressId) {
|
||||
activity.hidden = false;
|
||||
document.querySelector(progressId).classList.add('active');
|
||||
activity.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
||||
}
|
||||
|
||||
renderGroups();
|
||||
|
||||
addPair.addEventListener('click', () => {
|
||||
if (pairsAdded < 7) pairsAdded += 1;
|
||||
renderGroups();
|
||||
if (pairsAdded === 7) {
|
||||
addPair.disabled = true;
|
||||
addPair.textContent = 'All 7 pairs are built';
|
||||
feedback(buildFeedback, 'Nice work. You built 7 equal groups of 2 shoes.', 'good');
|
||||
totalRow.hidden = false;
|
||||
total.focus();
|
||||
} else {
|
||||
feedback(buildFeedback, `${pairsAdded} of 7 pairs built. Keep going.`);
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelector('#check-total').addEventListener('click', () => {
|
||||
if (isCorrectTotal(total.value)) {
|
||||
feedback(totalFeedback, 'Yes—7 groups of 2 make 14 shoes.', 'good');
|
||||
reveal(activity2, '#progress-2');
|
||||
equation.focus();
|
||||
} else {
|
||||
feedback(totalFeedback, 'Try counting by twos: 2, 4, 6…', 'bad');
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelector('#check-equation').addEventListener('click', () => {
|
||||
if (isCorrectEquation(equation.value)) {
|
||||
feedback(equationFeedback, 'Correct. Multiplication is a quick way to name equal groups.', 'good');
|
||||
reveal(activity3, '#progress-3');
|
||||
reasoning.focus();
|
||||
} else {
|
||||
feedback(equationFeedback, 'Use the numbers 7, 2, and 14. Either order for the factors works.', 'bad');
|
||||
}
|
||||
});
|
||||
|
||||
document.querySelector('#check-reasoning').addEventListener('click', () => {
|
||||
if (hasReasoningEvidence(reasoning.value)) {
|
||||
feedback(reasoningFeedback, 'Session complete! You used equal groups and multiplication to explain your answer.', 'good');
|
||||
} else {
|
||||
feedback(reasoningFeedback, 'Add how many groups there were, how many were in each group, and the total of 14.', 'bad');
|
||||
}
|
||||
});
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,31 @@
|
||||
# Grade 3 Curriculum Showcase Implementation Plan
|
||||
|
||||
> **For Hermes:** Build the showable local demo task-by-task with test-first checks.
|
||||
|
||||
**Goal:** Turn the downloaded Grade 3 Core Knowledge collection into a private local library that exposes every available unit, its student resources, and its teacher-guide PDFs, while keeping the interactive equal-groups session as a concrete lesson example for Alicia.
|
||||
|
||||
**Architecture:** A local Python server serves the existing static interactive session and a generated Grade 3 catalog. The catalog is derived directly from the verified download manifest and ZIP contents; teacher/student PDFs stay inside their original ZIP archives and are streamed only on demand, avoiding copied curriculum files. The interface uses browser-only state and no accounts or learner-data storage.
|
||||
|
||||
**Tech stack:** Python stdlib (`http.server`, `zipfile`, `json`), PyMuPDF for PDF page metadata, vanilla HTML/CSS/JavaScript, Node’s built-in test runner.
|
||||
|
||||
---
|
||||
|
||||
### Task 1: Derive a Grade 3 catalog from verified downloads
|
||||
- Add a failing test for grade filtering, subject classification, and teacher-guide detection.
|
||||
- Implement `src/catalog.mjs` pure helpers.
|
||||
- Implement `scripts/build_grade3_catalog.py` to inspect every Grade 3 archive from `download-manifest.json`, recording unit title, source archive, internal PDFs, material roles, and PDF page counts.
|
||||
- Generate `data/grade3_catalog.json`.
|
||||
|
||||
### Task 2: Stream original PDFs without copying curriculum
|
||||
- Add a failing server test for a manifest-known PDF route and an unknown/traversal-style route.
|
||||
- Implement `server.py` with static-file serving, a catalog endpoint, and a constrained ZIP-PDF route based only on IDs present in `data/grade3_catalog.json`.
|
||||
|
||||
### Task 3: Add a Grade 3 library and teacher-plan view
|
||||
- Add a failing browser-independent test for filtering by subject and selection state.
|
||||
- Extend the local UI with a Grade 3 library showing every catalogued unit, student resources, teacher guides, source/licensing notice, and one selected teacher-plan preview.
|
||||
- Link teacher guides to the constrained streaming route and retain the first interactive math session as an explicit classroom activity.
|
||||
|
||||
### Task 4: Verify the demo
|
||||
- Run catalog generation, all tests, server route checks, browser learner flow, and accessibility audit.
|
||||
- Demonstrate responsive library browsing and a teacher guide opening in the browser.
|
||||
- Stop the temporary local server after the demonstration; do not bind to the LAN or store learner data.
|
||||
@@ -0,0 +1,70 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="A private local Grade 3 Core Knowledge curriculum library and interactive lesson pilot.">
|
||||
<title>Grade 3 Learning Studio</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<header class="site-header">
|
||||
<a class="brand" href="#top" aria-label="Grade 3 Learning Studio home">Grade 3 <span>Learning Studio</span></a>
|
||||
<nav aria-label="Primary navigation"><a href="#library">Library</a><a href="#interactive-session">Interactive lesson</a></nav>
|
||||
</header>
|
||||
<main id="top">
|
||||
<section class="hero" aria-labelledby="hero-title">
|
||||
<div>
|
||||
<p class="eyebrow">Private family curriculum pilot</p>
|
||||
<h1 id="hero-title">A whole Grade 3 year—organized around real teaching.</h1>
|
||||
<p class="lede">Browse the downloaded Core Knowledge units, open their original teacher plans and student materials, then use interactive sessions for the moments where practice benefits from response and feedback.</p>
|
||||
<div class="hero-actions"><a class="button" href="#library">Explore Grade 3</a><a class="button quiet" href="#interactive-session">Try the math session</a></div>
|
||||
</div>
|
||||
<aside class="hero-note" aria-label="What this demo includes">
|
||||
<p class="note-label">Tonight’s working demo</p>
|
||||
<p><strong id="unit-count">…</strong> Grade 3 units indexed</p>
|
||||
<p><strong id="guide-count">…</strong> teacher-guide PDFs ready to open</p>
|
||||
<p><strong id="student-count">…</strong> student resources indexed</p>
|
||||
<hr>
|
||||
<p class="small">No account, AI, analytics, or learner records. The source files stay in the verified local curriculum archive.</p>
|
||||
</aside>
|
||||
</section>
|
||||
|
||||
<section class="teacher-bridge" aria-labelledby="teacher-bridge-title">
|
||||
<div><p class="eyebrow">Teacher-led by design</p><h2 id="teacher-bridge-title">The lesson plan stays in charge.</h2></div>
|
||||
<p>Each unit keeps its original teacher guide—learning goals, materials, talk moves, expected responses, and support for misunderstandings. Interactive activities are a layer on top, not a replacement for the teacher.</p>
|
||||
</section>
|
||||
|
||||
<section id="library" class="library-section" aria-labelledby="library-title">
|
||||
<div class="section-head"><div><p class="eyebrow">The downloaded collection</p><h2 id="library-title">Grade 3 curriculum library</h2></div><p id="library-status" class="small" aria-live="polite">Loading the verified local catalog…</p></div>
|
||||
<div id="subject-filters" class="filters" role="group" aria-label="Filter units by subject"></div>
|
||||
<div id="unit-grid" class="unit-grid"></div>
|
||||
</section>
|
||||
|
||||
<section id="interactive-session" class="interactive-wrap" aria-labelledby="interactive-title">
|
||||
<div class="section-head"><div><p class="eyebrow">Interactive lesson example</p><h2 id="interactive-title">Math · Unit 1 · Equal groups</h2></div><p class="small">Based on the Unit 1 teacher-plan activity: represent equal-group situations with concrete objects or drawings.</p></div>
|
||||
<div class="progress" role="group" aria-label="Session progress"><span class="active" id="progress-1"></span><span id="progress-2"></span><span id="progress-3"></span></div>
|
||||
<section class="session" id="activity-1" aria-labelledby="activity-1-title">
|
||||
<h3 id="activity-1-title">1. Build the situation</h3>
|
||||
<p class="prompt">There are <strong>7 people</strong> wearing shoes. Each person is wearing <strong>2 shoes</strong>. Build the equal groups.</p>
|
||||
<div class="groups" id="groups" role="group" aria-label="Seven groups of shoes"></div>
|
||||
<button id="add-pair" type="button">Add a pair of shoes</button>
|
||||
<p class="feedback" id="build-feedback" aria-live="polite">Add one pair for each person.</p>
|
||||
<div class="answer-row" id="total-row" hidden><label for="total">How many shoes altogether?</label><input id="total" inputmode="numeric" autocomplete="off" aria-describedby="total-help"><button id="check-total" type="button">Check total</button></div>
|
||||
<p class="tip" id="total-help">Count by twos or add 2 seven times.</p><p class="feedback" id="total-feedback" aria-live="polite"></p>
|
||||
</section>
|
||||
<section class="session" id="activity-2" aria-labelledby="activity-2-title" hidden>
|
||||
<h3 id="activity-2-title">2. Name it with multiplication</h3><p class="prompt">Write an equation for the groups you built. You can use <strong>×</strong> or <strong>x</strong>.</p>
|
||||
<div class="answer-row"><label for="equation">Equation</label><input id="equation" autocomplete="off" placeholder="7 × 2 = 14"><button id="check-equation" type="button">Check equation</button></div><p class="feedback" id="equation-feedback" aria-live="polite"></p><p class="tip">Both 7 × 2 = 14 and 2 × 7 = 14 describe the same total.</p>
|
||||
</section>
|
||||
<section class="session" id="activity-3" aria-labelledby="activity-3-title" hidden>
|
||||
<h3 id="activity-3-title">3. Show your thinking</h3><p class="prompt">How did the groups help you know there are 14 shoes?</p><label for="reasoning">Your explanation</label><textarea id="reasoning" placeholder="I saw 7 groups of 2. I added…"></textarea><div class="answer-row"><button id="check-reasoning" type="button">Finish session</button></div><p class="feedback" id="reasoning-feedback" aria-live="polite"></p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<p class="source">Curriculum source: Core Knowledge Foundation, downloaded from <a href="https://www.coreknowledge.org/download-free-curriculum/">Core Knowledge</a>. This private, non-commercial pilot links to the original local curriculum materials and retains each source unit’s embedded license and attribution notice. Confirm the embedded license before adapting or sharing any additional unit.</p>
|
||||
</main>
|
||||
<script type="module" src="app.mjs"></script>
|
||||
<script type="module" src="library-app.mjs"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
import { filterUnits, subjectsFor, teacherGuidesFor } from './src/library.mjs';
|
||||
|
||||
const filters = document.querySelector('#subject-filters');
|
||||
const grid = document.querySelector('#unit-grid');
|
||||
const status = document.querySelector('#library-status');
|
||||
let units = [];
|
||||
let selectedSubject = 'All';
|
||||
|
||||
function resourceLink(material) {
|
||||
return `<a class="resource-link" href="/api/pdf/${material.id}" target="_blank" rel="noopener">Open ${material.role}<span aria-hidden="true"> ↗</span></a>`;
|
||||
}
|
||||
|
||||
function renderFilters() {
|
||||
filters.innerHTML = subjectsFor(units).map((subject) => `<button class="filter ${subject === selectedSubject ? 'selected' : ''}" type="button" data-subject="${subject}">${subject}</button>`).join('');
|
||||
filters.querySelectorAll('button').forEach((button) => button.addEventListener('click', () => {
|
||||
selectedSubject = button.dataset.subject;
|
||||
renderFilters();
|
||||
renderUnits();
|
||||
}));
|
||||
}
|
||||
|
||||
function renderUnits() {
|
||||
const filtered = filterUnits(units, selectedSubject);
|
||||
status.textContent = `${filtered.length} ${selectedSubject === 'All' ? 'units' : selectedSubject + ' units'} shown`;
|
||||
grid.innerHTML = filtered.map((unit) => {
|
||||
const guides = teacherGuidesFor(unit);
|
||||
const student = unit.materials.filter((material) => material.role === 'Student Reader');
|
||||
const resources = [...guides, ...student].slice(0, 3).map(resourceLink).join('');
|
||||
return `<article class="unit-card"><p class="unit-subject">${unit.subject}</p><h3>${unit.title.replace(/^Grade 3\s*/, '')}</h3><p class="material-count">${guides.length ? `${guides.length} teacher plan${guides.length === 1 ? '' : 's'}` : 'Teacher plan not identified'} · ${student.length} student resource${student.length === 1 ? '' : 's'}</p>${resources ? `<div class="resource-links">${resources}</div>` : '<p class="small">Open the original archive source for supporting materials.</p>'}<a class="source-link" href="${unit.source_url}" target="_blank" rel="noopener">Core Knowledge source ↗</a></article>`;
|
||||
}).join('');
|
||||
}
|
||||
|
||||
async function loadLibrary() {
|
||||
try {
|
||||
const response = await fetch('/api/catalog', { cache: 'no-store' });
|
||||
if (!response.ok) throw new Error('catalog unavailable');
|
||||
const catalog = await response.json();
|
||||
units = catalog.units;
|
||||
document.querySelector('#unit-count').textContent = catalog.unit_count;
|
||||
document.querySelector('#guide-count').textContent = catalog.teacher_guide_count;
|
||||
document.querySelector('#student-count').textContent = catalog.student_material_count;
|
||||
renderFilters();
|
||||
renderUnits();
|
||||
} catch {
|
||||
status.textContent = 'The local catalog could not load. Start the private Grade 3 demo server.';
|
||||
}
|
||||
}
|
||||
|
||||
loadLibrary();
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "ckmath-interactive-pilot",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"test": "node --test"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build a local-only Grade 3 catalog from verified Core Knowledge archives."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import re
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
ROLE_ORDER = {'Student Reader': 0, 'Teacher Guide': 1, 'Reference': 2}
|
||||
|
||||
|
||||
def is_grade_three_source(item):
|
||||
title = str(item.get('title', ''))
|
||||
filename = str(item.get('filename', ''))
|
||||
return bool(re.search(r'\bGrade 3\b', title, re.I) or re.search(r'(?:^|[_-])G3(?:[_-]|$)', filename, re.I))
|
||||
|
||||
|
||||
def classify_unit(filename):
|
||||
if re.search(r'CKMath', filename, re.I):
|
||||
return 'Math'
|
||||
if re.search(r'CKSci', filename, re.I):
|
||||
return 'Science'
|
||||
if re.search(r'CKLA', filename, re.I):
|
||||
return 'Language Arts'
|
||||
if re.search(r'CKHG|CKIYS|LABB_CKHG', filename, re.I):
|
||||
return 'History & Geography'
|
||||
if re.search(r'CKMusic|CKVA', filename, re.I):
|
||||
return 'Arts'
|
||||
return 'Other'
|
||||
|
||||
|
||||
def role_for_pdf(filename):
|
||||
if re.search(r'(?:^|[_-])(TG|TeacherGuide|Teacher[_ -]?Guide)(?:[_-]|\.)', filename, re.I):
|
||||
return 'Teacher Guide'
|
||||
if re.search(r'(?:^|[_-])(SR|StudentReader|Student[_ -]?Reader|ActivityBook)(?:[_-]|\.)', filename, re.I):
|
||||
return 'Student Reader'
|
||||
return 'Reference'
|
||||
|
||||
|
||||
def material_id(archive_name, internal_path):
|
||||
raw = '%s\0%s' % (archive_name, internal_path)
|
||||
return hashlib.sha256(raw.encode('utf-8')).hexdigest()[:20]
|
||||
|
||||
|
||||
def pdf_page_count(archive_path, internal_path):
|
||||
try:
|
||||
import fitz
|
||||
with zipfile.ZipFile(archive_path) as archive:
|
||||
document = fitz.open(stream=archive.read(internal_path), filetype='pdf')
|
||||
count = document.page_count
|
||||
document.close()
|
||||
return count
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
|
||||
def inspect_archive(archive_path, include_page_counts=False):
|
||||
materials = []
|
||||
with zipfile.ZipFile(archive_path) as archive:
|
||||
for info in archive.infolist():
|
||||
internal_path = info.filename
|
||||
if internal_path.startswith('__MACOSX/') or not internal_path.lower().endswith('.pdf'):
|
||||
continue
|
||||
filename = Path(internal_path).name
|
||||
material = {
|
||||
'id': material_id(archive_path.name, internal_path),
|
||||
'filename': filename,
|
||||
'internal_path': internal_path,
|
||||
'role': role_for_pdf(filename),
|
||||
}
|
||||
if include_page_counts:
|
||||
material['pages'] = pdf_page_count(archive_path, internal_path)
|
||||
materials.append(material)
|
||||
materials.sort(key=lambda item: (ROLE_ORDER[item['role']], item['filename'].lower()))
|
||||
return materials
|
||||
|
||||
|
||||
def build_catalog(manifest_path, downloads_dir, include_page_counts=False):
|
||||
entries = json.loads(Path(manifest_path).read_text())
|
||||
units = []
|
||||
for item in entries:
|
||||
if item.get('type') != 'zip' or not is_grade_three_source(item):
|
||||
continue
|
||||
archive_path = Path(downloads_dir) / item['filename']
|
||||
if not archive_path.is_file():
|
||||
continue
|
||||
materials = inspect_archive(archive_path, include_page_counts)
|
||||
units.append({
|
||||
'id': hashlib.sha256(item['filename'].encode('utf-8')).hexdigest()[:16],
|
||||
'title': item['title'],
|
||||
'filename': item['filename'],
|
||||
'source_url': item['source'],
|
||||
'subject': classify_unit(item['filename']),
|
||||
'materials': materials,
|
||||
'teacher_guide_count': sum(material['role'] == 'Teacher Guide' for material in materials),
|
||||
'student_material_count': sum(material['role'] == 'Student Reader' for material in materials),
|
||||
})
|
||||
units.sort(key=lambda item: (item['subject'], item['title'].lower()))
|
||||
return {
|
||||
'grade': 3,
|
||||
'unit_count': len(units),
|
||||
'teacher_guide_count': sum(unit['teacher_guide_count'] for unit in units),
|
||||
'student_material_count': sum(unit['student_material_count'] for unit in units),
|
||||
'units': units,
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--manifest', type=Path, required=True)
|
||||
parser.add_argument('--downloads-dir', type=Path, required=True)
|
||||
parser.add_argument('--output', type=Path, required=True)
|
||||
parser.add_argument('--page-counts', action='store_true')
|
||||
args = parser.parse_args()
|
||||
catalog = build_catalog(args.manifest, args.downloads_dir, args.page_counts)
|
||||
args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
args.output.write_text(json.dumps(catalog, indent=2) + '\n')
|
||||
print(json.dumps({
|
||||
'output': str(args.output),
|
||||
'units': catalog['unit_count'],
|
||||
'teacher_guides': catalog['teacher_guide_count'],
|
||||
'student_materials': catalog['student_material_count'],
|
||||
}))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Private loopback demo server for the Grade 3 curriculum showcase."""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import mimetypes
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import zipfile
|
||||
from http import HTTPStatus
|
||||
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
|
||||
from pathlib import Path
|
||||
from urllib.parse import unquote, urlparse
|
||||
|
||||
ROOT = Path(__file__).resolve().parent
|
||||
DEFAULT_DOWNLOADS = Path.home() / 'Downloads' / 'CoreKnowledge_Grades_1-5_EN_ES'
|
||||
sys.path.insert(0, str(ROOT / 'src'))
|
||||
from server_catalog import lookup_material, material_index
|
||||
|
||||
|
||||
class ShowcaseHandler(SimpleHTTPRequestHandler):
|
||||
def __init__(self, *args, downloads_dir=None, **kwargs):
|
||||
self.downloads_dir = Path(downloads_dir or DEFAULT_DOWNLOADS).resolve()
|
||||
super().__init__(*args, directory=str(ROOT), **kwargs)
|
||||
|
||||
def catalog(self):
|
||||
return json.loads((ROOT / 'data' / 'grade3_catalog.json').read_text())
|
||||
|
||||
def send_json(self, data):
|
||||
body = json.dumps(data).encode('utf-8')
|
||||
self.send_response(HTTPStatus.OK)
|
||||
self.send_header('Content-Type', 'application/json; charset=utf-8')
|
||||
self.send_header('Content-Length', str(len(body)))
|
||||
self.send_header('Cache-Control', 'no-store')
|
||||
self.end_headers()
|
||||
self.wfile.write(body)
|
||||
|
||||
def send_pdf(self, material_id):
|
||||
if not re.fullmatch(r'[0-9a-f]{20}', material_id):
|
||||
self.send_error(HTTPStatus.NOT_FOUND)
|
||||
return
|
||||
pair = lookup_material(material_index(self.catalog()), material_id)
|
||||
if pair is None:
|
||||
self.send_error(HTTPStatus.NOT_FOUND)
|
||||
return
|
||||
archive_name, internal_path = pair
|
||||
archive_path = (self.downloads_dir / archive_name).resolve()
|
||||
if archive_path.parent != self.downloads_dir:
|
||||
self.send_error(HTTPStatus.NOT_FOUND)
|
||||
return
|
||||
try:
|
||||
with zipfile.ZipFile(archive_path) as archive:
|
||||
content = archive.read(internal_path)
|
||||
except (FileNotFoundError, KeyError, zipfile.BadZipFile):
|
||||
self.send_error(HTTPStatus.NOT_FOUND)
|
||||
return
|
||||
filename = Path(internal_path).name
|
||||
self.send_response(HTTPStatus.OK)
|
||||
self.send_header('Content-Type', mimetypes.guess_type(filename)[0] or 'application/pdf')
|
||||
self.send_header('Content-Length', str(len(content)))
|
||||
self.send_header('Content-Disposition', 'inline; filename="%s"' % filename.replace('"', ''))
|
||||
self.send_header('Cache-Control', 'private, no-store')
|
||||
self.end_headers()
|
||||
self.wfile.write(content)
|
||||
|
||||
def do_GET(self):
|
||||
path = urlparse(self.path).path
|
||||
if path == '/api/catalog':
|
||||
self.send_json(self.catalog())
|
||||
return
|
||||
if path.startswith('/api/pdf/'):
|
||||
self.send_pdf(unquote(path[len('/api/pdf/'):]))
|
||||
return
|
||||
super().do_GET()
|
||||
|
||||
|
||||
def run(port, downloads_dir):
|
||||
def handler(*args, **kwargs):
|
||||
return ShowcaseHandler(*args, downloads_dir=downloads_dir, **kwargs)
|
||||
server = ThreadingHTTPServer(('127.0.0.1', port), handler)
|
||||
print('Serving Grade 3 showcase at http://127.0.0.1:%s' % port)
|
||||
server.serve_forever()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--port', type=int, default=8899)
|
||||
parser.add_argument('--downloads-dir', type=Path, default=DEFAULT_DOWNLOADS)
|
||||
args = parser.parse_args()
|
||||
run(args.port, args.downloads_dir)
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
export function isGradeThreeSource(source) {
|
||||
return /\bGrade 3\b/i.test(source.title ?? '') || /(?:^|[_-])G3(?:[_-]|$)/i.test(source.filename ?? '');
|
||||
}
|
||||
|
||||
export function classifyUnit(filename) {
|
||||
const name = String(filename);
|
||||
if (/CKMath/i.test(name)) return 'Math';
|
||||
if (/CKSci/i.test(name)) return 'Science';
|
||||
if (/CKLA/i.test(name)) return 'Language Arts';
|
||||
if (/CKHG|CKIYS|LABB_CKHG/i.test(name)) return 'History & Geography';
|
||||
if (/CKMusic|CKVA/i.test(name)) return 'Arts';
|
||||
return 'Other';
|
||||
}
|
||||
|
||||
export function roleForPdf(filename) {
|
||||
const name = String(filename);
|
||||
if (/(?:^|[_-])(TG|TeacherGuide|Teacher[_ -]?Guide)(?:[_-]|\.)/i.test(name)) return 'Teacher Guide';
|
||||
if (/(?:^|[_-])(SR|StudentReader|Student[_ -]?Reader|ActivityBook)(?:[_-]|\.)/i.test(name)) return 'Student Reader';
|
||||
return 'Reference';
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
export function subjectsFor(units) {
|
||||
return ['All', ...new Set(units.map((unit) => unit.subject).filter(Boolean))].sort((a, b) => {
|
||||
if (a === 'All') return -1;
|
||||
if (b === 'All') return 1;
|
||||
return a.localeCompare(b);
|
||||
});
|
||||
}
|
||||
|
||||
export function filterUnits(units, subject) {
|
||||
return subject === 'All' ? units : units.filter((unit) => unit.subject === subject);
|
||||
}
|
||||
|
||||
export function teacherGuidesFor(unit) {
|
||||
return (unit.materials ?? []).filter((material) => material.role === 'Teacher Guide');
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
def material_index(catalog):
|
||||
"""Map only generated catalog IDs to their exact archive member paths."""
|
||||
index = {}
|
||||
for unit in catalog.get('units', []):
|
||||
archive_name = unit.get('filename')
|
||||
if not archive_name:
|
||||
continue
|
||||
for material in unit.get('materials', []):
|
||||
material_id = material.get('id')
|
||||
internal_path = material.get('internal_path')
|
||||
if material_id and internal_path:
|
||||
index[material_id] = (archive_name, internal_path)
|
||||
return index
|
||||
|
||||
|
||||
def lookup_material(index, material_id):
|
||||
"""Return a declared pair or None; request input is never a filesystem path."""
|
||||
return index.get(material_id)
|
||||
@@ -0,0 +1,16 @@
|
||||
export function isCorrectTotal(value) {
|
||||
return Number(String(value).trim()) === 14;
|
||||
}
|
||||
|
||||
export function isCorrectEquation(value) {
|
||||
const numbers = String(value).match(/\d+/g)?.map(Number) ?? [];
|
||||
if (numbers.length !== 3) return false;
|
||||
const [first, second, product] = numbers;
|
||||
return product === 14 && ((first === 7 && second === 2) || (first === 2 && second === 7));
|
||||
}
|
||||
|
||||
export function hasReasoningEvidence(value) {
|
||||
const text = String(value).toLowerCase();
|
||||
const strategy = /group|each|repeated|add|plus/.test(text);
|
||||
return strategy && /\b14\b/.test(text);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
:root { --ink:#142737; --muted:#576a75; --paper:#f7f4ed; --card:#fffdfa; --line:#ded7c7; --blue:#156d92; --blue-deep:#0e526f; --mint:#dceee9; --gold:#edb950; --good:#13765a; --bad:#a13d34; }
|
||||
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; min-height:100vh; color:var(--ink); background:var(--paper); font-family:"Avenir Next",Avenir,ui-rounded,system-ui,sans-serif; }
|
||||
a { color:var(--blue-deep); } .site-header { width:min(100% - 2rem,1160px); margin:auto; padding:1.15rem 0; display:flex; align-items:center; justify-content:space-between; gap:1rem; } .brand { color:var(--ink); text-decoration:none; font-weight:850; letter-spacing:-.04em; font-size:1.17rem; } .brand span { color:var(--blue); } nav { display:flex; gap:1.2rem; } nav a { color:var(--muted); text-decoration:none; font-size:.92rem; font-weight:700; }
|
||||
main { width:min(100% - 2rem,1160px); margin:auto; } .hero { display:grid; grid-template-columns:1.5fr .78fr; gap:clamp(1.5rem,6vw,6rem); align-items:end; padding:clamp(3rem,8vw,7rem) 0 4rem; border-bottom:1px solid var(--line); } .eyebrow { margin:0 0 .6rem; color:var(--blue-deep); font-size:.73rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; } h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; letter-spacing:-.045em; } h1 { max-width:13ch; margin:0; font-size:clamp(3.1rem,7vw,6.3rem); line-height:.92; } h2 { margin:0; font-size:clamp(2rem,4vw,3rem); line-height:1; } h3 { margin:.2rem 0 .8rem; font-size:1.45rem; line-height:1.05; } .lede { max-width:58ch; color:var(--muted); font-size:1.08rem; line-height:1.6; } .hero-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.5rem; } .button,button { appearance:none; border:0; border-radius:.68rem; padding:.8rem 1rem; color:white; background:var(--blue); cursor:pointer; text-decoration:none; font:inherit; font-weight:800; } .button:hover,button:hover { background:var(--blue-deep); } .button.quiet { color:var(--blue-deep); background:#dceef3; } .hero-note { border:1px solid var(--line); border-radius:1rem; padding:1.2rem 1.3rem; background:var(--card); box-shadow:0 1rem 2.4rem #283d4012; } .hero-note p { margin:.55rem 0; } .hero-note strong { font-family:Georgia,serif; color:var(--blue-deep); font-size:1.5rem; } .note-label { color:var(--muted); font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; } hr { border:0; border-top:1px solid var(--line); margin:1rem 0; }
|
||||
.teacher-bridge { display:grid; grid-template-columns:.8fr 1.2fr; gap:2rem; padding:4rem 0; } .teacher-bridge>p { margin:0; color:var(--muted); font-size:1.06rem; line-height:1.65; } .library-section,.interactive-wrap { padding:4rem 0; border-top:1px solid var(--line); } .section-head { display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:1.5rem; } .small { color:var(--muted); font-size:.88rem; line-height:1.5; } .filters { display:flex; flex-wrap:wrap; gap:.45rem; margin:1.25rem 0 1.5rem; } .filter { padding:.52rem .75rem; border:1px solid #cbd7d9; color:var(--blue-deep); background:transparent; font-size:.88rem; } .filter.selected { color:white; background:var(--blue-deep); border-color:var(--blue-deep); }
|
||||
.unit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; } .unit-card { display:flex; min-height:235px; flex-direction:column; padding:1.15rem; border:1px solid var(--line); border-radius:.95rem; background:var(--card); } .unit-subject { margin:0; color:var(--blue-deep); font-size:.75rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; } .material-count { margin:0 0 .9rem; color:var(--muted); font-size:.86rem; line-height:1.4; } .resource-links { display:grid; gap:.35rem; margin-top:auto; } .resource-link { width:fit-content; color:var(--blue-deep); font-size:.9rem; font-weight:800; } .source-link { margin-top:.85rem; color:var(--muted); font-size:.76rem; }
|
||||
.interactive-wrap { padding-bottom:2rem; max-width:790px; } .progress { display:flex; gap:.45rem; margin:2rem 0 1.2rem; } .progress span { height:.4rem; flex:1; border-radius:2rem; background:#d8e0e2; } .progress span.active { background:var(--blue); } .session { border:1px solid var(--line); border-radius:1.1rem; background:var(--card); box-shadow:0 1.2rem 3rem #42381610; padding:clamp(1.25rem,4vw,2rem); } .session + .session { margin-top:1rem; } .session h3 { font-size:1.75rem; } .prompt { margin:.9rem 0 1.25rem; font-size:1.1rem; line-height:1.5; } .groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(105px,1fr)); gap:.65rem; margin:1.1rem 0; } .group { min-height:88px; border:2px dashed #b7d0dc; border-radius:.85rem; padding:.65rem; background:#f3fbfd; text-align:center; } .group span { display:block; color:var(--muted); font-size:.78rem; font-weight:700; } .shoes { min-height:42px; padding-top:.45rem; font-size:1.45rem; letter-spacing:.08em; } .answer-row { display:flex; gap:.65rem; flex-wrap:wrap; align-items:center; margin-top:1.15rem; } input,textarea { width:min(100%,320px); border:1px solid #afbac1; border-radius:.65rem; background:white; color:var(--ink); font:inherit; padding:.78rem; } textarea { min-height:112px; width:100%; resize:vertical; } button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--gold); outline-offset:3px; } .feedback { min-height:1.5rem; margin:.8rem 0 0; font-weight:700; } .feedback.good { color:var(--good); } .feedback.bad { color:var(--bad); } .tip { color:var(--muted); font-size:.94rem; line-height:1.45; } [hidden] { display:none!important; } .source { max-width:850px; margin:2rem 0 3.5rem; color:var(--muted); font-size:.8rem; line-height:1.5; }
|
||||
@media (max-width:800px) { .hero,.teacher-bridge { grid-template-columns:1fr; } .hero { padding-top:3.5rem; } .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
|
||||
@media (max-width:520px) { .site-header,main { width:min(100% - 1.2rem,1160px); } nav { gap:.8rem; } .unit-grid { grid-template-columns:1fr; } .section-head { display:block; } .section-head .small { margin-top:.8rem; } h1 { font-size:3.35rem; } .session { padding:1.15rem; } .answer-row input { width:100%; } }
|
||||
@@ -0,0 +1,21 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { classifyUnit, roleForPdf, isGradeThreeSource } from '../src/catalog.mjs';
|
||||
|
||||
test('keeps a Grade 3 unit from the verified source list', () => {
|
||||
assert.equal(isGradeThreeSource({ title: 'Grade 3 CK Math: Unit 1', filename: 'CKMath_G3U1.zip' }), true);
|
||||
assert.equal(isGradeThreeSource({ title: 'Grade 2 CK Math: Unit 1', filename: 'CKMath_G2U1.zip' }), false);
|
||||
});
|
||||
|
||||
test('classifies major Grade 3 curriculum families', () => {
|
||||
assert.equal(classifyUnit('CKMath_G3U1_IntroducingMultiplication.zip'), 'Math');
|
||||
assert.equal(classifyUnit('CKSci_G3_U1_InvestigatingForces.zip'), 'Science');
|
||||
assert.equal(classifyUnit('CKLA_G3_Unit-1.zip'), 'Language Arts');
|
||||
assert.equal(classifyUnit('CKHG_G3_U1_WorldRivers.zip'), 'History & Geography');
|
||||
});
|
||||
|
||||
test('labels teacher guides and student resources without exposing arbitrary paths', () => {
|
||||
assert.equal(roleForPdf('CKMath_G3U1_IntroducingMultiplication_TG_W2.pdf'), 'Teacher Guide');
|
||||
assert.equal(roleForPdf('CKMath_G3U1_IntroducingMultiplication_SR_W2.pdf'), 'Student Reader');
|
||||
assert.equal(roleForPdf('CoreKnowledge_CurriculumSeries_CCL_TermsOfUse_2024_W1.pdf'), 'Reference');
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { filterUnits, subjectsFor, teacherGuidesFor } from '../src/library.mjs';
|
||||
|
||||
const units = [
|
||||
{ subject: 'Math', title: 'Grade 3 Math', materials: [{ role: 'Teacher Guide', id: 'math-guide' }] },
|
||||
{ subject: 'Science', title: 'Grade 3 Science', materials: [{ role: 'Student Reader', id: 'science-reader' }] },
|
||||
{ subject: 'Math', title: 'Math Literature', materials: [] },
|
||||
];
|
||||
|
||||
test('lists available subjects with All first', () => {
|
||||
assert.deepEqual(subjectsFor(units), ['All', 'Math', 'Science']);
|
||||
});
|
||||
|
||||
test('filters units by selected subject', () => {
|
||||
assert.deepEqual(filterUnits(units, 'Math').map((unit) => unit.title), ['Grade 3 Math', 'Math Literature']);
|
||||
assert.equal(filterUnits(units, 'All').length, 3);
|
||||
});
|
||||
|
||||
test('selects only a unit’s teacher-plan PDFs', () => {
|
||||
assert.deepEqual(teacherGuidesFor(units[0]), [{ role: 'Teacher Guide', id: 'math-guide' }]);
|
||||
assert.deepEqual(teacherGuidesFor(units[1]), []);
|
||||
});
|
||||
@@ -0,0 +1,24 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {
|
||||
isCorrectTotal,
|
||||
isCorrectEquation,
|
||||
hasReasoningEvidence,
|
||||
} from '../src/session.mjs';
|
||||
|
||||
test('accepts the total for seven groups of two', () => {
|
||||
assert.equal(isCorrectTotal('14'), true);
|
||||
});
|
||||
|
||||
test('rejects an incorrect total for seven groups of two', () => {
|
||||
assert.equal(isCorrectTotal('13'), false);
|
||||
});
|
||||
|
||||
test('accepts an equivalent multiplication equation', () => {
|
||||
assert.equal(isCorrectEquation('2 × 7 = 14'), true);
|
||||
});
|
||||
|
||||
test('requires a learner explanation to name groups or repeated addition and the total', () => {
|
||||
assert.equal(hasReasoningEvidence('There are 7 groups of 2, so there are 14 shoes.'), true);
|
||||
assert.equal(hasReasoningEvidence('It is 14.'), false);
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import importlib.util
|
||||
import json
|
||||
import tempfile
|
||||
import unittest
|
||||
import zipfile
|
||||
from pathlib import Path
|
||||
|
||||
MODULE_PATH = Path(__file__).parents[1] / 'scripts' / 'build_grade3_catalog.py'
|
||||
spec = importlib.util.spec_from_file_location('catalog_builder', MODULE_PATH)
|
||||
builder = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(builder)
|
||||
|
||||
|
||||
class GradeThreeCatalogTest(unittest.TestCase):
|
||||
def test_build_catalog_keeps_grade_three_archives_and_labels_pdfs(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
root = Path(temp_dir)
|
||||
archive = root / 'CKMath_G3U1.zip'
|
||||
with zipfile.ZipFile(archive, 'w') as zf:
|
||||
zf.writestr('unit/CKMath_G3U1_TG.pdf', b'not-a-real-pdf')
|
||||
zf.writestr('unit/CKMath_G3U1_SR.pdf', b'not-a-real-pdf')
|
||||
zf.writestr('__MACOSX/unit/._ignored.pdf', b'ignored')
|
||||
manifest = root / 'download-manifest.json'
|
||||
manifest.write_text(json.dumps([
|
||||
{'title': 'Grade 3 CKMath: Unit 1', 'filename': archive.name, 'source': 'https://example.test/g3.zip', 'type': 'zip'},
|
||||
{'title': 'Grade 2 CKMath: Unit 1', 'filename': 'CKMath_G2U1.zip', 'source': 'https://example.test/g2.zip', 'type': 'zip'},
|
||||
]))
|
||||
|
||||
catalog = builder.build_catalog(manifest, root)
|
||||
|
||||
self.assertEqual(catalog['unit_count'], 1)
|
||||
unit = catalog['units'][0]
|
||||
self.assertEqual(unit['subject'], 'Math')
|
||||
self.assertEqual([material['role'] for material in unit['materials']], ['Student Reader', 'Teacher Guide'])
|
||||
self.assertEqual(unit['teacher_guide_count'], 1)
|
||||
self.assertEqual(unit['student_material_count'], 1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -0,0 +1,31 @@
|
||||
import importlib.util
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
MODULE_PATH = Path(__file__).parents[1] / 'src' / 'server_catalog.py'
|
||||
spec = importlib.util.spec_from_file_location('server_catalog', MODULE_PATH)
|
||||
server_catalog = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(server_catalog)
|
||||
|
||||
|
||||
class ServerCatalogTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.catalog = {
|
||||
'units': [{
|
||||
'filename': 'CKMath_G3U1.zip',
|
||||
'materials': [{'id': 'guide-1', 'internal_path': 'unit/guide.pdf', 'filename': 'guide.pdf'}],
|
||||
}]
|
||||
}
|
||||
|
||||
def test_known_material_id_resolves_to_its_declared_zip_member(self):
|
||||
index = server_catalog.material_index(self.catalog)
|
||||
self.assertEqual(server_catalog.lookup_material(index, 'guide-1'), ('CKMath_G3U1.zip', 'unit/guide.pdf'))
|
||||
|
||||
def test_unknown_or_path_like_id_is_not_resolved(self):
|
||||
index = server_catalog.material_index(self.catalog)
|
||||
self.assertIsNone(server_catalog.lookup_material(index, '../../etc/passwd'))
|
||||
self.assertIsNone(server_catalog.lookup_material(index, 'not-in-the-catalog'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
@@ -0,0 +1,10 @@
|
||||
COLANODE_BASE_URL=https://colanode.reynafamily.com/client
|
||||
COLANODE_SOCKET_BASE_URL=wss://colanode.reynafamily.com/client
|
||||
COLANODE_WORKSPACE_NAME=FamReynaWorkspace
|
||||
COLANODE_TOKEN=
|
||||
COLANODE_EMAIL=
|
||||
COLANODE_PASSWORD=
|
||||
STATE_FILE=
|
||||
HERMES_BIN=hermes
|
||||
HERMES_TIMEOUT_MS=60000
|
||||
HERMES_MAX_OUTPUT_BYTES=12000
|
||||
@@ -0,0 +1,3 @@
|
||||
dist/
|
||||
node_modules/
|
||||
*.log
|
||||
@@ -0,0 +1,39 @@
|
||||
# Colanode Hermes Bridge
|
||||
|
||||
Standalone Node 22 TypeScript service that listens to Colanode synchronizer events and replies through Hermes only when a new Colanode `message` node explicitly mentions the bot user.
|
||||
|
||||
## Safety
|
||||
|
||||
- Reads secrets from `$HOME/.hermes/secrets/colanode-family-bot.env`.
|
||||
- Requires that secret file to be mode `0600`.
|
||||
- Uses Colanode client HTTP/WebSocket APIs only.
|
||||
- Does not write to Postgres, Hermes config, Caddy, Colanode deployment files, or Colanode data outside the documented mutation API.
|
||||
- Tests never send Colanode replies.
|
||||
|
||||
## Secret File
|
||||
|
||||
Expected variables:
|
||||
|
||||
```sh
|
||||
COLANODE_TOKEN=...
|
||||
# Optional fallback only if a stored token is unavailable:
|
||||
COLANODE_EMAIL=bot@example.com
|
||||
COLANODE_PASSWORD=...
|
||||
```
|
||||
|
||||
Optional overrides are shown in `.env.example`.
|
||||
|
||||
## Commands
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run build
|
||||
npm test
|
||||
```
|
||||
|
||||
Run foreground service after build:
|
||||
|
||||
```sh
|
||||
npm start
|
||||
```
|
||||
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"name": "colanode-hermes-bridge",
|
||||
"version": "0.1.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "colanode-hermes-bridge",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"js-base64": "^3.7.7",
|
||||
"ws": "^8.18.0",
|
||||
"yjs": "^13.6.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/ws": "^8.5.13",
|
||||
"typescript": "^5.7.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.20.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz",
|
||||
"integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/ws": {
|
||||
"version": "8.18.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
|
||||
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/isomorphic.js": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz",
|
||||
"integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "GitHub Sponsors ❤",
|
||||
"url": "https://github.com/sponsors/dmonad"
|
||||
}
|
||||
},
|
||||
"node_modules/js-base64": {
|
||||
"version": "3.9.3",
|
||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.9.3.tgz",
|
||||
"integrity": "sha512-uwYQp+VJ38FVvtim6qNbit6e9uT6dwWQ4Y1+H9TxhW5hcHjpHwoxlR0nMpqUmIFOmu4VqMxwdJA88gIVuZJQ/g==",
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/lib0": {
|
||||
"version": "0.2.117",
|
||||
"resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.117.tgz",
|
||||
"integrity": "sha512-DeXj9X5xDCjgKLU/7RR+/HQEVzuuEUiwldwOGsHK/sfAfELGWEyTcf0x+uOvCvK3O2zPmZePXWL85vtia6GyZw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"isomorphic.js": "^0.2.4"
|
||||
},
|
||||
"bin": {
|
||||
"0ecdsa-generate-keypair": "bin/0ecdsa-generate-keypair.js",
|
||||
"0gentesthtml": "bin/gentesthtml.js",
|
||||
"0serve": "bin/0serve.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
"funding": {
|
||||
"type": "GitHub Sponsors ❤",
|
||||
"url": "https://github.com/sponsors/dmonad"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.9.3",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
||||
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.21.3",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
|
||||
"integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": ">=5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/yjs": {
|
||||
"version": "13.6.32",
|
||||
"resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.32.tgz",
|
||||
"integrity": "sha512-lfiJIIC4Xayt5ItynE407ehlE03pCjeOc4hkR4yxxvvNJ4kuiN25B0g+Qp8XagYz361LLL7DCzR5bvFJ81QKtQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"lib0": "^0.2.99"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "GitHub Sponsors ❤",
|
||||
"url": "https://github.com/sponsors/dmonad"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "colanode-hermes-bridge",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"engines": {
|
||||
"node": ">=22"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json",
|
||||
"test": "npm run build && node --test dist/test/*.test.js",
|
||||
"start": "node dist/index.js",
|
||||
"dev": "tsx src/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"js-base64": "^3.7.7",
|
||||
"ws": "^8.18.0",
|
||||
"yjs": "^13.6.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/ws": "^8.5.13",
|
||||
"typescript": "^5.7.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
import { createHash } from 'node:crypto';
|
||||
import WebSocket from 'ws';
|
||||
import type { AccountSyncOutput, SynchronizerInput, SynchronizerInputMessage, WorkspaceOutput } from './types.js';
|
||||
|
||||
export class ColanodeClient {
|
||||
private token: string | undefined;
|
||||
|
||||
constructor(
|
||||
private readonly httpBaseUrl: string,
|
||||
private readonly socketBaseUrl: string,
|
||||
token?: string
|
||||
) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
async authenticate(email?: string, password?: string): Promise<AccountSyncOutput> {
|
||||
if (!this.token) {
|
||||
if (!email || !password) throw new Error('COLANODE_TOKEN is required unless COLANODE_EMAIL and COLANODE_PASSWORD are provided');
|
||||
const login = await this.postJson<{ type: string; token?: string }>('v1/auth/email/login', { email, password }, false);
|
||||
if (login.type !== 'success' || !login.token) throw new Error('Email login did not return a usable token');
|
||||
this.token = login.token;
|
||||
}
|
||||
const sync = await this.postJson<AccountSyncOutput>('v1/accounts/sync', {});
|
||||
if (sync.token) this.token = sync.token;
|
||||
return sync;
|
||||
}
|
||||
|
||||
async createSocket(): Promise<WebSocket> {
|
||||
const output = await this.postJson<{ id: string }>('v1/sockets', {});
|
||||
return new WebSocket(`${this.socketBaseUrl}/v1/sockets/${output.id}`, {
|
||||
headers: this.authHeader()
|
||||
});
|
||||
}
|
||||
|
||||
async createMessage(workspaceId: string, mutation: unknown): Promise<void> {
|
||||
const output = await this.postJson<{ results: { id: string; status: number }[] }>(
|
||||
`v1/workspaces/${workspaceId}/mutations`,
|
||||
{ mutations: [mutation] }
|
||||
);
|
||||
const result = output.results[0];
|
||||
if (!result || (result.status !== 200 && result.status !== 201)) {
|
||||
throw new Error(`Colanode mutation failed with status ${result?.status ?? 'missing'}`);
|
||||
}
|
||||
}
|
||||
|
||||
sendSynchronizer(socket: WebSocket, userId: string, input: SynchronizerInput, cursor: string): string {
|
||||
const id = synchronizerId(userId, input);
|
||||
const message: SynchronizerInputMessage = { type: 'synchronizer.input', id, userId, input, cursor };
|
||||
socket.send(JSON.stringify(message));
|
||||
return id;
|
||||
}
|
||||
|
||||
private async postJson<T>(path: string, body: unknown, useAuth = true): Promise<T> {
|
||||
const headers: Record<string, string> = { 'content-type': 'application/json' };
|
||||
if (useAuth) Object.assign(headers, this.authHeader());
|
||||
const response = await fetch(`${this.httpBaseUrl}/${path}`, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: JSON.stringify(body)
|
||||
});
|
||||
if (!response.ok) throw new Error(`Colanode ${path} returned HTTP ${response.status}`);
|
||||
return (await response.json()) as T;
|
||||
}
|
||||
|
||||
private authHeader(): Record<string, string> {
|
||||
if (!this.token) throw new Error('Missing Colanode token');
|
||||
return { authorization: `Bearer ${this.token}` };
|
||||
}
|
||||
}
|
||||
|
||||
export function requireWorkspace(sync: AccountSyncOutput, name: string): WorkspaceOutput {
|
||||
const workspace = sync.workspaces.find((item) => item.name === name);
|
||||
if (!workspace) throw new Error(`Required workspace membership not found: ${name}`);
|
||||
console.log(`Colanode account: ${sync.account.name}`);
|
||||
console.log(`Workspace: ${workspace.name}`);
|
||||
console.log(`Role: ${workspace.user.role}`);
|
||||
return workspace;
|
||||
}
|
||||
|
||||
export function synchronizerId(userId: string, input: SynchronizerInput): string {
|
||||
return createHash('sha256').update(JSON.stringify({ userId, input })).digest('hex');
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import { readFile, stat } from 'node:fs/promises';
|
||||
import { homedir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
|
||||
export type Config = {
|
||||
httpBaseUrl: string;
|
||||
socketBaseUrl: string;
|
||||
workspaceName: string;
|
||||
token?: string;
|
||||
email?: string;
|
||||
password?: string;
|
||||
stateFile: string;
|
||||
hermesBin: string;
|
||||
hermesTimeoutMs: number;
|
||||
hermesMaxOutputBytes: number;
|
||||
};
|
||||
|
||||
const SECRET_PATH = join(homedir(), '.hermes/secrets/colanode-family-bot.env');
|
||||
|
||||
export async function loadConfig(): Promise<Config> {
|
||||
const secrets = await readSecretEnv(SECRET_PATH);
|
||||
const env = { ...process.env, ...secrets };
|
||||
return {
|
||||
httpBaseUrl: stripTrailingSlash(env.COLANODE_BASE_URL ?? 'https://colanode.reynafamily.com/client'),
|
||||
socketBaseUrl: stripTrailingSlash(env.COLANODE_SOCKET_BASE_URL ?? 'wss://colanode.reynafamily.com/client'),
|
||||
workspaceName: env.COLANODE_WORKSPACE_NAME ?? 'FamReynaWorkspace',
|
||||
token: emptyToUndefined(env.COLANODE_TOKEN ?? env.COLANODE_BOT_TOKEN),
|
||||
email: emptyToUndefined(env.COLANODE_EMAIL ?? env.COLANODE_BOT_EMAIL),
|
||||
password: emptyToUndefined(env.COLANODE_PASSWORD ?? env.COLANODE_BOT_PASSWORD),
|
||||
stateFile: env.STATE_FILE ?? join(homedir(), '.hermes/colanode-family-bot-state.json'),
|
||||
hermesBin: env.HERMES_BIN ?? 'hermes',
|
||||
hermesTimeoutMs: Number(env.HERMES_TIMEOUT_MS ?? 60_000),
|
||||
hermesMaxOutputBytes: Number(env.HERMES_MAX_OUTPUT_BYTES ?? 12_000)
|
||||
};
|
||||
}
|
||||
|
||||
async function readSecretEnv(path: string): Promise<Record<string, string>> {
|
||||
const info = await stat(path);
|
||||
if ((info.mode & 0o777) !== 0o600) {
|
||||
throw new Error(`Secret file must be mode 0600: ${path}`);
|
||||
}
|
||||
const text = await readFile(path, 'utf8');
|
||||
const result: Record<string, string> = {};
|
||||
for (const rawLine of text.split(/\r?\n/)) {
|
||||
const line = rawLine.trim();
|
||||
if (!line || line.startsWith('#')) continue;
|
||||
const eq = line.indexOf('=');
|
||||
if (eq <= 0) continue;
|
||||
const key = line.slice(0, eq).trim();
|
||||
let value = line.slice(eq + 1).trim();
|
||||
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
||||
value = value.slice(1, -1);
|
||||
}
|
||||
result[key] = value;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function stripTrailingSlash(value: string): string {
|
||||
return value.replace(/\/+$/, '');
|
||||
}
|
||||
|
||||
function emptyToUndefined(value: string | undefined): string | undefined {
|
||||
return value && value.length > 0 ? value : undefined;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import { fromUint8Array, toUint8Array } from 'js-base64';
|
||||
import * as Y from 'yjs';
|
||||
|
||||
export function decodeAttributes<T>(encoded: string): T {
|
||||
const doc = new Y.Doc();
|
||||
Y.applyUpdate(doc, toUint8Array(encoded));
|
||||
return doc.getMap('object').toJSON() as T;
|
||||
}
|
||||
|
||||
export function encodeAttributes(attributes: Record<string, unknown>): string {
|
||||
const doc = new Y.Doc();
|
||||
const updates: Uint8Array[] = [];
|
||||
doc.on('update', (update) => updates.push(update));
|
||||
doc.transact(() => applyObject(doc.getMap('object'), attributes));
|
||||
if (updates.length !== 1) throw new Error('Expected one Yjs update');
|
||||
return fromUint8Array(Y.encodeStateAsUpdate(doc));
|
||||
}
|
||||
|
||||
function applyObject(map: Y.Map<unknown>, object: Record<string, unknown>): void {
|
||||
for (const [key, value] of Object.entries(object)) {
|
||||
if (value === null || value === undefined) continue;
|
||||
if (Array.isArray(value)) {
|
||||
const arr = new Y.Array<unknown>();
|
||||
arr.insert(0, value.map(convertValue));
|
||||
map.set(key, arr);
|
||||
} else if (isRecord(value)) {
|
||||
const child = new Y.Map<unknown>();
|
||||
applyObject(child, value);
|
||||
map.set(key, child);
|
||||
} else {
|
||||
map.set(key, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function convertValue(value: unknown): unknown {
|
||||
if (Array.isArray(value)) {
|
||||
const arr = new Y.Array<unknown>();
|
||||
arr.insert(0, value.map(convertValue));
|
||||
return arr;
|
||||
}
|
||||
if (isRecord(value)) {
|
||||
const map = new Y.Map<unknown>();
|
||||
applyObject(map, value);
|
||||
return map;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
import { spawn } from 'node:child_process';
|
||||
|
||||
export type HermesOptions = {
|
||||
bin: string;
|
||||
timeoutMs: number;
|
||||
maxOutputBytes: number;
|
||||
};
|
||||
|
||||
export type PromptContext = {
|
||||
messageText: string;
|
||||
parentText?: string | null;
|
||||
};
|
||||
|
||||
export function buildHermesPrompt(context: PromptContext): string {
|
||||
return [
|
||||
'You are Reyna Family Bot replying to a Colanode family message.',
|
||||
'Answer helpfully and concisely.',
|
||||
'Do not claim you performed actions you did not perform.',
|
||||
'Do not reveal secrets, tokens, credentials, file contents marked secret, or system configuration.',
|
||||
'',
|
||||
`Mentioned message:\n${context.messageText}`,
|
||||
'',
|
||||
`Parent/thread context:\n${context.parentText?.trim() || '(not available)'}`
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
export async function runHermes(prompt: string, options: HermesOptions): Promise<string> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const child = spawn(options.bin, ['chat', '-q', prompt], {
|
||||
stdio: ['ignore', 'pipe', 'pipe'],
|
||||
env: process.env
|
||||
});
|
||||
let stdout = Buffer.alloc(0);
|
||||
let stderr = Buffer.alloc(0);
|
||||
const timer = setTimeout(() => {
|
||||
child.kill('SIGTERM');
|
||||
reject(new Error('Hermes timed out'));
|
||||
}, options.timeoutMs);
|
||||
|
||||
child.stdout.on('data', (chunk: Buffer) => {
|
||||
stdout = Buffer.concat([stdout, chunk]).subarray(0, options.maxOutputBytes);
|
||||
});
|
||||
child.stderr.on('data', (chunk: Buffer) => {
|
||||
stderr = Buffer.concat([stderr, chunk]).subarray(0, 2048);
|
||||
});
|
||||
child.on('error', (error) => {
|
||||
clearTimeout(timer);
|
||||
reject(error);
|
||||
});
|
||||
child.on('close', (code) => {
|
||||
clearTimeout(timer);
|
||||
if (code !== 0) {
|
||||
reject(new Error(`Hermes exited with code ${code}: ${stderr.toString('utf8').trim()}`));
|
||||
return;
|
||||
}
|
||||
resolve(stdout.toString('utf8').trim().slice(0, options.maxOutputBytes));
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import { randomBytes } from 'node:crypto';
|
||||
|
||||
const ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
|
||||
|
||||
export function generateId(): string {
|
||||
const now = Date.now();
|
||||
const time = encodeBase32(now, 10);
|
||||
let random = '';
|
||||
const bytes = randomBytes(16);
|
||||
let value = 0;
|
||||
let bits = 0;
|
||||
for (const byte of bytes) {
|
||||
value = (value << 8) | byte;
|
||||
bits += 8;
|
||||
while (bits >= 5 && random.length < 16) {
|
||||
random += ENCODING[(value >>> (bits - 5)) & 31];
|
||||
bits -= 5;
|
||||
}
|
||||
}
|
||||
return time + random.padEnd(16, '0');
|
||||
}
|
||||
|
||||
function encodeBase32(num: number, length: number): string {
|
||||
let out = '';
|
||||
for (let i = length - 1; i >= 0; i--) {
|
||||
out = ENCODING[num % 32] + out;
|
||||
num = Math.floor(num / 32);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
import { setTimeout as delay } from 'node:timers/promises';
|
||||
import { loadConfig } from './config.js';
|
||||
import { ColanodeClient, requireWorkspace, synchronizerId } from './colanode.js';
|
||||
import { StateStore } from './state.js';
|
||||
import { processNodeUpdate, type NodeCache } from './processor.js';
|
||||
import type { SyncCollaborationData, SyncNodeUpdateData, SynchronizerInput } from './types.js';
|
||||
|
||||
const config = await loadConfig();
|
||||
const state = new StateStore(config.stateFile);
|
||||
await state.load();
|
||||
|
||||
let stopping = false;
|
||||
process.on('SIGTERM', () => {
|
||||
stopping = true;
|
||||
});
|
||||
process.on('SIGINT', () => {
|
||||
stopping = true;
|
||||
});
|
||||
|
||||
const colanode = new ColanodeClient(config.httpBaseUrl, config.socketBaseUrl, config.token);
|
||||
const sync = await colanode.authenticate(config.email, config.password);
|
||||
const workspace = requireWorkspace(sync, config.workspaceName);
|
||||
const botUserId = workspace.user.id;
|
||||
const activeRoots = new Set<string>();
|
||||
const cache: NodeCache = new Map();
|
||||
|
||||
let backoff = 1000;
|
||||
while (!stopping) {
|
||||
try {
|
||||
await runSocketLoop();
|
||||
backoff = 1000;
|
||||
} catch (error) {
|
||||
if (!stopping) {
|
||||
console.error(`Bridge loop error: ${(error as Error).message}`);
|
||||
await delay(backoff);
|
||||
backoff = Math.min(backoff * 2, 30_000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function runSocketLoop(): Promise<void> {
|
||||
const socket = await colanode.createSocket();
|
||||
const ids = new Map<string, { key: string; input: SynchronizerInput }>();
|
||||
const subscribe = (input: SynchronizerInput) => {
|
||||
const key = cursorKey(input);
|
||||
const id = colanode.sendSynchronizer(socket, botUserId, input, state.getCursor(key));
|
||||
ids.set(id, { key, input });
|
||||
};
|
||||
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
const ping = setInterval(() => {
|
||||
if (socket.readyState !== socket.OPEN) return;
|
||||
for (const item of ids.values()) colanode.sendSynchronizer(socket, botUserId, item.input, state.getCursor(item.key));
|
||||
}, 60_000);
|
||||
|
||||
socket.on('open', () => {
|
||||
subscribe({ type: 'users' });
|
||||
subscribe({ type: 'collaborations' });
|
||||
for (const rootId of activeRoots) subscribe({ type: 'node.updates', rootId });
|
||||
});
|
||||
socket.on('message', (raw) => {
|
||||
void handleMessage(raw.toString(), ids, subscribe).catch((error) => console.error(`Event handling error: ${error.message}`));
|
||||
});
|
||||
socket.on('close', () => {
|
||||
clearInterval(ping);
|
||||
resolve();
|
||||
});
|
||||
socket.on('error', (error) => {
|
||||
clearInterval(ping);
|
||||
reject(error);
|
||||
});
|
||||
const stopTimer = setInterval(() => {
|
||||
if (stopping) {
|
||||
clearInterval(stopTimer);
|
||||
socket.close();
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
|
||||
async function handleMessage(
|
||||
raw: string,
|
||||
ids: Map<string, { key: string; input: SynchronizerInput }>,
|
||||
subscribe: (input: SynchronizerInput) => void
|
||||
): Promise<void> {
|
||||
let message: { type?: string; id?: string; items?: { cursor: string; data: unknown }[] };
|
||||
try {
|
||||
message = JSON.parse(raw) as typeof message;
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
if (message.type !== 'synchronizer.output' || !message.id || !Array.isArray(message.items)) return;
|
||||
const registration = ids.get(message.id);
|
||||
if (!registration) return;
|
||||
let lastCursor: string | null = null;
|
||||
for (const item of message.items) {
|
||||
if (registration.input.type === 'collaborations') {
|
||||
const data = item.data as SyncCollaborationData;
|
||||
if (!data.deletedAt && !activeRoots.has(data.nodeId)) {
|
||||
activeRoots.add(data.nodeId);
|
||||
subscribe({ type: 'node.updates', rootId: data.nodeId });
|
||||
}
|
||||
} else if (registration.input.type === 'node.updates') {
|
||||
await processNodeUpdate({
|
||||
update: item.data as SyncNodeUpdateData,
|
||||
botUserId,
|
||||
workspaceId: workspace.id,
|
||||
cache,
|
||||
state,
|
||||
hermes: { bin: config.hermesBin, timeoutMs: config.hermesTimeoutMs, maxOutputBytes: config.hermesMaxOutputBytes },
|
||||
colanode
|
||||
});
|
||||
}
|
||||
lastCursor = item.cursor;
|
||||
}
|
||||
if (lastCursor) await state.setCursor(registration.key, lastCursor);
|
||||
}
|
||||
|
||||
function cursorKey(input: SynchronizerInput): string {
|
||||
return input.type === 'node.updates' ? `${input.rootId}.node.updates` : input.type;
|
||||
}
|
||||
|
||||
void synchronizerId;
|
||||
@@ -0,0 +1,24 @@
|
||||
import { encodeAttributes } from './crdt.js';
|
||||
import { generateId } from './ids.js';
|
||||
import { makePlainMessageAttributes } from './text.js';
|
||||
|
||||
export function createReplyMutation(parentId: string, text: string, now = new Date()): { mutation: unknown; nodeId: string } {
|
||||
const nodeId = generateId();
|
||||
const updateId = generateId();
|
||||
const createdAt = now.toISOString();
|
||||
const attributes = makePlainMessageAttributes(nodeId, parentId, text);
|
||||
return {
|
||||
nodeId,
|
||||
mutation: {
|
||||
id: generateId(),
|
||||
type: 'node.create',
|
||||
createdAt,
|
||||
data: {
|
||||
nodeId,
|
||||
updateId,
|
||||
createdAt,
|
||||
data: encodeAttributes(attributes as unknown as Record<string, unknown>)
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { MessageAttributes, SyncNodeUpdateData } from './types.js';
|
||||
import { decodeAttributes } from './crdt.js';
|
||||
import { extractMentionTargets, plainTextFromMessage } from './text.js';
|
||||
import { buildHermesPrompt, runHermes, type HermesOptions } from './hermes.js';
|
||||
import { createReplyMutation } from './mutations.js';
|
||||
import type { ColanodeClient } from './colanode.js';
|
||||
import type { StateStore } from './state.js';
|
||||
|
||||
export type NodeCache = Map<string, { id: string; attrs: MessageAttributes; createdBy: string }>;
|
||||
export type HermesRunner = (prompt: string, options: HermesOptions) => Promise<string>;
|
||||
|
||||
export async function processNodeUpdate(input: {
|
||||
update: SyncNodeUpdateData;
|
||||
botUserId: string;
|
||||
workspaceId: string;
|
||||
cache: NodeCache;
|
||||
state: StateStore;
|
||||
hermes: HermesOptions;
|
||||
colanode: ColanodeClient;
|
||||
runHermesFn?: HermesRunner;
|
||||
}): Promise<void> {
|
||||
const attrs = decodeAttributes<Partial<MessageAttributes>>(input.update.data);
|
||||
if (attrs.type !== 'message' || !attrs.parentId) return;
|
||||
const messageAttrs = attrs as MessageAttributes;
|
||||
input.cache.set(input.update.nodeId, { id: input.update.nodeId, attrs: messageAttrs, createdBy: input.update.createdBy });
|
||||
|
||||
if (input.update.createdBy === input.botUserId) return;
|
||||
if (input.state.hasProcessed(input.update.nodeId)) return;
|
||||
if (!extractMentionTargets(input.update.nodeId, messageAttrs.content).includes(input.botUserId)) return;
|
||||
|
||||
const messageText = plainTextFromMessage(input.update.nodeId, messageAttrs);
|
||||
const parentText = input.cache.get(messageAttrs.parentId)?.attrs
|
||||
? plainTextFromMessage(messageAttrs.parentId, input.cache.get(messageAttrs.parentId)!.attrs)
|
||||
: null;
|
||||
const prompt = buildHermesPrompt({ messageText, parentText });
|
||||
const reply = await (input.runHermesFn ?? runHermes)(prompt, input.hermes);
|
||||
if (!reply) throw new Error('Hermes returned an empty reply');
|
||||
const { mutation, nodeId } = createReplyMutation(messageAttrs.parentId, reply);
|
||||
await input.colanode.createMessage(input.workspaceId, mutation);
|
||||
await input.state.markProcessed(input.update.nodeId, nodeId);
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import { mkdir, open, readFile, writeFile } from 'node:fs/promises';
|
||||
import { dirname } from 'node:path';
|
||||
|
||||
export type BridgeState = {
|
||||
cursors: Record<string, string>;
|
||||
processedMessages: Record<string, { repliedNodeId: string; at: string }>;
|
||||
};
|
||||
|
||||
const EMPTY_STATE: BridgeState = { cursors: {}, processedMessages: {} };
|
||||
|
||||
export class StateStore {
|
||||
private state: BridgeState = structuredClone(EMPTY_STATE);
|
||||
constructor(private readonly path: string) {}
|
||||
|
||||
async load(): Promise<void> {
|
||||
await mkdir(dirname(this.path), { recursive: true, mode: 0o700 });
|
||||
try {
|
||||
const text = await readFile(this.path, 'utf8');
|
||||
this.state = { ...structuredClone(EMPTY_STATE), ...JSON.parse(text) };
|
||||
} catch (error) {
|
||||
if ((error as NodeJS.ErrnoException).code !== 'ENOENT') throw error;
|
||||
await this.save();
|
||||
}
|
||||
}
|
||||
|
||||
getCursor(key: string): string {
|
||||
return this.state.cursors[key] ?? '0';
|
||||
}
|
||||
|
||||
async setCursor(key: string, cursor: string): Promise<void> {
|
||||
this.state.cursors[key] = cursor;
|
||||
await this.save();
|
||||
}
|
||||
|
||||
hasProcessed(messageId: string): boolean {
|
||||
return Boolean(this.state.processedMessages[messageId]);
|
||||
}
|
||||
|
||||
async markProcessed(messageId: string, repliedNodeId: string): Promise<void> {
|
||||
this.state.processedMessages[messageId] = { repliedNodeId, at: new Date().toISOString() };
|
||||
await this.save();
|
||||
}
|
||||
|
||||
private async save(): Promise<void> {
|
||||
const handle = await open(this.path, 'w', 0o600);
|
||||
try {
|
||||
await handle.writeFile(`${JSON.stringify(this.state, null, 2)}\n`, 'utf8');
|
||||
await handle.chmod(0o600);
|
||||
} finally {
|
||||
await handle.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import type { Block, MessageAttributes } from './types.js';
|
||||
import { generateId } from './ids.js';
|
||||
|
||||
export function extractBlockText(nodeId: string, blocks: Record<string, Block> | null | undefined): string | null {
|
||||
if (!blocks) return null;
|
||||
const text = collectText(nodeId, blocks).trim();
|
||||
return text.length > 0 ? text : null;
|
||||
}
|
||||
|
||||
export function extractMentionTargets(nodeId: string, blocks: Record<string, Block> | null | undefined): string[] {
|
||||
if (!blocks) return [];
|
||||
return collectMentions(nodeId, blocks);
|
||||
}
|
||||
|
||||
export function plainTextFromMessage(id: string, attrs: MessageAttributes): string {
|
||||
return extractBlockText(id, attrs.content) ?? '';
|
||||
}
|
||||
|
||||
export function makePlainMessageAttributes(nodeId: string, parentId: string, text: string): MessageAttributes {
|
||||
const blockId = generateId();
|
||||
return {
|
||||
type: 'message',
|
||||
subtype: 'standard',
|
||||
name: 'Reyna Family Bot',
|
||||
parentId,
|
||||
content: {
|
||||
[blockId]: {
|
||||
id: blockId,
|
||||
type: 'paragraph',
|
||||
parentId: nodeId,
|
||||
index: 'a0',
|
||||
content: [{ type: 'text', text }]
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function collectText(blockId: string, blocks: Record<string, Block>): string {
|
||||
const texts: string[] = [];
|
||||
const block = blocks[blockId];
|
||||
if (block?.content) {
|
||||
texts.push(block.content.map((leaf) => leaf.text ?? '').join(''));
|
||||
}
|
||||
for (const child of children(blockId, blocks)) texts.push(collectText(child.id, blocks));
|
||||
return texts.join('\n');
|
||||
}
|
||||
|
||||
function collectMentions(blockId: string, blocks: Record<string, Block>): string[] {
|
||||
const mentions: string[] = [];
|
||||
const block = blocks[blockId];
|
||||
if (block?.content) {
|
||||
for (const leaf of block.content) {
|
||||
if (leaf.type === 'mention' && typeof leaf.attrs?.target === 'string') mentions.push(leaf.attrs.target);
|
||||
}
|
||||
}
|
||||
for (const child of children(blockId, blocks)) mentions.push(...collectMentions(child.id, blocks));
|
||||
return mentions;
|
||||
}
|
||||
|
||||
function children(blockId: string, blocks: Record<string, Block>): Block[] {
|
||||
return Object.values(blocks)
|
||||
.filter((child) => child.parentId === blockId)
|
||||
.sort((a, b) => a.index.localeCompare(b.index));
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
export type WorkspaceRole = 'owner' | 'admin' | 'collaborator' | 'guest' | 'none';
|
||||
|
||||
export type WorkspaceOutput = {
|
||||
id: string;
|
||||
name: string;
|
||||
user: { id: string; accountId: string; role: WorkspaceRole };
|
||||
status: number;
|
||||
};
|
||||
|
||||
export type AccountSyncOutput = {
|
||||
account: { id: string; email: string; name: string; avatar?: string | null };
|
||||
workspaces: WorkspaceOutput[];
|
||||
token?: string;
|
||||
};
|
||||
|
||||
export type SynchronizerInput =
|
||||
| { type: 'users' }
|
||||
| { type: 'collaborations' }
|
||||
| { type: 'node.updates'; rootId: string };
|
||||
|
||||
export type SynchronizerInputMessage = {
|
||||
type: 'synchronizer.input';
|
||||
id: string;
|
||||
userId: string;
|
||||
input: SynchronizerInput;
|
||||
cursor: string;
|
||||
};
|
||||
|
||||
export type SyncItem<T> = { cursor: string; data: T };
|
||||
|
||||
export type SynchronizerOutputMessage<T = unknown> = {
|
||||
type: 'synchronizer.output';
|
||||
userId: string;
|
||||
id: string;
|
||||
items: SyncItem<T>[];
|
||||
};
|
||||
|
||||
export type SyncCollaborationData = {
|
||||
collaboratorId: string;
|
||||
nodeId: string;
|
||||
workspaceId: string;
|
||||
role: string;
|
||||
deletedAt?: string | null;
|
||||
};
|
||||
|
||||
export type SyncNodeUpdateData = {
|
||||
id: string;
|
||||
nodeId: string;
|
||||
rootId: string;
|
||||
workspaceId: string;
|
||||
revision: string;
|
||||
data: string;
|
||||
createdAt: string;
|
||||
createdBy: string;
|
||||
};
|
||||
|
||||
export type BlockLeaf = {
|
||||
type: string;
|
||||
text?: string | null;
|
||||
attrs?: Record<string, unknown> | null;
|
||||
marks?: unknown[] | null;
|
||||
};
|
||||
|
||||
export type Block = {
|
||||
id: string;
|
||||
type: string;
|
||||
parentId: string;
|
||||
content?: BlockLeaf[] | null;
|
||||
attrs?: Record<string, unknown> | null;
|
||||
index: string;
|
||||
};
|
||||
|
||||
export type MessageAttributes = {
|
||||
type: 'message';
|
||||
subtype: 'standard' | 'question' | 'answer';
|
||||
name?: string;
|
||||
parentId: string;
|
||||
referenceId?: string | null;
|
||||
content?: Record<string, Block> | null;
|
||||
selectedContextNodeIds?: string[] | null;
|
||||
};
|
||||
@@ -0,0 +1,120 @@
|
||||
import { mkdtemp, rm } from 'node:fs/promises';
|
||||
import { tmpdir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { encodeAttributes, decodeAttributes } from '../src/crdt.js';
|
||||
import { buildHermesPrompt } from '../src/hermes.js';
|
||||
import { createReplyMutation } from '../src/mutations.js';
|
||||
import { processNodeUpdate, type NodeCache } from '../src/processor.js';
|
||||
import { StateStore } from '../src/state.js';
|
||||
import type { BlockLeaf, MessageAttributes, SyncNodeUpdateData } from '../src/types.js';
|
||||
|
||||
const botUserId = 'bot-user';
|
||||
|
||||
test('mention extraction gates replies and ignores non-mentioned messages', async () => {
|
||||
const env = await setupProcessor();
|
||||
await processNodeUpdate({
|
||||
...env,
|
||||
update: makeUpdate('msg1', 'human', messageAttrs('msg1', 'parent', [{ type: 'text', text: 'hello' }]))
|
||||
});
|
||||
assert.equal(env.created.length, 0);
|
||||
});
|
||||
|
||||
test('mentioned messages invoke Hermes and dedupe by source message id', async () => {
|
||||
const env = await setupProcessor();
|
||||
const update = makeUpdate('msg2', 'human', messageAttrs('msg2', 'parent', [
|
||||
{ type: 'mention', text: '@bot', attrs: { id: 'm1', target: botUserId } },
|
||||
{ type: 'text', text: ' please summarize this' }
|
||||
]));
|
||||
await processNodeUpdate({ ...env, update });
|
||||
await processNodeUpdate({ ...env, update });
|
||||
assert.equal(env.prompts.length, 1);
|
||||
assert.equal(env.created.length, 1);
|
||||
});
|
||||
|
||||
test('messages created by the bot are ignored even when they mention the bot', async () => {
|
||||
const env = await setupProcessor();
|
||||
await processNodeUpdate({
|
||||
...env,
|
||||
update: makeUpdate('msg3', botUserId, messageAttrs('msg3', 'parent', [
|
||||
{ type: 'mention', attrs: { id: 'm1', target: botUserId } }
|
||||
]))
|
||||
});
|
||||
assert.equal(env.created.length, 0);
|
||||
});
|
||||
|
||||
test('prompt includes safety instruction, mentioned message, and parent context', () => {
|
||||
const prompt = buildHermesPrompt({ messageText: 'Can you help?', parentText: 'Family logistics thread' });
|
||||
assert.match(prompt, /Colanode family message/);
|
||||
assert.match(prompt, /Do not reveal secrets/);
|
||||
assert.match(prompt, /Can you help\?/);
|
||||
assert.match(prompt, /Family logistics thread/);
|
||||
});
|
||||
|
||||
test('reply mutation encodes a decodable Colanode message attributes document', () => {
|
||||
const { mutation, nodeId } = createReplyMutation('parent-id', 'A helpful reply.', new Date('2026-01-01T00:00:00.000Z'));
|
||||
const data = mutationData(mutation).data;
|
||||
const attrs = decodeAttributes<MessageAttributes>(data);
|
||||
assert.equal(attrs.type, 'message');
|
||||
assert.equal(attrs.subtype, 'standard');
|
||||
assert.equal(attrs.name, 'Reyna Family Bot');
|
||||
assert.equal(attrs.parentId, 'parent-id');
|
||||
assert.equal(Object.values(attrs.content ?? {})[0]?.content?.[0]?.text, 'A helpful reply.');
|
||||
});
|
||||
|
||||
async function setupProcessor() {
|
||||
const dir = await mkdtemp(join(tmpdir(), 'bridge-test-'));
|
||||
const state = new StateStore(join(dir, 'state.json'));
|
||||
await state.load();
|
||||
test.after(async () => rm(dir, { recursive: true, force: true }));
|
||||
const prompts: string[] = [];
|
||||
const created: unknown[] = [];
|
||||
const cache: NodeCache = new Map([
|
||||
['parent', { id: 'parent', createdBy: 'human', attrs: messageAttrs('parent', 'thread', [{ type: 'text', text: 'Parent context' }]) }]
|
||||
]);
|
||||
return {
|
||||
botUserId,
|
||||
workspaceId: 'workspace',
|
||||
cache,
|
||||
state,
|
||||
hermes: { bin: 'hermes', timeoutMs: 1000, maxOutputBytes: 1000 },
|
||||
colanode: { createMessage: async (_workspaceId: string, mutation: unknown) => { created.push(mutation); } } as never,
|
||||
runHermesFn: async (prompt: string) => {
|
||||
prompts.push(prompt);
|
||||
return 'Hermes reply';
|
||||
},
|
||||
prompts,
|
||||
created
|
||||
};
|
||||
}
|
||||
|
||||
function makeUpdate(nodeId: string, createdBy: string, attrs: MessageAttributes): SyncNodeUpdateData {
|
||||
return {
|
||||
id: `${nodeId}-update`,
|
||||
nodeId,
|
||||
rootId: 'root',
|
||||
workspaceId: 'workspace',
|
||||
revision: '1',
|
||||
data: encodeAttributes(attrs as unknown as Record<string, unknown>),
|
||||
createdAt: new Date().toISOString(),
|
||||
createdBy
|
||||
};
|
||||
}
|
||||
|
||||
function messageAttrs(id: string, parentId: string, content: BlockLeaf[]): MessageAttributes {
|
||||
const blockId = `${id}-block`;
|
||||
return {
|
||||
type: 'message',
|
||||
subtype: 'standard',
|
||||
parentId,
|
||||
content: {
|
||||
[blockId]: { id: blockId, type: 'paragraph', parentId: id, index: 'a0', content }
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function mutationData(mutation: unknown): { data: string } {
|
||||
const outer = mutation as { data: { data: string } };
|
||||
return outer.data;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"lib": ["ES2022"],
|
||||
"types": ["node"],
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"outDir": "dist",
|
||||
"rootDir": "."
|
||||
},
|
||||
"include": ["src/**/*.ts", "test/**/*.ts"]
|
||||
}
|
||||
@@ -0,0 +1,767 @@
|
||||
---
|
||||
title: "The Pattern of Covenant Parenting — Bryan Hickman Teaching"
|
||||
status: active
|
||||
source: "NotebookLM book-style synthesis from audio recordings of Bryan Hickman's teaching sessions"
|
||||
tags:
|
||||
- parenting
|
||||
- covenant-parenting
|
||||
- church-teaching
|
||||
- family
|
||||
- discipleship
|
||||
- Bryan-Hickman
|
||||
- book-draft
|
||||
---
|
||||
|
||||
# The Pattern of Covenant Parenting
|
||||
|
||||
> **Source note:** This document preserves the supplied NotebookLM chapter synthesis from audio recordings of teaching given by Bryan Hickman. The chapter is stored verbosely for later development into parent-focused book content. Scripture quotations, interpretations, terminology, and practical recommendations below are retained as source material and have not been independently fact-checked or editorially revised.
|
||||
|
||||
## Chapter 0: Introduction — The Pattern of Covenant Parenting
|
||||
|
||||
The true purpose of child training is not to construct a superficial set of behavioral modifications or to simply "tweak" outward conduct [1, 113]. It is to lay a foundational, structural establishment in the heart of a child [1]. The ultimate goal of our instruction is to raise children who can transition cleanly into their own spiritual inheritance [1], as we are exhorted in 1 Timothy 1:5:
|
||||
|
||||
> "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith." [1]
|
||||
|
||||
Our target is to have children who seamlessly step into a personal relationship with their heavenly Father, and in that secure place, find their true Kingdom identity and walk out their designated Kingdom purpose in this generation [2, 48].
|
||||
|
||||
To build this foundation, we must first look at our own hearts [7, 195]. Child training is, in its deepest sense, a profound process of parent training [7, 169]. Parents are called to model the Father to their children [4]. Jesus did not come to earth merely to perform miracles, but to model what a son can do when entirely dependent upon his Father [3], living by the simple standard: "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." [3] In the eyes of a young child, the parent is effectively "God"—the ultimate representation of authority, love, and security [4]. This is a sobering reality [4].
|
||||
|
||||
The single most powerful force that will affect our children is for us to become obedient sons and daughters of God [5]. As we allow the Lord to heal our own brokenness, we grow in our reverence and fear of the Lord, gaining a strong confidence that creates a literal shield of security and a place of refuge for our households [7], as promised in Proverbs 14:26:
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [8]
|
||||
|
||||
This model of love requires a stable, unified household [24, 182]. A peaceful home is anchored in the absolute unity between husband and wife [18]. By maintaining a completely united front, parents protect their children from division and manipulation [18, 188]. Differing views on discipline must be discussed strictly in private, behind closed doors, so that the child always sees their parents standing as one [21, 186]. This horizontal peace is nurtured through intentional daily investments in the marriage relationship—such as the specific, daily appreciation of the thirty-day breakfast covenant [26, 204]—and a firm commitment to honor the scriptural command in Ephesians 4:26:
|
||||
|
||||
> "...do not let the sun go down on your anger." [28]
|
||||
|
||||
Within this safe ecosystem, correction becomes a beautiful act of redemption [14, 15]. Biblical training requires us to "narrow up" and straighten our children's paths [10], protecting them from the broad roads of worldly conformity [11], as warned in Matthew 7:13:
|
||||
|
||||
> "Enter through the narrow gate, for the gate is wide and the way is broad that leads to destruction, and there are many who enter through it." [11]
|
||||
|
||||
When disobedience occurs, we reject anger-driven reactions, emotional isolation, or lingering punishments [15, 16, 70]. Instead, we step into a private "correction room" of calm and ultimate reassurance [17, 70]. Using a gentle, limber switch produces a harmless, quick sting that instantly captures attention and pays the spiritual debt of disobedience [14, 15]. Guilt and shame are completely removed, and the child is immediately embraced by hands that are reserved exclusively for holding, hugging, and expressing love [14, 15].
|
||||
|
||||
This heart-level training is woven naturally into the practical affairs of daily life [34, 169]. It begins in infancy with simple, physical boundaries—such as blanket training [30]—that teach a child to listen to and obey the parent's voice [31]. We guard our children's minds from media systems designed to "tell their vision" [32]. We recognize the high calling of a mother's nurturing presence at home [33] and a father's mandate to "own his time" and be fully present [33]. We actively integrate our children into our daily chores, showing them that work is a natural, joyful expression of family life rather than a burden [34, 169].
|
||||
|
||||
Ultimately, we parent with a multi-generational vision [5]. We build and train our children as if the work will span multiple generations, serving God's purposes just as King David did [6]. We must be vulnerable enough to show our children that we are not perfect, teaching them to "cut the penny in half" [36]—setting the healthy expectation that while the Father is working to remove brokenness from our lives, they too will have their own portion to deal with under His sovereign hand [36].
|
||||
|
||||
As we maintain strict covenant priorities of God first, family second, and ministry third [37, 38], and rely on the wisdom of the local body [39], we achieve generational advancement [35]. The spiritual victories we win become the floor upon which our children stand, letting them stand on our shoulders and leap forward into their own divine destiny [35].
|
||||
|
||||
## Initial themes captured for future book development
|
||||
|
||||
- Child training as heart-level formation rather than external behavior modification.
|
||||
- The goal of instruction: love, a pure heart, a good conscience, and sincere faith.
|
||||
- Parents as models of the heavenly Father and as the first representation of authority, love, and security.
|
||||
- Parent training and healing as prerequisites for healthy child training.
|
||||
- Reverent fear of the Lord as a source of confidence and refuge for children.
|
||||
- Marital unity and a peaceful, stable household as the ecosystem for parenting.
|
||||
- Correction framed as redemption, reassurance, and restoration rather than anger, shame, or emotional isolation.
|
||||
- Daily household life—boundaries, media, presence, chores, and work—as the setting for discipleship.
|
||||
- Multi-generational vision: children standing on the spiritual victories of their parents and advancing into their own calling.
|
||||
- Covenant priorities: God first, family second, ministry third.
|
||||
- Vulnerability and parental humility concerning the ongoing work of healing and brokenness.
|
||||
|
||||
## Editorial and pastoral review flags for later work
|
||||
|
||||
- Preserve the distinction between the chapter's source claims and later editorial interpretation.
|
||||
- Verify all Scripture references and quotations against the intended Bible translation before publication.
|
||||
- Carefully review and contextualize the chapter's physical-discipline recommendations, including the references to a "limber switch," "blanket training," and a "correction room," before sharing this material with parents or adapting it for church use.
|
||||
- Consider adding age-appropriate, safety-conscious, non-violent alternatives and pastoral guidance in the final parent resource.
|
||||
- Clarify the meaning and practical method of the "thirty-day breakfast covenant" when the relevant chapter or recording context is available.
|
||||
- Clarify the phrase "cut the penny in half" and preserve its original illustration/context when later chapters provide it.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 1: The Foundations of Modeling & Multi-Generational Vision
|
||||
|
||||
> **Source note:** This chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. Scripture quotations, interpretations, terminology, and practical recommendations have not been independently fact-checked or editorially revised.
|
||||
|
||||
### The Ultimate Goal of Training
|
||||
|
||||
The true purpose of child training is not to construct a superficial set of behavioral modifications or to simply "tweak" outward conduct. It is to lay a foundational, structural establishment. Specifically, the ultimate goal is to raise children who can transition cleanly into their own spiritual inheritance. As the scriptures state in 1 Timothy 1:5:
|
||||
|
||||
> "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith."
|
||||
|
||||
Our target is to have children who seamlessly step into a personal relationship with their heavenly Father, and in that place find their Kingdom identity and faithfully walk out their Kingdom purpose in this generation. [7]
|
||||
|
||||
The transition from childhood through adolescence is intended by God to be a seamless, direct journey into relationship with the Father [17, 18]. Society has largely convinced itself that teenagers must undergo a painful, mandatory phase of rebellion simply because they do not know what else to do [17]. However, this expectation is a deception that lowers our standards and shapes our actions toward failure [17]. God’s design is for children to move directly from childhood into a vibrant, personal relationship with Him [17, 18].
|
||||
|
||||
### Jesus as the Ultimate Model
|
||||
|
||||
To understand how to train children, we must first look at Jesus. Jesus did not come to earth merely to perform miracles or display His divinity; rather, He came to model what a son can do when entirely dependent upon his Father [11, 12]. He walked out His earthly life as a man, not as God, to demonstrate that obedience is fully possible for a heart surrendered to the Father [12]. He lived by a simple, profound standard:
|
||||
|
||||
> "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." [12, 23]
|
||||
|
||||
Just as Jesus modeled sonship for us, parents are called to model the Father to their children [12]. In the eyes of a young child, the parent is effectively "God"—the ultimate representation of authority, love, and security in their life [15]. This is a sobering reality [13, 15]. Parents have both the privilege and the solemn responsibility to demonstrate face-to-face what a loving Father and Mother are like until the child reaches an age of spiritual understanding where that devotion is transitioned to the Lord [15].
|
||||
|
||||
The single most powerful force that will affect your children is for you, the parent, to become an obedient son of God [14]. Because parents are always modeling, every reaction—even after a hard day when we are on edge—sets an example [13]. We cannot expect our children to walk in instant obedience to our voice if we ourselves are not walking in instant obedience to the voice of our heavenly Father [13].
|
||||
|
||||
### Building for Generations
|
||||
|
||||
To parent effectively, we must reject short-sightedness and adopt a multi-generational vision [8, 9, 10]. We see the danger of passivity illustrated in the history of the Church. During the "Jesus movement" of the 1970s, a wave of believers dropped out of school and stopped preparing for the future under the premise that "Jesus is coming back" [9]. Because they failed to build for the next generation, the world quickly stepped in and took over every major institution [9].
|
||||
|
||||
Conversely, if we believe that the Kingdom will be fully established only in our lifetime, we risk failing to prepare our children for the long-term work [9]. While we must always look for the "end suddenly," we must build and train our children as if the work will span multiple generations [9, 10]. We are not going to build it all in our lifetime; our task is to raise up the little ones placed in our hands so that they will be faithful to God's purposes in their own generation [7]. As Acts 13:36 records of King David:
|
||||
|
||||
> "For David, after he had served God's purposes in his own generation, fell asleep and was laid among his fathers and underwent decay." [7]
|
||||
|
||||
### Healing the Parents First
|
||||
|
||||
Because children copy what we model, the child training process is, in reality, a parent training process [15, 128]. If we carry unresolved brokenness, anger, or fear, we will pass those patterns down [15, 46]. Allowing the Lord to heal us requires deep humility and submission, but it is the greatest gift we can offer our children [15]. As we grow in our reverence and fear of the Lord, we gain a strong confidence that creates a literal shield of security and a place of refuge for our households [16]. This is beautifully promised in Proverbs 14:26:
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [16]
|
||||
|
||||
When we allow the Lord to deal with our own deep-seated insecurities, we achieve what is called "generational advancement" [46, 47, 161, 162]. Children who are raised in an atmosphere of genuine spiritual security do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome [46, 47, 162]. Instead, they get to stand on their parents' advancements and leap forward into their own destiny [46, 162]. This establishes the foundation for the lifelong training command found in Proverbs 22:6:
|
||||
|
||||
> "Train up a child in the way that he should go, and even when he grows old, he will not abandon it." [16]
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- The intended goal of training is a child's personal relationship with the heavenly Father, Kingdom identity, and Kingdom purpose—not merely compliant behavior.
|
||||
- Adolescence is presented as a potential continuation of relationship with God rather than an inevitably rebellious stage.
|
||||
- Jesus is presented as the ultimate model of dependent sonship and surrendered obedience.
|
||||
- Parents model constantly; their reactions under pressure are formative just as much as their deliberate instruction.
|
||||
- Parent healing and obedience are central to breaking the transmission of fear, anger, insecurity, and family brokenness.
|
||||
- Multi-generational parenting requires building for a future beyond the parents' own lifetime.
|
||||
- "Generational advancement" describes children standing on the spiritual and relational progress of their parents.
|
||||
- The chapter connects parental modeling, healing, refuge, and lifelong formation with Proverbs 22:6.
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify the Scripture quotations and references, including the intended Bible translations.
|
||||
- Preserve the distinction between the teaching's theological claims and later editorial commentary.
|
||||
- The historical claim concerning the 1970s Jesus movement should be sourced or qualified if included in a published edition.
|
||||
- The claim that rebellion is not an inevitable feature of adolescence should be presented pastorally and carefully, acknowledging individual development, temperament, disability, trauma, and family context.
|
||||
- Clarify the phrase "until the child reaches an age of spiritual understanding" and how the teaching defines that transition.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 2: Redemptive Correction: Straightening the Path with Love
|
||||
|
||||
> **Source note:** This chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. Scripture quotations, interpretations, terminology, and practical recommendations have not been independently fact-checked or editorially revised. The physical-discipline material is retained for source fidelity and is not an endorsement or safety determination.
|
||||
|
||||
### "Narrowing Up" vs. The Demand for "Experiences"
|
||||
|
||||
Scripture defines training a child through the Hebrew lens of "dedicating, disciplining, narrowing up, or choking out" [18]. It means to straighten a child's path, protecting their outlook, behavior, ideals, views, and influences from being overwhelmed by the weeds of the world [18]. This directly contradicts modern humanistic reasoning, which insists children must be given broad "experiences" to discover themselves [19]. This humanistic philosophy is a widening of the way, which the Bible explicitly warns against in Matthew 7:13:
|
||||
|
||||
> "Enter through the narrow gate, for the gate is wide and the way is broad that leads to destruction, and there are many who enter through it." [19]
|
||||
|
||||
Parents are given the responsibility to shape their children's minds and protect them from worldly conformity [18, 21]. As Romans 12:2 charges us:
|
||||
|
||||
> "And do not be conformed to this world, but be transformed by the renewing of your mind, so that you may prove what the will of God is, that which is good and acceptable and perfect." [21]
|
||||
|
||||
The renewal of the child's mind is a task delegated directly to the parents [21, 22]. It requires parents to actively narrow up their child's path, choosing carefully what enters their hearts and minds rather than letting them wander broad roads of secular influence [18, 22].
|
||||
|
||||
### Debunking the Myth of Adolescent Rebellion
|
||||
|
||||
A cornerstone of modern parenting is the belief that teenagers must naturally go through a painful, dramatic season of rebellion [17]. We are told this is just a normal developmental phase [17]. However, this expectation is a deceptive lie that shapes our thoughts and actions toward failure [17].
|
||||
|
||||
In God's design, there is no mandatory period of rebellion [17]. The scriptural transition from childhood to maturity is intended to be a seamless progression directly into a personal relationship with the Father [17, 18]. When boundaries are clearly laid and maintained with love, teenagers do not have to wander into rebellion; they can walk straight from parental guidance into divine devotion [17, 18].
|
||||
|
||||
### The Mechanics of Correction: The Switch and the Loving Hand
|
||||
|
||||
To remove the foolishness that is naturally bound up in a young heart, God has provided specific, loving tools [23, 24]. As Proverbs 22:15 states:
|
||||
|
||||
> "Foolishness is bound up in the heart of a child. The rod of discipline will remove it far from him." [24]
|
||||
|
||||
Scripture is rich with wisdom regarding the diligent application of this rod of reproof:
|
||||
|
||||
- **Proverbs 13:24:** "He who withholds the rod hates his son, but he who loves him disciplines him diligently." [25]
|
||||
- **Proverbs 19:18:** "Discipline while there's hope, and do not desire his death." [25]
|
||||
- **Proverbs 29:15:** "The rod of reproof gives wisdom, but a child who gets his own way brings shame to his mother." [25]
|
||||
- **Proverbs 29:17:** "Correct your son and he will give you comfort. He will also delight your soul." [25, 26]
|
||||
|
||||
While humanism rejects these commands or distorts them into abuse, biblical correction is defined by tenderness and absolute control [26, 28, 29]. In our home, we established a strict physical boundary: our hands were made exclusively for holding, hugging, and expressing love [26, 29, 31]. We never used our hands to strike a child, nor did we use heavy, rigid tools like belts or wooden spoons, which can cause physical harm or anger [26].
|
||||
|
||||
Instead, the biblical "rod" refers to a tender, limber shoot or reed—such as a small lilac switch (roughly a quarter of an inch or smaller) with shaved bumps [27, 117]. This tool is designed to produce a quick, harmless sting on the bottom or thigh that instantly captures the child's attention without ever causing physical damage [26, 27, 118].
|
||||
|
||||
Crucially, this physical correction serves a redemptive spiritual purpose: it completely removes guilt and shame [26]. When a child is corrected, the spiritual debt of their disobedience is paid instantly [26, 30]. There is no lingering condemnation, no standing in corners, and no emotional isolation [26, 29, 30]. Once corrected, the child is immediately embraced, loved, and restored to perfect right standing within the home [26, 29, 30].
|
||||
|
||||
### The Rule of Calmness: Correcting Without Anger
|
||||
|
||||
Scripture issues a vital warning to fathers in Ephesians 6:4:
|
||||
|
||||
> "Fathers, do not provoke your children to anger, but bring them up in the discipline and instruction of the Lord." [22]
|
||||
|
||||
A parent must never, under any circumstance, correct a child while feeling angry, agitated, or on edge [26, 29, 53, 54]. Correcting in anger is not biblical discipline; it is an expression of the parent's lack of self-control [54]. It models anger to the child, which violates our primary calling as models of the Father [54].
|
||||
|
||||
If you find yourself becoming agitated or losing your emotional composure during a correction, you must stop immediately [29, 54]. It is far better to let an act of disobedience go uncorrected in that moment than to correct your child in anger [54]. The parent must first go before the Lord, find peace, and handle the situation only when they can do so with a calm voice, a peaceful facial expression, and a tender heart [29, 52, 53, 54].
|
||||
|
||||
### The Correction Room: Restoring Dignity in Private
|
||||
|
||||
To preserve a child's security and dignity, correction must never be a public spectacle [116]. It should not be done in front of guests, siblings, or in public places [34, 116].
|
||||
|
||||
Instead, correction should take place in a private, designated area—such as a bedroom or bathroom [29, 116]. This private environment—the "correction room"—is a place of calm, reassurance, and ultimate security [29, 116]. By keeping correction private, we honor our children, shield them from public embarrassment, and ensure that the process remains a tender, focused interaction of restoration between parent and child [29, 116].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- "Narrowing up" is presented as intentional formation and protection of a child's heart, mind, influences, ideals, and direction.
|
||||
- The chapter contrasts parental formation with a philosophy of broad, unbounded experience and self-discovery.
|
||||
- Adolescent rebellion is presented as neither inevitable nor divinely required.
|
||||
- Correction is framed as a redemptive process intended to remove shame, restore relationship, and return the child to belonging within the household.
|
||||
- The source teaching emphasizes calmness, self-control, privacy, and immediate reassurance during correction.
|
||||
- The chapter distinguishes the source's preferred correction tool from striking with hands or using heavy, rigid objects.
|
||||
- Private correction is connected to the preservation of a child's dignity and security.
|
||||
|
||||
### Editorial, safeguarding, and pastoral review flags
|
||||
|
||||
- Verify all Scripture references, wording, and translation choices before publication.
|
||||
- The teaching's interpretation of the Hebrew concept translated as "train" and its use of terms such as "narrowing up" or "choking out" should be checked against reputable Hebrew lexicons and the original recording context.
|
||||
- The claims about adolescent rebellion, humanism, and the history of parenting should be framed as the speaker's theological and cultural argument rather than presented as settled developmental or historical fact.
|
||||
- The physical-discipline recommendations require careful safeguarding review before any public distribution. Do not present a thin implement, a specific body location, or a claimed "harmless" sting as universally safe; laws, professional guidance, child age, disability, trauma history, and individual circumstances vary.
|
||||
- For a parent-facing publication, prioritize non-violent, developmentally appropriate correction and include clear guidance for pausing, de-escalating, seeking help, and protecting children from injury or fear.
|
||||
- The phrase "spiritual debt ... paid instantly" should be examined theologically and pastorally so that children are not taught that physical pain is required to obtain forgiveness, belonging, or restored relationship.
|
||||
- Clarify what safeguards make a private correction setting genuinely safe and accountable, especially when the child is isolated with an adult.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 3: Parental Unity & the Atmosphere of the Home
|
||||
|
||||
> **Source note:** This chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. Scripture quotations, interpretations, terminology, marriage teaching, and practical recommendations have not been independently fact-checked or editorially revised.
|
||||
|
||||
### The Principle of a Unified Front
|
||||
|
||||
A central pillar of a peaceful home is the absolute, seamless unity between husband and wife [159]. Parents must understand that children are highly astute observers; they are experts at sensing any lack of alignment and will naturally seek to exploit any crack to sow division or pit one parent against the other [159, 164].
|
||||
|
||||
To prevent this, parents must maintain a completely united front [159]. In our home, we established a simple but powerful protocol. Whenever a child approached one parent asking for a treat, more television time, or a specific permission, the immediate response was always:
|
||||
|
||||
> "What did Dad say?" or "What did Mom say?" [168, 169]
|
||||
|
||||
If the other parent had already given an answer, the discussion was instantly over [169]. The parent receiving the second appeal would simply state, "Well, there is your answer," ensuring that the child’s attempt to bypass authority was met with a solid wall of parental agreement [169]. This level of consistency and predictability is not a rigid, legalistic exercise; rather, it provides children with an immense sense of security because they know exactly where the boundaries stand [47, 62, 185].
|
||||
|
||||
### Private Alignment over Public Disagreements
|
||||
|
||||
Maintaining a united front means that parents must make a covenant never to disagree, correct, or expose each other's faults in front of their children [162, 163, 164]. Doing so publicizes division and teaches children how to manipulate their parents, which ultimately tears down the spiritual authority of the home [164].
|
||||
|
||||
Inevitably, there will be moments when one parent observes their spouse making a decision or handling a disciplinary situation in a way they wouldn't have chosen [169, 170]. The natural temptation is to immediately step in and express "wisdom" or correct the spouse on the spot [170]. This is a critical mistake [170].
|
||||
|
||||
When you feel that irritation rise, you must first deal with your own internal reaction [170]. In front of the children, you must completely support your spouse's decision [162, 163]. Any adjustments, differing views, or scale of discipline must be discussed strictly in private, behind closed doors [162]. In our home, if Deanna handled a situation and I disagreed with the method, we would discuss it privately later so that we could align our hearts before the Lord, but the child always saw us standing as one [55, 162].
|
||||
|
||||
### Healing the Crack: Humility and Restoration
|
||||
|
||||
Because parents are human, there will be times when they fail to maintain this standard and inadvertently display division or disrespect in front of the child [167]. When this happens, it must be corrected immediately in the spirit of humility [164, 166].
|
||||
|
||||
First, the parents must align privately [164]. The offending parent should go to their spouse and say:
|
||||
|
||||
> "Cariño, lo siento. I realize that I made you look bad in front of the child, and I repent." [164]
|
||||
|
||||
Second, depending on the situation, it is often necessary to go directly to the child to model genuine repentance and restore the standard of honor [164, 165]:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. The Lord is working in my heart, and I cannot make an excuse for what I did. I want to apologize to you for deshonrar (dishonoring) them in front of you, because they deserve honor." [165]
|
||||
|
||||
There is extraordinary, transformative power when a parent is willing to be authentic and humble before their children [166]. It models a soft, teachable heart and teaches children how to walk out repentance in their own lives [166].
|
||||
|
||||
### Atmosphere of Peace and Order
|
||||
|
||||
The physical environment of the home directly affects its spiritual atmosphere [157, 159]. A clean, orderly house is a powerful catalyst for a home filled with peace [159]. When a mother takes joy and satisfaction in nurturing and keeping the home, and the husband actively notices, appreciates, and verbalizes his gratitude, it weaves a beautiful bond of peace over the entire household [159, 160].
|
||||
|
||||
This atmosphere also requires parents to be highly sensitive to one another's limits [160]. Parenting is a demanding, daily labor, and there are times when "too much is too much" and one spouse is exhausted or on edge [143, 160]. In those moments of high stress, the other spouse must be ready to step in, "take the ball," and cover for them [48, 160]. This mutual support ensures that correction is never administered out of exhaustion or emotional agitation [48, 71, 185].
|
||||
|
||||
### Nurturing the Marriage: Horizontal and Vertical Communication
|
||||
|
||||
We must recognize that child training is not an isolated task; it is completely interwoven with every other area of family life, particularly the marriage relationship [157, 158]. If there is no peace between husband and wife, it is impossible to have lasting peace in training the children [158].
|
||||
|
||||
Healthy communication requires us to stop simply waiting for our turn to speak so we can make our own point, and instead learn to truly listen to one another’s hearts [171, 172]. This communication must be intentionally nurtured [173].
|
||||
|
||||
To build this horizontal connection, we must make constant, deliberate "positive deposits" into our spouse's emotional bank account [181, 182]. As the proverb of the household says, if you put a coin in the piggy bank every single day, it will eventually be filled [182].
|
||||
|
||||
A highly practical and transformative exercise for married couples is to commit to a 30-day breakfast covenant [180]. For thirty consecutive days, sit down together for breakfast, and each day, make a specific, intentional positive deposit by telling your spouse one thing you sincerely estimate and appreciate about them [180, 181].
|
||||
|
||||
For husbands, this requires stepping away from vague, general statements like "You know I love you" or "You look good," and instead sharing specific, particular details of appreciation [183]. For wives, it means actively finding ways to make their husbands feel proud and respected, rather than assuming they only need to receive appreciation without giving it [183, 184]. This intentional focus changes the entire climate of the home because, as Scripture principles teach:
|
||||
|
||||
> "Buscad y hallaréis (Seek and you will find)." [181]
|
||||
|
||||
If you look for faults, you will surely find them; but if you intentionally seek the good in your spouse, you will find it and multiply it [181].
|
||||
|
||||
### The Covenant Rule: Never Go to Bed Angry
|
||||
|
||||
To safeguard the home's atmosphere, couples must establish a firm covenant line that they resolve never to cross [180]. Chief among these is the scriptural command:
|
||||
|
||||
> "...do not let the sun go down on your anger." [180]
|
||||
|
||||
In our thirty-seven years of marriage, we decided we would never go to sleep angry with one another [174, 177]. If a disagreement arose, we would take a "time out" to pray individually, allowing the Lord to deal with our own hearts first [175]. Then, we would return, ask for forgiveness where we had failed, and pray together [178]. We did not always agree on the specific point of contention immediately, but we agreed on God and gave Him the place of preeminence in our marriage [178].
|
||||
|
||||
As a husband, the Lord taught me that I must function as the priest of my home [177]. When my wife made a mistake or did something wrong, the Lord would use it to deal with me first, instructing me to carry the burden, be silent, and go to the cross for her just as Christ did for the Church [177]. When both husband and wife surrender their right to be right and prioritize the covenant, they establish a secure spiritual foundation that their children will naturally inherit, creating a magnificent generational advancement [8, 178, 179].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Parental unity is presented as a source of security, predictability, and authority within the home.
|
||||
- The chapter emphasizes checking with the other parent rather than allowing children to bypass a previously given answer.
|
||||
- Disagreements about decisions or discipline are to be handled privately rather than displayed before the children.
|
||||
- When parents fail publicly, immediate humility, apology, and restoration are presented as a model of repentance.
|
||||
- Household order, appreciation, mutual awareness, and practical support are connected to a peaceful atmosphere.
|
||||
- Marriage communication is framed as intentional listening and the repeated making of positive relational deposits.
|
||||
- The 30-day breakfast covenant is presented as a concrete practice of daily appreciation.
|
||||
- The command not to let the sun go down on anger is applied as a marriage covenant of prayer, forgiveness, and reconciliation.
|
||||
- The chapter presents parental surrender, marital covenant, and generational advancement as closely connected.
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, and the Spanish phrase “Buscad y hallaréis” before publication.
|
||||
- Preserve the distinction between the teaching's source claims and later editorial interpretation.
|
||||
- Clarify the difference between healthy parental unity and coercive control. A united front should not require a parent to conceal abuse, unsafe conduct, serious error, or a child's legitimate disclosure.
|
||||
- Children should be able to speak safely with either parent. The “What did Dad/Mom say?” practice should not be used to shut down questions, conceal a mistake, or prevent a child from reporting harm.
|
||||
- The instruction to support a spouse publicly and resolve disagreements privately needs explicit safeguarding exceptions for abuse, intimidation, coercive control, threats, or unsafe discipline. In those situations, protecting the child and seeking qualified help takes priority over preserving appearances.
|
||||
- The chapter's gendered descriptions of mothers nurturing the home, husbands leading as “priest,” and wives making husbands feel proud should be identified as the speaker's marital framework rather than treated as the only faithful model for every family.
|
||||
- “Never go to bed angry” should be presented with room for healthy time-outs, sleep, boundaries, and professional help; immediate resolution is not always safe or wise during escalation.
|
||||
- Clarify the meaning, origin, and practical structure of the 30-day breakfast covenant when the original recording context is available.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 4: Guarding Influences & Practical Daily Wisdom
|
||||
|
||||
> **Source note:** This chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. Scripture references, interpretations, terminology, role descriptions, and practical recommendations have not been independently fact-checked or editorially revised. The blanket-training and physical-correction material is retained for source fidelity and is not an endorsement or safety determination.
|
||||
|
||||
### Textile Boundaries & Early Training
|
||||
|
||||
To train a child to listen to their parents' voices, training must begin in infancy with simple, knowable boundaries. Rather than overwhelming a toddler with a laundry list of hundreds of rules that they are incapable of following, parents should establish a few select, physical boundaries [72, 73].
|
||||
|
||||
A highly practical and successful method for this is blanket training [73]. Spreading a small blanket on the floor, the parent instructs the infant (typically starting around six to nine months of age):
|
||||
|
||||
> "I don't want you going off of that." [73]
|
||||
|
||||
Inevitably, the child's curiosity or old nature will lead them to test the boundary and attempt to crawl off [73, 79, 80]. In that moment, the parent administers a light, instant correction—such as a gentle tap on the hand—and places them back on the blanket, reinforcing the instruction [73]. Within just a few repetitions, the infant learns to associate their disobedience with the immediate correction and willingly remains within the border [73].
|
||||
|
||||
The goal of this training is not merely to restrict the child's movement or to protect household furniture, such as a coffee table [73]. Rather, it is to train the child to listen to and obey the parent's voice [73]. These physical boundaries provide children with immense security [74]. Just as the Lord establishes boundaries for our lives to keep us secure, clear boundaries in the home let children know exactly what is acceptable, preventing a frantic, heavily policed household and fostering an environment of deep spiritual peace [73, 74, 112].
|
||||
|
||||
### Guarding the Mind: "Tell-a-Vision" and Media
|
||||
|
||||
In a modern world saturated with technology, parents must exercise extreme vigilance regarding television, tablets, and media [115, 116]. The world's media system is highly intentional; it is designed with specific "channels" and "programming" to literally "tell your vision"—shaping the ideals, desires, and minds of children away from the Kingdom of God [116].
|
||||
|
||||
Allowing a television or a tablet to act as a surrogate parent is a dangerous convenience [116]. It acts as a deliberate distraction designed by the adversary to draw parents away from their greatest earthly blessing and responsibility: actively training their children [116]. While completely avoiding media in today's society is a challenge, limiting it strictly produces extraordinary, healthy fruit [115, 116]. By closing the door to secular programming, we prevent the enemy from exploiting gaps in our children's security and instead keep their minds pure and focused on the atmosphere of the home [105, 116].
|
||||
|
||||
### Nurturing, Presence, and Owning Your Time
|
||||
|
||||
Effective child training cannot be outsourced; it is a precious gift and responsibility given directly by God to the parents [114, 118]. This training requires physical and mental presence [52]. You cannot train up a child in the way they should go if you are not there to walk beside them [52, 118].
|
||||
|
||||
This truth carries profound implications for the roles of both the mother and the father:
|
||||
|
||||
#### The Mother as the Nurturer
|
||||
|
||||
A mother's primary calling in most circumstances is to stay home, keeping the house and nurturing the family [117, 166]. In this sacred role, she fulfills her God-given ability to multiply [117, 118]. When a husband brings home a paycheck, the wife multiplies it into food and a meal; when provided a house, she multiplies it into a warm, peaceful home [118]. The work a mother does in the home far surpasses any secular career or paycheck [117, 118, 166]. Husbands must actively celebrate, honor, and protect this role rather than allowing the diabolical wisdom of the world to demean it [117, 118, 166].
|
||||
|
||||
#### The Father as the Provider of Time
|
||||
|
||||
For a mother to stay home, the father must be willing to step outside of the conventional worldly system to prioritize his family [120]. The Lord gave a specific word of wisdom: "Own your time." [120]. Fathers must seek the Lord for creative strategies to free up their schedules so they can be available, present parents [120]. This may mean starting a simple business or adjusting financial expectations to avoid the diabolical trap of Egypt, which demands two incomes and keeps parents too busy making bricks to build the family altar [117, 119, 120].
|
||||
|
||||
### Integrating Children into Daily Work
|
||||
|
||||
A common mistake parents make is separating their daily lives into strict categories of "work" (which is treated as a burden to be done alone) and "fun" (which is treated as the only desirable activity) [157]. While it is often faster and easier for a parent to paint a wall, do the dishes, or fold the laundry by themselves, this misses a critical opportunity for training [157].
|
||||
|
||||
Parents should actively integrate their children into all the affairs of daily life [115, 157]. Give an eight-year-old a paint roller and teach them how to paint; let the toddlers help push the buttons on the washing machine or play in the sink while doing dishes [157]. When children are included in these tasks, they do not grow up hating work or viewing it as an awful chore [157]. Instead, they learn that work is a natural, joyful expression of family life [157]. Ultimately, children do not need constant, artificial entertainment; they simply want to be with their parents, and sharing in daily labor bonds the family together in purpose [157].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Early training is presented as the establishment of a small number of clear, physical, understandable boundaries rather than an overwhelming list of rules.
|
||||
- The source teaching uses blanket training as an example of teaching an infant to respond to a parent's voice and remain within a defined boundary.
|
||||
- Boundaries are framed not only as restrictions but also as sources of security, predictability, and peace.
|
||||
- Media is presented as a formative influence that can shape a child's imagination, desires, ideals, and worldview.
|
||||
- The chapter calls parents to intentional presence rather than allowing devices to become surrogate caregivers.
|
||||
- The teaching presents a home-centered maternal role and a time-owning, financially creative paternal role as its preferred family framework.
|
||||
- Children are encouraged to participate in ordinary household work so that labor becomes a joyful expression of family life rather than an isolated burden.
|
||||
- Family presence and shared work are presented as more formative than constant artificial entertainment.
|
||||
|
||||
### Editorial, developmental, and safeguarding review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, and word-study claims before publication.
|
||||
- Confirm whether the chapter title “Textile Boundaries” is the intended wording or whether it refers specifically to blanket/physical boundaries; preserve the supplied title until the recording context is available.
|
||||
- The blanket-training example involves an infant, physical correction, and a potentially hazardous environment. Before any parent-facing use, consult current pediatric, child-safety, and safeguarding guidance; do not reproduce the method as a universal instruction or imply that a “gentle tap” is necessary for learning obedience.
|
||||
- Any early-childhood boundary practice should prioritize supervision, childproofing, developmentally appropriate expectations, non-violent redirection, and prevention of falls or access to unsafe objects. Infant behavior and repeated boundary-testing are normal developmental processes, not proof of an “old nature.”
|
||||
- The language that media is designed by “the adversary,” tells a child’s vision, or necessarily displaces parental responsibility should be identified as the speaker's theological framing. A final resource should distinguish thoughtful media guidance from fear-based claims and acknowledge educational, relational, accessibility, and family-context differences.
|
||||
- The claims that child training cannot be outsourced and that mothers should ordinarily stay home should be presented as the teaching's family model, not as a universal measure of faithfulness or parental love. Account for single parents, dual-income households, adoptive and foster families, disability, illness, economic necessity, education, cultural context, and families with different vocational callings.
|
||||
- The language about two incomes, Egypt, and “making bricks” should be retained as source imagery but carefully contextualized so financial hardship is not treated as a moral failure and so the final book does not impose unsafe or unrealistic economic expectations.
|
||||
- When children participate in household work, include age-appropriate supervision and safety precautions. Paint, appliances, hot water, sinks, tools, chemicals, ladders, and other household hazards require adult judgment.
|
||||
- Clarify what “own your time” means in practical, sustainable terms and avoid presenting entrepreneurship or schedule changes as guaranteed solutions for every family.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 5: Generational Advancement & the Covenant Family
|
||||
|
||||
> **Source note:** This chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. Scripture references, interpretations, terminology, family structures, and practical recommendations have not been independently fact-checked or editorially revised.
|
||||
|
||||
### The Principle of Generational Advancement
|
||||
|
||||
A primary objective of the covenant family structure is what we call "generational advancement" [8, 178, 179]. This means that the spiritual victories, emotional healing, and behavioral discipline established by the parents become the floor upon which the children stand [8, 46, 162]. Because children raised in a genuinely secure, peaceful environment do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome, they are uniquely positioned to stand on their parents’ advancements and leap forward into their own divine destinies [8, 46, 162].
|
||||
|
||||
Our children still have their own struggles and areas of life that the Lord must work on [81]. This is a beautiful and necessary reality because everyone needs something in their life that forces them to cry out to the Lord and depend on Him [81]. However, generational advancement ensures that they do not start from scratch; they start from a position of inherited spiritual security [8, 46, 162].
|
||||
|
||||
### "Cutting the Penny in Half"
|
||||
|
||||
To keep our children from expecting perfection from us—while still keeping them engaged in the process of growth—we taught them a foundational concept [82]. When our daughters were around seven to nine years of age, we sat down for a teaching moment and told them [82]:
|
||||
|
||||
> "Girls, listen. Mom and I are going to be able to cut this penny in half. All this stuff on this half of the penny, the Father is going to work with us to remove it from our lives. But there is still going to be half of a penny left for you to deal with in your own life. And then you are going to have children, and you are going to cut that penny in half again. But you will always have half of the half that remains. Why? Because the Father needs to be sovereign to your children, and He will be." [82]
|
||||
|
||||
This simple, powerful teaching set a healthy expectation within our home [82]. Our daughters did not expect us to be flawless, perfect parents, but they constantly saw us leaning into the Lord, seeking His face, and working to deal with our own "half of the penny" [82]. This vulnerability and transparency created a beautiful, authentic environment where the entire family advanced together before the Lord [82].
|
||||
|
||||
### Covenant Priorities: God, Family, and Ministry
|
||||
|
||||
In establishing a stable, secure home, parents must walk in strict alignment with God's divine order of priorities [131]. We are firm believers in a covenant hierarchy that must never be compromised [131]:
|
||||
|
||||
1. **God First**
|
||||
2. **Family Second**
|
||||
3. **Ministry Third**
|
||||
|
||||
Tragically, when this order is inverted, the home suffers immensely [131]. We see this manifest in the lives of many "preacher's kids" who grow up bitter and distant from the Lord because their parents prioritized public ministry or the affairs of the church over the spiritual and emotional security of their own household [131]. Even for those carrying a powerful ministerial anointing, fathers must seek the Lord for the creative wisdom and divine provision necessary to protect their family time [131]. We must lift our vision higher to see that our children are our primary, most significant ministry [41, 131].
|
||||
|
||||
### Relying on the Greater Body
|
||||
|
||||
No family is designed to function as an isolated island. Part of walking in the covenant is recognizing that you are not alone when you are parenting [133]. The Lord has intentionally structured the Body of Christ so that you have older, more mature people around you who have been given pastoral or apostolic responsibility over your life to speak wisdom, correction, and guidance into your household [133].
|
||||
|
||||
Furthermore, parents must actively teach and model honor for others [134]. In our home, we wanted our daughters to know that they were not restricted to only receiving help from us [134]. We gave them explicit permission that if they ever felt they needed outside spiritual help or counseling, they had the freedom to reach out directly to our trusted leaders and spiritual counselors [134]. By removing the fear of being threatened by outside help, we established a network of absolute security around our daughters [132, 134]. They grew up knowing that if Mom and Dad were struggling, there was a safe, ordained place in the local headship where help, restoration, and life-giving counseling could be found [133].
|
||||
|
||||
### Blended Families and Late Starts: Rebuilding the Foundation
|
||||
|
||||
We frequently meet parents who are entering the child training journey late—whether because they have recently come to know the Lord after their children are older, or because they are navigating the unique complexities of a blended family [147, 148]. In these situations, parents often ask how they can remove old, ungodly foundations that were laid before they entered the picture [147].
|
||||
|
||||
In these cases, the primary strategy is to become the model of the Father's love in their presence [148]. Walk before them as a consistent, unshakeable, secure place that they can count on day in and day out [148].
|
||||
|
||||
If you are dealing with older children where the primary training window has passed, look backward to see if there are any broken bridges of trust [148]. Seek the Lord and ask yourself: “Have I ever made any promises to my children that I have not kept?” [148]
|
||||
|
||||
If the answer is yes, you must do whatever it takes—no matter how difficult or costly to your finances—to keep your word and fulfill those promises [148]. This act of sacrificial integrity sends a powerful message that you are a parent of truth, modeling the covenant-keeping nature of our heavenly Father [148]. Combine this with doing extraordinary, unexpected things to display your love, and stay closely submitted to your local spiritual headship, who can help navigate the specific nuances of your household [148]. The Lord’s grace is fully sufficient to heal, restore, and rebuild the foundations of any home that yields completely to His pattern [148].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Generational advancement is presented as children inheriting a foundation of spiritual security, emotional healing, and parental growth rather than having to begin from the same level of brokenness.
|
||||
- The “cutting the penny in half” illustration gives children permission to see parental imperfection while also seeing parents actively submit their lives to God’s transforming work.
|
||||
- The teaching holds together two ideas: parents can remove or reduce patterns of brokenness, while children still have their own agency, struggles, and relationship with God.
|
||||
- The proposed covenant priority is God first, family second, and ministry third.
|
||||
- Children are presented as a primary ministry and a responsibility that should not be sacrificed to public ministry demands.
|
||||
- Parenting is framed as a communal responsibility in which mature, trusted members of the local church can provide wisdom, correction, counseling, and restoration.
|
||||
- Children are encouraged, in the source account, to have access to safe outside help rather than being limited to their parents alone.
|
||||
- Parents who begin later or who are navigating blended-family complexity are called to rebuild trust through consistency, integrity, fulfilled promises, demonstrated love, and patient presence.
|
||||
|
||||
### Editorial, theological, and safeguarding review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, and the theological language surrounding “generational advancement” before publication.
|
||||
- Preserve the “cutting the penny in half” illustration and its source context, but clarify that children are not responsible for repairing or carrying their parents’ unresolved wounds. Parental healing should reduce burdens on children, not assign them a quantified share of family brokenness.
|
||||
- The teaching's statement that everyone needs struggles that force dependence on God should be handled carefully. Do not romanticize trauma, abuse, poverty, disability, mental-health challenges, or other suffering as divinely necessary or as evidence of spiritual deficiency.
|
||||
- “God first, family second, ministry third” should be explained rather than used as a slogan that automatically resolves competing responsibilities. The final resource should address safety, marriage and parenting obligations, work, health, community, and the needs of vulnerable family members.
|
||||
- The claim concerning “preacher's kids” should be qualified and supported if retained. Children’s experiences of ministry families are varied, and bitterness or distance from faith should not be attributed simplistically to parental prioritization.
|
||||
- Outside spiritual leaders, pastors, counselors, and “local headship” must be safe, qualified, accountable, and subject to appropriate safeguarding standards. Children should have confidential, age-appropriate ways to disclose concerns, including access to adults outside the parents' chosen circle when needed.
|
||||
- “Submission” to spiritual authorities must never mean unquestioning obedience, secrecy, isolation, surrender of parental or child safety, or protection of leaders from scrutiny. The final book should explicitly preserve the right to seek independent professional help and report abuse.
|
||||
- In blended families, rebuilding trust requires consent, patience, predictable care, respect for existing parent-child bonds, and attention to grief, loyalty conflicts, trauma, and legal/custody realities. A new spouse or parent figure cannot demand instant spiritual or relational authority.
|
||||
- The instruction to fulfill promises “no matter how difficult or costly” should be bounded by safety, legality, financial sustainability, and the child’s best interests. Parents should not keep an unsafe, impossible, manipulative, or harmful promise merely to preserve appearances.
|
||||
- “Extraordinary, unexpected” demonstrations of love should be age-appropriate, non-coercive, and responsive to the child’s actual needs rather than used to purchase trust or compliance.
|
||||
- Clarify whether “late” refers to age, conversion, remarriage, or a previous parenting approach, and avoid framing earlier family history as an “ungodly foundation” in a way that shames parents or children.
|
||||
|
||||
---
|
||||
|
||||
## Chapter 6: The Covenant Parenting Workbook — Reflection and Action
|
||||
|
||||
> **Source note:** This workbook chapter preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. The questions, exercises, and covenant commitments below reflect the source teaching and have not been independently fact-checked, clinically reviewed, or editorially revised. Physical-discipline and infant-training exercises are retained for source fidelity only and are not an endorsement, safety determination, or instruction to implement them.
|
||||
|
||||
This workbook is designed to help you and your spouse move beyond information and step into active, structural transformation [119]. Covenant parenting is not a formula to be checked off; it is a living relationship that must be intentionally walked out before the Lord and before your children [51, 52]. Use these reflective questions, practical exercises, and covenant commitments to build a secure sanctuary of peace in your home [14, 130].
|
||||
|
||||
---
|
||||
|
||||
### Section 1: Modeling & Generational Vision (Chapter 1)
|
||||
|
||||
#### I. Heart-Level Reflections
|
||||
|
||||
**Dependent Sonship:** Jesus modeled a life of complete dependence on His Father ("I don't do anything but I see my father do it" [9]). In what areas of your daily life are you struggling to walk in instant obedience to your Heavenly Father? How might this struggle affect your children's ability to obey your voice [11]?
|
||||
|
||||
**The Power of the Model:** In the eyes of a young child, you represent God—His authority, His love, and His safety [10, 62]. When you come home on edge or exhausted, what kind of father or mother are you modeling [11, 60]?
|
||||
|
||||
**Multi-Generational Legacy:** Are there areas where you have fallen into passive parenting or short-sightedness [11, 12]? If you parented with a vision that extended three generations deep, what would you change about your household today [12, 55]?
|
||||
|
||||
#### II. Action Steps
|
||||
|
||||
**The Refuge Audit:** Identify one major source of fear, anger, or insecurity in your own heart [13]. Set aside a specific time to bring this before the Lord, asking Him to deal with the root of this brokenness [13]. Re-read Proverbs 14:26:
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [13]
|
||||
|
||||
Write down how you will yield to His healing hand this week to make your home a stronger refuge [13, 62].
|
||||
|
||||
---
|
||||
|
||||
### Section 2: Redemptive Correction (Chapter 2)
|
||||
|
||||
#### I. Heart-Level Reflections
|
||||
|
||||
**The Rule of Calmness:** Do you ever correct your children out of irritation, frustration, or a desire for convenience [22, 101]? What is the difference between biblical discipline (which restores) and humanistic punishment (which lingers) [21, 76]?
|
||||
|
||||
**Removing Shame:** Does correction in your home leave a lingering shadow of guilt or emotional distance, or does it result in immediate restoration, hugs, and perfect right standing [21, 76, 79]?
|
||||
|
||||
#### II. Action Steps
|
||||
|
||||
**The Hand Consecration:** Make a solemn covenant with your spouse today that your hands are strictly reserved for holding, hugging, and expressing love [20, 73]. Remove all wooden spoons, belts, and other rigid implements from your parenting toolbox [20, 73].
|
||||
|
||||
**Setting Up the “Correction Room”:** Identify a private room in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 163]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that designated room [20, 164]. Agree to never correct your child in front of guests, siblings, or in public [23, 163].
|
||||
|
||||
**Practice Stopping:** If you feel your blood pressure rising during a correction, commit to saying: "I am not in a position to handle this right now." Ask your spouse to cover for you, or find a controlled situation before the Lord until you can speak in a calm, tender voice [22, 78, 101].
|
||||
|
||||
---
|
||||
|
||||
### Section 3: Parental Unity & Atmosphere (Chapter 3)
|
||||
|
||||
#### I. Heart-Level Reflections
|
||||
|
||||
**The Cracks of Division:** Children are astute observers who look for alignment [24]. Can your children find any "cracks" between you and your spouse to get a different answer [24, 189]?
|
||||
|
||||
**Private Alignment:** Have you fallen into the trap of correcting, undermining, or arguing with your spouse in front of the kids [26, 193]? How can you build a stronger habit of waiting until you are behind closed doors to resolve parenting differences [26, 27, 192]?
|
||||
|
||||
#### II. Action Steps
|
||||
|
||||
**The "What Did They Say?" Protocol:** Practice the immediate gatekeeping response. Whenever a child asks for permission or a treat, always ask: "What did Dad say?" or "What did Mom say?" [24, 25, 198]. If the other spouse has given an answer, the discussion is permanently closed [25, 199].
|
||||
|
||||
**The 30-Day Breakfast Covenant:** Set your alarm 30 minutes earlier. Sit down together for breakfast every day for the next 30 days [32, 210]. Each morning, share one specific, particular detail that you sincerely estimate and appreciate about your spouse [32, 33, 211, 213]. Focus on finding the good, and watch the atmosphere of your marriage and home transform [34, 211].
|
||||
|
||||
**The Sunset Covenant:** Commit to the rule of Ephesians 4:26:
|
||||
|
||||
> "...do not let the sun go down on your anger." [34, 210]
|
||||
|
||||
Agree that no matter the disagreement, you will pray individually, come together, ask for forgiveness, and pray together before sleeping [34, 208].
|
||||
|
||||
---
|
||||
|
||||
### Section 4: Guarding Influences & Daily Wisdom (Chapter 4)
|
||||
|
||||
#### I. Heart-Level Reflections
|
||||
|
||||
**Surrogate Parenting:** Is television or digital media acting as a surrogate parent or a distraction from your training responsibilities [38, 134]? How is "tell-a-vision" programming shaping the minds and desires of your children away from the Kingdom [38, 134]?
|
||||
|
||||
**Owning Your Time:** Fathers, are you caught in the "Egyptian" bricks-and-mortar trap of overworking at the expense of being present to train your children [39, 137]? What adjustments do you need to make to own your time [39, 138]?
|
||||
|
||||
#### II. Action Steps
|
||||
|
||||
**The Blanket Training Trial:** For infants (6–9 months), lay down a small blanket on the floor [36, 91]. Practice giving the quiet command: "I don't want you going off of that." [37, 91] Gently correct their hand when they test the boundary, and place them back on [37, 91]. Use this tool to train their ears to listen to your voice [37, 91].
|
||||
|
||||
**Integrating vs. Separating:** Stop treating household chores as a solo burden. This week, give your child a paint roller, have them help push buttons on the washing machine, or pull up a chair to help wash dishes [40, 175]. Let them participate in your daily life, reinforcing that the family works together with joy [40, 175].
|
||||
|
||||
---
|
||||
|
||||
### Section 5: Generational Advancement & Covenant Priorities (Chapter 5)
|
||||
|
||||
#### I. Heart-Level Reflections
|
||||
|
||||
**The Penny in Half:** Do your children carry the heavy burden of expecting you to be perfect [42, 43]? How can you model humility and the pursuit of growth rather than a false image of perfection [43, 95]?
|
||||
|
||||
**The Priority Order:** Honestly assess your calendar and energy. Are you living according to the covenant order: God First, Family Second, Ministry/Work Third [43, 44, 144]?
|
||||
|
||||
#### II. Action Steps
|
||||
|
||||
**The "Half-Penny" Conversation:** Gather your children (especially those ages 7–9 or older) [42, 95]. Share the "half-penny" teaching with them:
|
||||
|
||||
> "Mom and I are not perfect parents, but we are working with the Lord to clear away old battles so you don't have to fight them [41, 42, 95]. There will still be a portion left for you to deal with, but you will stand on our shoulders." [41, 42, 95]
|
||||
|
||||
**Rebuilding Broken Bridges (Late Starts / Blended Families):** Seek the Holy Spirit and ask: "Have I ever made any promises to my children that I have not kept?" [47, 161] If a promise comes to mind—no matter how small or how financially challenging—make a concrete plan to keep your word and fulfill that promise this month [47, 161].
|
||||
|
||||
### Themes captured for future workbook development
|
||||
|
||||
- The material moves from teaching content into self-examination, shared marital practices, and concrete household commitments.
|
||||
- The workbook treats parental transformation and modeling as the starting point for changes in the home.
|
||||
- The questions invite parents to examine obedience, emotional regulation, presence, priorities, division, media use, and generational vision.
|
||||
- The proposed exercises include a refuge audit, a calmness practice, parental-unity protocols, a 30-day appreciation covenant, media and time audits, shared household work, a half-penny conversation, and promise-repair work.
|
||||
- The source workbook is intended to be used by spouses together, not merely read individually.
|
||||
- Each chapter's practical section mirrors the book's larger sequence: model first, correct redemptively, build unity, guard influences, and advance the covenant family.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between the workbook citations and the original audio/NotebookLM source.
|
||||
- The physical-discipline exercises in Sections 2 and 4 should not be presented as ready-to-use instructions in a parent-facing workbook. Replace or substantially revise them after professional safeguarding review, with non-violent, age-appropriate alternatives centered on supervision, redirection, natural/logical consequences, repair, and emotional regulation.
|
||||
- The “correction room” exercise should not encourage isolating a child with an adult or imply that privacy overrides safety, accountability, or a child’s right to disclose harm. Any final version should include clear safeguarding boundaries and appropriate access to trusted, independent help.
|
||||
- The suggestion to place a switch in the home should be removed from a practical action checklist unless the final theological and safeguarding review explicitly justifies its inclusion; the current source note must not be mistaken for an endorsement.
|
||||
- “Perfect right standing” and the idea that correction removes a spiritual debt require theological review so that children are not taught that physical pain is required for forgiveness, belonging, or restoration.
|
||||
- “If the other spouse has given an answer, the discussion is permanently closed” should be softened to allow clarification, correction of mistakes, accessibility needs, changing circumstances, and safe disclosure. Children must not be trained to stop asking questions or reporting concerns.
|
||||
- The 30-day breakfast and sunset covenants should allow for work schedules, illness, disability, conflict de-escalation, sleep, safety, and circumstances in which immediate reconciliation is not appropriate.
|
||||
- The blanket-training trial should not be reproduced without current pediatric and child-safety review. Infant crawling and boundary-testing are normal development; safe supervision and childproofing should come before obedience training.
|
||||
- The “Egyptian” overwork metaphor and “own your time” exercise should not shame parents who must work, rely on childcare, or manage financial hardship. Include varied family structures and realistic economic constraints.
|
||||
- Household-work activities require age-appropriate supervision around paint, appliances, water, heat, tools, chemicals, and other hazards.
|
||||
- The half-penny conversation should be adapted so children are not assigned responsibility for parental wounds or told they must inherit a predetermined portion of brokenness. Emphasize parental accountability, the child’s agency, and freedom to seek help.
|
||||
- Promise-repair exercises should be bounded by safety, legality, financial sustainability, custody arrangements, and the child’s best interests; a parent should not fulfill a harmful or impossible promise.
|
||||
- The workbook should include an explicit “when to seek help” page covering trusted pastoral care, licensed counseling, child-protection concerns, domestic abuse, mental-health crises, and situations in which a parent cannot stay calm or keep a child safe.
|
||||
|
||||
---
|
||||
|
||||
## The 30-Day Covenant Parenting Challenge Calendar
|
||||
|
||||
> **Source note:** This practical, day-by-day companion calendar preserves the supplied NotebookLM synthesis from audio recordings of Bryan Hickman's teaching sessions. It is stored verbosely as source material for the developing parent-focused book. The schedule, Scripture references, exercises, theological claims, and practical recommendations have not been independently fact-checked, clinically reviewed, or editorially revised. Physical-discipline and infant-training exercises are retained for source fidelity only and are not an endorsement, safety determination, or instruction to implement them.
|
||||
|
||||
This practical, day-by-day companion calendar is designed to help you and your spouse actively move from information to structural, heart-level transformation in your home [48]. Covenant parenting is a living relationship that must be intentionally walked out before the Lord and before your children [48, 62]. Use this daily tracker to build a secure sanctuary of peace in your household [48, 141].
|
||||
|
||||
---
|
||||
|
||||
### Week 1: Laying the Marital Foundation
|
||||
|
||||
The spiritual atmosphere of the home is anchored in the absolute unity of husband and wife [3, 199]. This week, we focus entirely on sealing the "cracks" of division, aligning our hearts privately, and nurturing horizontal communication [3, 24, 31, 200].
|
||||
|
||||
#### Day 1: The Sunset Covenant (Ephesians 4:26)
|
||||
|
||||
**Action:** Sit down with your spouse tonight and make a solemn covenant that you will never go to sleep angry [34, 218]. If a disagreement arises, commit to taking a private "time out" to pray individually, then come together to ask for forgiveness and pray together before sleeping [34, 216, 219].
|
||||
|
||||
**Scripture:** "...do not let the sun go down on your anger." [34, 54, 218, 221]
|
||||
|
||||
#### Day 2: Launching the 30-Day Breakfast Covenant
|
||||
|
||||
**Action:** Set your alarm 30 minutes earlier [54, 221]. Sit down for breakfast together (just the two of you) and share one specific, particular detail you sincerely appreciate and estimate about your spouse [32, 33, 54, 221, 224]. **Rule for Husbands:** Avoid generalities like "you look good"—find a particular, concrete action to celebrate [33, 224].
|
||||
|
||||
**Scripture:** "Seek, and you will find." [33, 222]
|
||||
|
||||
#### Day 3: The "What Did Dad/Mom Say?" Gatekeeping Protocol
|
||||
|
||||
**Action:** Align on the gatekeeping protocol [54, 210]. Whenever a child approaches you asking for a treat, permission, or a change in rules, your immediate, unthinking response must be: "What did Dad say?" or "What did Mom say?" [24, 25, 54, 210]. If the other spouse has given an answer, the discussion is permanently closed [25, 54, 210].
|
||||
|
||||
#### Day 4: Day 3 of the Breakfast Covenant
|
||||
|
||||
**Action:** Share your daily specific deposit [32, 33]. Today, focus on celebrating how your spouse handles pressure or exhaustion [30, 143, 201].
|
||||
|
||||
#### Day 5: Private Discipline Alignment Check
|
||||
|
||||
**Action:** Covenant together that you will never correct, undermine, or disagree with each other's disciplinary actions in front of the children [26, 204, 205]. If you disagree with how a situation was handled, deal with your own irritation privately and discuss it strictly behind closed doors later [27, 211].
|
||||
|
||||
#### Day 6: Modeling Humility & Repentance
|
||||
|
||||
**Action:** If you slipped up this week and displayed division or disrespect in front of your children, execute the restoration protocol [28, 205]. First, apologize to your spouse privately:
|
||||
|
||||
> "My love, I am sorry. I realize that I made you look bad in front of the child, and I repent." [28, 205]
|
||||
|
||||
Second, go to the child:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. I want to apologize to you for dishonoring them in front of you." [29, 206]
|
||||
|
||||
#### Day 7: Weekly Reflection & Rest
|
||||
|
||||
**Action:** During your breakfast covenant today, evaluate the atmosphere of the home [32, 221]. Has the spirit of peace and security increased? Ask: "Are we taking time to truly listen to one another’s hearts, or are we just waiting for our turn to speak?" [31, 213].
|
||||
|
||||
---
|
||||
|
||||
### Week 2: Establishing Heart-Level Security & Early Boundaries
|
||||
|
||||
This week, we transition into early training boundaries and emotional security. We examine how our physical actions, voice tone, and early limits build a protective shield around our children [3, 20, 37, 103].
|
||||
|
||||
#### Day 8: Consecrating the Hands & the Voice
|
||||
|
||||
**Action:** Consecrate your hands and voice today [20, 226]. Declare that your hands are made exclusively for hugging, holding, and expressing love and tenderness [20, 84, 226]. Agree that your voice will never be the vehicle of correction, but only of instruction, praise, and love [226]. Remove all rigid correction implements (belts, heavy spoons) from the home [20, 84, 52].
|
||||
|
||||
#### Day 9: Establishing the "Correction Room"
|
||||
|
||||
**Action:** Identify a private, designated area in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 174]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that room [20, 175]. Commit to never correcting your children publicly or in front of siblings [23, 174].
|
||||
|
||||
#### Day 10: Expressive Love Deposits
|
||||
|
||||
**Action:** Be intentionally expressive today [139, 140]. Hug your children unexpectedly, write them a sweet note, or tell them specific reasons why you love them and estimate who they are [139, 140]. Ensure they know their security is unshakeable [87, 103].
|
||||
|
||||
#### Day 11: Blanket Training Setup (For Infants 6–9 Months)
|
||||
|
||||
**Action:** Spread a small blanket on the floor [36, 102]. Place the infant on it and say quietly: "I don't want you going off of that." [37, 102] When they attempt to crawl off, gently tap their hand to associate disobedience with instant correction, and place them back on the blanket [37, 102]. Repeat this several times in a focused, calm session [37, 102]. **(For older children, choose a single, clear boundary—like not touching the coffee table—to train their ears to listen to your voice [102].)**
|
||||
|
||||
#### Day 12: The Rule of Calmness Practice
|
||||
|
||||
**Action:** If you feel your blood pressure rising or feel on edge during a disciplinary moment today, practice stopping immediately [22, 112]. Say to your spouse: "I am not in a position to handle this right now," and let them step in and cover for you, or find a calm place before the Lord before addressing the situation [22, 30, 52, 112, 185].
|
||||
|
||||
#### Day 13: Instant Obedience Check
|
||||
|
||||
**Action:** Evaluate if you have fallen into the trap of counting to three or repeating commands multiple times [227]. Commit today to expecting instant obedience to your voice [141, 227]. Give clear, loving instruction once, and address any delay as disobedience [140, 141, 227].
|
||||
|
||||
#### Day 14: Mid-Point Reflection
|
||||
|
||||
**Action:** Reflect on Proverbs 14:26 [3, 74]. Write down how growing in your own reverent fear and instant obedience to the Heavenly Father has created a physical and spiritual "shield of refuge" for your children this week [3, 13, 74].
|
||||
|
||||
---
|
||||
|
||||
### Week 3: Integrating Work, Joy, and Presence
|
||||
|
||||
We are called to own our time, stay present, and include our children in the everyday affairs of life so they learn that labor is a joyful, natural expression of the family [5, 39, 40].
|
||||
|
||||
#### Day 15: Media Audit ("Tell-a-Vision")
|
||||
|
||||
**Action:** Walk through your home and evaluate the media intake [38, 145]. Identify where tablets, phones, or television are acting as "surrogate parents" or distractions [38, 145]. Agree to strictly limit or close the door to secular programming to keep the atmosphere of the home pure [38, 145].
|
||||
|
||||
#### Day 16: Erasing the Work vs. Fun Boundary
|
||||
|
||||
**Action:** Stop treating household chores as a solo burden [40, 186]. Today, pull up a chair and let your toddler help wash dishes, push the buttons on the washing machine, fold laundry, or give your older child a paint roller to help paint [40, 186]. Make work a shared, joyful experience of living life together [40, 186].
|
||||
|
||||
#### Day 17: Father’s Covenant: Owning Your Time
|
||||
|
||||
**Action:** Fathers, spend time before the Lord today asking for creative, Kingdom strategies to "own your time" [39, 149]. Examine your schedule to ensure you are physically and mentally present for your family rather than caught in the "Egyptian brick-making trap" of excessive work [39, 148, 149].
|
||||
|
||||
#### Day 18: Celebrating the Mother’s Role
|
||||
|
||||
**Action:** Husbands, take time today to actively celebrate, verbalize, and honor the sacred work your wife does in nurturing the home and multiplying your family's resources [30, 39, 147]. Let her know that her presence far surpasses any secular career or paycheck [39, 146, 147].
|
||||
|
||||
#### Day 19: The "I Will Say Yes" Promise
|
||||
|
||||
**Action:** Look for opportunities to say "Yes!" to your children today [151]. Tell them: "There are times I have to say no to protect you, but I am looking for every opportunity to say yes to you." [151, 152] Plan a family-appropriate trip, surprise outing, or special treat to fulfill this promise [151, 153].
|
||||
|
||||
#### Day 20: Outdoor Activity Shift
|
||||
|
||||
**Action:** If the atmosphere of the home feels pent up or stressful today, physically shift locations [179, 180]. Take the children outside to build a fort, play in the yard, go to the park, or take a simple drive [179, 180]. Use nature and play as a release valve for energy [178, 180].
|
||||
|
||||
#### Day 21: Weekly Reflection: Celebration of Individuality
|
||||
|
||||
**Action:** Discuss how your children are uniquely wired [118, 121]. Repent of any verbal comparisons between siblings [119, 120]. Ask the Holy Spirit for custom wisdom (Rhema word) for each child's specific, unique design [117, 118].
|
||||
|
||||
---
|
||||
|
||||
### Week 4: Generational Legacy & Deep Restoration
|
||||
|
||||
We parent with a multi-generational vision, preparing our children to stand on our spiritual shoulders and leap forward into their own divine destinies [6, 12, 41].
|
||||
|
||||
#### Day 22: The "Half-Penny" Conversation
|
||||
|
||||
**Action:** Gather your children (especially those ages 7–9 or older) for a teaching moment [42, 106]. Explain the "half-penny" concept:
|
||||
|
||||
> "Mom and Dad are not perfect, and we are working with the Lord to clear away old battles so you don't have to fight them [42, 106]. There will still be a portion left for you to deal with under His sovereign hand, but you will stand on our shoulders." [41, 42, 106]
|
||||
|
||||
#### Day 23: Rebuilding Broken Bridges (Late Starts & Blended Families)
|
||||
|
||||
**Action:** Ask the Holy Spirit: "Have I ever made any promises to my children that I have not kept?" [47, 172] If a promise comes to mind—no matter how small or financially difficult—write down a concrete plan to keep your word and fulfill it this month [47, 172]. Fulfilling your promises models our covenant-keeping Father [47, 172].
|
||||
|
||||
#### Day 24: Covenant Priority Check
|
||||
|
||||
**Action:** Audit your calendar, finances, and energy [57]. Are you walking in strict alignment with God's covenant order of priorities: God First, Family Second, Ministry/Work Third? [43, 44, 57] Adjust any inverted priorities today [44].
|
||||
|
||||
#### Day 25: Honoring the Greater Body
|
||||
|
||||
**Action:** Teach your children that they are not alone, and that they have the freedom to reach out to trusted, ordained local leaders or counseling elders if they ever need help or counsel [45, 157]. Model this by showing submission and honor to local headship yourself [45, 157].
|
||||
|
||||
#### Day 26: Facing Insecurities
|
||||
|
||||
**Action:** Realize that any insecurities you carry do not have to be passed down [14, 104]. Bring your deep-seated fears or past family wounds to the Lord, allowing Him to heal you so that your children can walk in total, inherited spiritual security [14, 73, 104, 105].
|
||||
|
||||
#### Day 27: Concluding the 30-Day Breakfast Covenant Challenge
|
||||
|
||||
**Action:** As you complete your 30th breakfast together, commit to making these daily specific deposits a permanent, lifelong habit of your marriage [32, 223]. Celebrate how focusing on finding the good has transformed your relationship [34, 222].
|
||||
|
||||
#### Day 28: Preparing the Next Generation to Model
|
||||
|
||||
**Action:** Reflect on Acts 13:36 [12]. Pray a blessing over your children, asking the Lord to equip them to serve His purposes faithfully in their own generation [12, 65].
|
||||
|
||||
---
|
||||
|
||||
### Days 29 & 30: Evaluation & Generational Forwarding
|
||||
|
||||
#### Day 29: Joint Spouse Review
|
||||
|
||||
**Action:** Review the completed 30-day challenge. Where did you see the most significant fruit? Where did the Holy Spirit highlight areas that still need to be "narrowed up" or healed? [14, 73, 76]
|
||||
|
||||
#### Day 30: Sealing the Legacy
|
||||
|
||||
**Action:** Commit this parenting journey to the Lord in prayer [193]. Declare that your family is stepping into generational advancement, and that the spiritual ceiling of your life has officially become the floor upon which your children stand [6, 41, 105].
|
||||
|
||||
### Calendar themes captured for future book development
|
||||
|
||||
- The calendar begins with marital unity and communication before moving into child-focused boundaries and correction.
|
||||
- Its sequence progresses from household atmosphere, to heart-level security, to presence and shared work, and finally to generational legacy and restoration.
|
||||
- The daily practices emphasize appreciation, repentance, calmness, parental consistency, presence, media awareness, shared labor, individualized attention, promise keeping, and prayer.
|
||||
- The calendar translates the broader teaching into a structured rhythm of daily action, weekly reflection, and final evaluation.
|
||||
- The challenge repeatedly connects parental transformation with the security and future formation of children.
|
||||
- The calendar includes both couple-centered practices and child-centered conversations, allowing later editions to distinguish exercises for spouses, infants, older children, blended families, and ministry families.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between this calendar's citations and the original audio/NotebookLM source.
|
||||
- The calendar contains repeated instructions to use a switch, tap an infant's hand, and conduct private physical correction. These instructions should not be distributed as a ready-to-use parent program. Before any public edition, replace or substantially revise them after professional pediatric, child-development, and safeguarding review, centering non-violent redirection, supervision, natural/logical consequences, repair, and emotional regulation.
|
||||
- The “correction room” should not be framed as a private space where a child is isolated with an adult without safety, accountability, and access to independent help. Privacy should protect dignity, not conceal harm.
|
||||
- “Never go to sleep angry” and the sunset covenant should allow safe time-outs, sleep, boundaries, and delayed conversation. Immediate reconciliation is not appropriate in every conflict, particularly where there is intimidation, coercive control, abuse, or escalating danger.
|
||||
- The “What Did Dad/Mom Say?” protocol and the phrase “the discussion is permanently closed” require safeguards. Parents may need to correct a mistake, hear a child's question, accommodate disability or changing circumstances, or receive a disclosure of harm. Unity must not become silencing.
|
||||
- Day 8's instruction that the voice should never be a vehicle of correction conflicts with the broader source teaching's emphasis on correcting disobedience and should be clarified in the original recording context.
|
||||
- Day 13's “instant obedience” exercise should be reviewed developmentally. Young children may need repetition, processing time, communication support, or an explanation of a request; delay is not automatically defiance.
|
||||
- The 30-day breakfast count appears internally inconsistent: the calendar launches the breakfast covenant on Day 2, labels Day 4 as “Day 3,” and calls Day 27 the 30th breakfast even though the listed daily breakfast actions do not clearly account for thirty meetings. Reconcile the schedule before publication.
|
||||
- The “I Will Say Yes” promise should not pressure parents into purchasing outings or treats, or make a child's felt love dependent on receiving a yes. Define realistic, relational ways to say yes while preserving necessary boundaries and financial sustainability.
|
||||
- The “Egyptian brick-making trap,” the instruction that a mother's presence surpasses a secular career, and the gendered roles should be presented as the speaker's family framework, not a universal measure of faithfulness. Include single parents, dual-income families, childcare, disability, illness, economic necessity, adoptive/foster families, and varied vocational callings.
|
||||
- Outdoor drives and activities require ordinary safety planning, supervision, weather awareness, transportation restraints, and age-appropriate expectations.
|
||||
- Day 21's language about each child being uniquely wired is valuable, but “Rhema word” should be explained and should not replace listening to the child, developmental knowledge, qualified support, or medical/mental-health care.
|
||||
- The half-penny exercise should not tell children they inherit a predetermined portion of parental brokenness. Emphasize parental accountability, the child's agency, and freedom to seek help.
|
||||
- Trusted local leaders, “counseling elders,” and “local headship” must be qualified, accountable, safeguarding-compliant, and open to independent scrutiny. Children must retain access to safe adults outside the parents' chosen leadership circle and to licensed professional help.
|
||||
- “Submission” to church authority must never require secrecy, unquestioning obedience, isolation, surrender of safety, or protection of leaders from scrutiny.
|
||||
- Promise-repair exercises should be bounded by safety, legality, custody arrangements, financial sustainability, and the child's best interests. An unsafe or impossible promise should be addressed honestly rather than fulfilled at any cost.
|
||||
- “Generational forwarding” and the statement that a parent's spiritual ceiling becomes a child's floor should be framed as an aspirational metaphor, not a guarantee or a burden placed on children to continue a parent's ministry or spiritual achievements.
|
||||
@@ -0,0 +1,257 @@
|
||||
---
|
||||
title: "The Pattern of Covenant Parenting — NKJV Scripture Verification Register"
|
||||
status: verification-draft
|
||||
translation: "New King James Version (NKJV)"
|
||||
source: "BibleGateway NKJV passage pages"
|
||||
retrieved: 2026-08-14
|
||||
related:
|
||||
- "[[covenant_parenting_bryan_hickman]]"
|
||||
- "[[covenant_parenting_bryan_hickman_revised]]"
|
||||
tags:
|
||||
- parenting
|
||||
- covenant-parenting
|
||||
- church-teaching
|
||||
- scripture
|
||||
- NKJV
|
||||
- editorial-review
|
||||
---
|
||||
|
||||
# NKJV Scripture Verification Register
|
||||
|
||||
**Purpose:** This register verifies the Scripture references and Scripture-like quotations used in [[covenant_parenting_bryan_hickman_revised]].
|
||||
|
||||
**Interpretive status:** The parenting manuscript is an interpretation and synthesis of Bryan Hickman's voice recordings, not a verified verbatim transcript. Bryan Hickman's review is pending. The Scripture comparison below is also an editorial working document for his review; it does not imply that Bryan approved any wording, application, or theological conclusion.
|
||||
|
||||
**Method:** Explicit Bible references were enumerated from the revised draft and compared with the New King James Version (NKJV) text retrieved from the linked BibleGateway passage pages on 2026-08-14. Existing source renderings are not silently replaced here. Each entry identifies whether the wording in the manuscript is exact, partial, interpretive, or a probable allusion.
|
||||
|
||||
**NKJV attribution:** Scripture taken from the New King James Version®. Copyright © 1982 by Thomas Nelson. Used by permission. All rights reserved. The linked BibleGateway pages identify the translation as NKJV and provide the text used for this comparison.
|
||||
|
||||
## Coverage summary
|
||||
|
||||
| Reference | Where it is used in the revised draft | Verification result |
|
||||
|---|---|---|
|
||||
| 1 Timothy 1:5 | Chapter 0 and Chapter 1 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 14:26 | Chapters 0, 1, and 4 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Matthew 7:13 | Chapters 0 and 1 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Acts 13:36 | Chapters 0 and 5 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 22:6 | Chapter 1 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Romans 12:2 | Chapter 1 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 22:15 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 13:24 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 19:18 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 29:15 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Proverbs 29:17 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Ephesians 4:26 | Chapters 0 and 3; Calendar Day 1 | Reference is explicit; body wording is a partial quotation and does not reproduce the complete NKJV verse. |
|
||||
| Ephesians 6:4 | Chapter 2 | Reference is explicit; body wording is an interpretive rendering, not verbatim NKJV. |
|
||||
| Matthew 7:7 | Chapter 3 and Calendar Day 2 | Probable allusion; the reference is not stated in the source material and should be confirmed with Bryan. |
|
||||
| John 5:19 | Chapter 0 and Chapter 1 | Probable allusion; the reference is not stated in the source material and should be confirmed with Bryan. |
|
||||
|
||||
## Verified NKJV reference text
|
||||
|
||||
### 1 Timothy 1:5
|
||||
|
||||
**Draft use:** The goal of instruction and the formation of love, a pure heart, a good conscience, and sincere faith.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Now the purpose of the commandment is love from a pure heart, from a good conscience, and from sincere faith,
|
||||
|
||||
**Comparison:** The draft says, “The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith.” This is a source rendering or paraphrase, not verbatim NKJV.
|
||||
|
||||
**Source:** [1]
|
||||
|
||||
### Proverbs 14:26
|
||||
|
||||
**Draft use:** Reverent fear of the Lord, confidence, and refuge for children.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> In the fear of the Lord there is strong confidence, And His children will have a place of refuge.
|
||||
|
||||
**Comparison:** The draft expands “the fear of the Lord” to “the reverent fear of the Lord” and says that children “will always have a place of refuge.” Retain as source wording unless Bryan approves an editorial replacement with the NKJV wording.
|
||||
|
||||
**Source:** [2]
|
||||
|
||||
### Matthew 7:13
|
||||
|
||||
**Draft use:** The narrow path versus the broad way in the discussion of redemptive correction.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Enter by the narrow gate; for wide is the gate and broad is the way that leads to destruction, and there are many who go in by it.
|
||||
|
||||
**Comparison:** The draft says, “Enter through the narrow gate, for the gate is wide and the way is broad that leads to destruction, and there are many who enter through it.” The meaning is similar, but the wording is not verbatim NKJV.
|
||||
|
||||
**Source:** [3]
|
||||
|
||||
### Acts 13:36
|
||||
|
||||
**Draft use:** David serving his own generation and the multi-generational vision.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> For David, after he had served his own generation by the will of God, fell asleep, was buried with his fathers, and saw corruption;
|
||||
|
||||
**Comparison:** The draft says that David “served God's purposes in his own generation” and “was laid among his fathers and underwent decay.” This is an interpretive rendering, not verbatim NKJV.
|
||||
|
||||
**Source:** [4]
|
||||
|
||||
### Proverbs 22:6
|
||||
|
||||
**Draft use:** Training a child in the way he should go.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Train up a child in the way he should go, And when he is old he will not depart from it.
|
||||
|
||||
**Comparison:** The draft says, “Train up a child in the way that he should go, and even when he grows old, he will not abandon it.” This is close in meaning but not verbatim NKJV.
|
||||
|
||||
**Source:** [5]
|
||||
|
||||
### Romans 12:2
|
||||
|
||||
**Draft use:** Renewal of the mind and refusing conformity to the world.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> And do not be conformed to this world, but be transformed by the renewing of your mind, that you may prove what is that good and acceptable and perfect will of God.
|
||||
|
||||
**Comparison:** The draft is a rearranged or interpretive rendering of the verse and should not be presented as a verbatim NKJV quotation without revision.
|
||||
|
||||
**Source:** [6]
|
||||
|
||||
### Proverbs 22:15
|
||||
|
||||
**Draft use:** Foolishness in a child's heart and correction.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Foolishness is bound up in the heart of a child; The rod of correction will drive it far from him.
|
||||
|
||||
**Comparison:** The draft says, “The rod of discipline will remove it far from him.” The reference is correct, but the wording differs from NKJV. This passage requires separate safeguarding, developmental, theological, and pastoral review; NKJV verification does not constitute approval of an application.
|
||||
|
||||
**Source:** [7]
|
||||
|
||||
### Proverbs 13:24
|
||||
|
||||
**Draft use:** One of the correction-related Proverbs listed in Chapter 2.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> He who spares his rod hates his son, But he who loves him disciplines him promptly.
|
||||
|
||||
**Comparison:** Verify the quotation against this wording before publication. Any application to physical discipline must remain clearly separated from translation verification and undergo safeguarding review.
|
||||
|
||||
**Source:** [8]
|
||||
|
||||
### Proverbs 19:18
|
||||
|
||||
**Draft use:** One of the correction-related Proverbs listed in Chapter 2.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Chasten your son while there is hope, And do not set your heart on his destruction.
|
||||
|
||||
**Comparison:** Verify the quotation against this wording before publication. The verse must not be presented as automatic approval of a discipline method.
|
||||
|
||||
**Source:** [9]
|
||||
|
||||
### Proverbs 29:15
|
||||
|
||||
**Draft use:** One of the correction-related Proverbs listed in Chapter 2.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> The rod and rebuke give wisdom, But a child left to himself brings shame to his mother.
|
||||
|
||||
**Comparison:** Verify the quotation against this wording before publication. The verse's presence does not resolve developmental, legal, safeguarding, or pastoral questions about application.
|
||||
|
||||
**Source:** [10]
|
||||
|
||||
### Proverbs 29:17
|
||||
|
||||
**Draft use:** One of the correction-related Proverbs listed in Chapter 2.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Correct your son, and he will give you rest; Yes, he will give delight to your soul.
|
||||
|
||||
**Comparison:** Verify the quotation against this wording before publication and distinguish the biblical reference from the source teaching's proposed method of correction.
|
||||
|
||||
**Source:** [11]
|
||||
|
||||
### Ephesians 4:26
|
||||
|
||||
**Draft use:** The “do not let the sun go down” principle in the marriage discussion and Calendar Day 1.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> “Be angry, and do not sin”: do not let the sun go down on your wrath,
|
||||
|
||||
**Comparison:** The draft uses only the latter portion, “...do not let the sun go down on your anger.” It is a partial quotation and changes “wrath” to “anger.” If retained, identify it as a partial source rendering or replace it with the complete NKJV quotation after Bryan's review.
|
||||
|
||||
**Source:** [12]
|
||||
|
||||
### Ephesians 6:4
|
||||
|
||||
**Draft use:** Fathers, anger/provocation, and training and instruction of children.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> And you, fathers, do not provoke your children to wrath, but bring them up in the training and admonition of the Lord.
|
||||
|
||||
**Comparison:** The draft says, “Fathers, do not provoke your children to anger, but bring them up in the discipline and instruction of the Lord.” This is interpretive wording, not verbatim NKJV.
|
||||
|
||||
**Source:** [13]
|
||||
|
||||
## Probable allusions requiring Bryan's confirmation
|
||||
|
||||
### Matthew 7:7
|
||||
|
||||
**Draft use:** “Buscad y hallaréis (Seek and you will find)” in Chapter 3 and “Seek, and you will find” in Calendar Day 2.
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Ask, and it will be given to you; seek, and you will find; knock, and it will be opened to you.
|
||||
|
||||
**Status:** Matthew 7:7 is the probable source, but the source material does not state the reference. Confirm the intended reference with Bryan before adding it to the body as a Scripture citation.
|
||||
|
||||
**Source:** [14]
|
||||
|
||||
### John 5:19
|
||||
|
||||
**Draft use:** “I don't do anything but I see my father do it. I don't say anything but I hear my father say it.”
|
||||
|
||||
**NKJV text:**
|
||||
|
||||
> Then Jesus answered and said to them, “Most assuredly, I say to you, the Son can do nothing of Himself, but what He sees the Father do; for whatever He does, the Son also does in like manner.
|
||||
|
||||
**Status:** John 5:19 is a probable allusion to the source teaching's wording, but the source material does not state the reference and the wording is not verbatim NKJV. Confirm with Bryan before attaching the reference or replacing the source quotation.
|
||||
|
||||
**Source:** [15]
|
||||
|
||||
## Editorial actions still required
|
||||
|
||||
1. Bryan should confirm whether the body should retain the source renderings, replace them with exact NKJV quotations, or show both side by side.
|
||||
2. Any replacement of source wording is an editorial change and must remain visible for Bryan's review.
|
||||
3. Add explicit NKJV labels to body quotations only after the wording has been reconciled with this register.
|
||||
4. Keep Scripture verification separate from safeguarding approval. In particular, the Proverbs passages and the manuscript's switch, rod, blanket-training, and correction-room material require independent safeguarding, developmental, legal, theological, and pastoral review.
|
||||
5. Confirm all probable allusions—especially Matthew 7:7 and John 5:19—with Bryan before treating them as intended references.
|
||||
|
||||
## Sources
|
||||
|
||||
[1] https://www.biblegateway.com/passage/?search=1%20Timothy%201%3A5&version=NKJV
|
||||
[2] https://www.biblegateway.com/passage/?search=Proverbs%2014%3A26&version=NKJV
|
||||
[3] https://www.biblegateway.com/passage/?search=Matthew%207%3A13&version=NKJV
|
||||
[4] https://www.biblegateway.com/passage/?search=Acts%2013%3A36&version=NKJV
|
||||
[5] https://www.biblegateway.com/passage/?search=Proverbs%2022%3A6&version=NKJV
|
||||
[6] https://www.biblegateway.com/passage/?search=Romans%2012%3A2&version=NKJV
|
||||
[7] https://www.biblegateway.com/passage/?search=Proverbs%2022%3A15&version=NKJV
|
||||
[8] https://www.biblegateway.com/passage/?search=Proverbs%2013%3A24&version=NKJV
|
||||
[9] https://www.biblegateway.com/passage/?search=Proverbs%2019%3A18&version=NKJV
|
||||
[10] https://www.biblegateway.com/passage/?search=Proverbs%2029%3A15&version=NKJV
|
||||
[11] https://www.biblegateway.com/passage/?search=Proverbs%2029%3A17&version=NKJV
|
||||
[12] https://www.biblegateway.com/passage/?search=Ephesians%204%3A26&version=NKJV
|
||||
[13] https://www.biblegateway.com/passage/?search=Ephesians%206%3A4&version=NKJV
|
||||
[14] https://www.biblegateway.com/passage/?search=Matthew%207%3A7&version=NKJV
|
||||
[15] https://www.biblegateway.com/passage/?search=John%205%3A19&version=NKJV
|
||||
@@ -0,0 +1,716 @@
|
||||
---
|
||||
title: "The Pattern of Covenant Parenting — Parent Review Edition"
|
||||
status: parent-review-edition
|
||||
source: "NotebookLM book-style synthesis from audio recordings of Bryan Hickman's teaching sessions"
|
||||
derived_from: "[[covenant_parenting_bryan_hickman]]"
|
||||
tags:
|
||||
- parenting
|
||||
- covenant-parenting
|
||||
- church-teaching
|
||||
- family
|
||||
- discipleship
|
||||
- Bryan-Hickman
|
||||
- book-draft
|
||||
- parent-review
|
||||
---
|
||||
|
||||
<!-- KEEP_PARENT_OPENING -->
|
||||
<!-- EDITORIAL COMMENT: Chapter 0 was reshaped into a continuous parent-facing introduction. The original labeled themes and review lists remain represented in the later chapters and editorial metadata; this introduction now carries the book's central movement as prose. -->
|
||||
<!-- EDITORIAL COMMENT: Present this as an unnumbered Introduction in the parent-facing edition. Retain the archival source identity separately if Chapter 0 is needed for traceability. -->
|
||||
## Chapter 0: Introduction
|
||||
|
||||
Parenting is often reduced to the question of how to make a child behave. We ask how to stop the arguing, correct the disobedience, establish better habits, or get through the next difficult stage. Those questions matter, but they are not the whole purpose of training a child. The deeper work is to form a heart that can grow in love, a clear conscience, and sincere faith. As 1 Timothy 1:5 (NKJV) says, "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith." The hope is not simply to produce outward compliance. It is to raise sons and daughters who can come to know their heavenly Father, receive their identity from Him, and walk faithfully in the purpose He gives them.
|
||||
|
||||
That kind of formation begins with the parents. Children learn far more from what they see in us than from what we say to them. They watch how we respond when we are tired, disappointed, interrupted, or afraid. They notice whether our words agree with our lives. In the early years, a parent becomes a child's first picture of authority, love, protection, and security. This makes parenting a form of discipleship, but it also makes it a form of parent training. Before we can ask our children to listen, we have to become people who listen to the Lord. Before we can ask for self-control, we have to let God deal with our anger. Before we can lead a child toward healing, we have to be willing to bring our own wounds into His light.
|
||||
|
||||
The model for this surrendered life is Jesus. His life shows what it looks like to depend on the Father rather than act from self-protection or self-importance: "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." The point is not to make parents flawless. It is to help us become honest, obedient, teachable people whose children can see us turning toward God when we fail. Proverbs 14:26 (NKJV) says, "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." A child's security grows when the adults around them are learning where true security comes from.
|
||||
|
||||
That refuge is built inside the atmosphere of the home. Parenting does not happen in isolation from marriage, family rhythms, work, money, or the condition of the parents' hearts. A peaceful household requires husband and wife to pursue unity, repair conflict, and refuse to make their children carry the weight of adult disagreement. It requires daily deposits of appreciation, patient listening, and the humility to apologize when we have dishonored one another. It also requires practical care: noticing when a spouse is exhausted, stepping in when help is needed, and protecting the home from becoming a place where pressure is constantly passed down to the children. The thirty-day breakfast covenant and the command in Ephesians 4:26 (NKJV) not to let the sun go down on anger belong to this larger work of building peace, not to a formula for pretending that conflict never exists.
|
||||
|
||||
Within that atmosphere, parents can establish boundaries without making fear the center of the relationship. Children need direction. They need to know what is safe, what is expected, and what belongs outside the life of the family. Jesus' warning about the broad and narrow ways in Matthew 7:13–14 (NKJV) gives this work a larger frame. Training means helping children learn to listen, to turn away from harmful influences, and to practice what is good until wisdom becomes part of their own character. When a child disobeys, the goal must be restoration rather than humiliation. A parent who is angry or out of control should pause rather than use discipline to release frustration. Correction should protect the child's dignity, leave room for truth and disclosure, and lead the family back toward calm, belonging, and trust. The practical questions of boundaries, correction, and safety require care, patience, and age-appropriate wisdom; they should never be separated from love.
|
||||
|
||||
This formation takes place in ordinary life. It happens while parents are deciding what enters the home through television, phones, tablets, and other media. It happens when a mother or father chooses presence over constant distraction, when a family shares work instead of treating chores as an interruption, and when children are welcomed into the real responsibilities of household life. The goal is not to create an artificial world where children never encounter difficulty. It is to give them a secure place from which they can learn how to meet difficulty with faith, responsibility, and compassion. A boundary can be an expression of care. A shared task can become a lesson in service. A quiet conversation can shape a child's understanding of God more deeply than a lecture.
|
||||
|
||||
The book also looks beyond the immediate moment. Parents are not only managing today's behavior; they are building on behalf of people they may never meet. This is the long view behind Proverbs 22:6 (NKJV): "Train up a child in the way he should go, and even when he grows old, he will not abandon it." The healing we pursue, the patterns we refuse to pass on, the promises we keep, and the way we order our lives all become part of the foundation our children inherit. This is the idea of generational advancement: children should not have to begin by fighting every battle their parents were given grace to face. They will have their own struggles and their own relationship with God, but they can stand on a foundation of greater security, honesty, and wisdom. That is why parental humility matters. We can tell our children that we are still growing, that the Lord is still dealing with us, and that our imperfections do not cancel our responsibility to keep moving toward Him.
|
||||
|
||||
This vision also changes how we think about the place of family in the wider work of the church. God comes first, family cannot be sacrificed to public ministry, and ministry must flow from a life that is being lived truthfully at home. Parents need the wisdom of mature and trustworthy people around them, and children need safe access to help beyond their parents when they need it. A covenant family is not an isolated family. It is a household learning to receive correction, offer hospitality, repair what has been damaged, and make room for the work God is doing across generations.
|
||||
|
||||
The pages that follow develop these convictions through the realities of family life: how parents model the Father, how a home learns to respond to conflict, how husband and wife protect the atmosphere of the household, how families guard the influences shaping their children, how ordinary work and presence become part of discipleship, and how parents can rebuild trust when they are beginning late or carrying a complicated history. The final reflections and exercises are meant to move these ideas out of the abstract and into conversations, prayers, decisions, and small daily practices. Covenant parenting is not a checklist that proves we are doing everything right. It is a living relationship, walked out before the Lord and before our children, one faithful response at a time.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: This chapter supplies the theological and relational foundation. Consider adding a short, independently reviewed help-and-safety page before the practical correction material later in the sequence. -->
|
||||
## Chapter 1: The Foundations of Modeling & Multi-Generational Vision
|
||||
|
||||
|
||||
The true purpose of child training is not to construct a superficial set of behavioral modifications or to simply "tweak" outward conduct. It is to lay a foundational, structural establishment. Specifically, the ultimate goal is to raise children who can transition cleanly into their own spiritual inheritance. As the scriptures state in 1 Timothy 1:5 (NKJV):
|
||||
|
||||
> "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith."
|
||||
|
||||
Our target is to have children who seamlessly step into a personal relationship with their heavenly Father, and in that place find their Kingdom identity and faithfully walk out their Kingdom purpose in this generation. [7]
|
||||
|
||||

|
||||
|
||||
The transition from childhood through adolescence is intended by God to be a seamless, direct journey into relationship with the Father [17, 18]. Society has largely convinced itself that teenagers must undergo a painful, mandatory phase of rebellion simply because they do not know what else to do [17]. However, this expectation is a deception that lowers our standards and shapes our actions toward failure [17]. God's design is for children to move directly from childhood into a vibrant, personal relationship with Him [17, 18].
|
||||
|
||||
To understand how to train children, we must first look at Jesus. Jesus did not come to earth merely to perform miracles or display His divinity; rather, He came to model what a son can do when entirely dependent upon his Father [11, 12]. He walked out His earthly life as a man, not as God, to demonstrate that obedience is fully possible for a heart surrendered to the Father [12]. He lived by a simple, profound standard:
|
||||
|
||||
> "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." [12, 23]
|
||||
|
||||
Just as Jesus modeled sonship for us, parents are called to model the Father to their children [12]. In the eyes of a young child, the parent is effectively "God"—the ultimate representation of authority, love, and security in their life [15]. This is a sobering reality [13, 15]. Parents have both the privilege and the solemn responsibility to demonstrate face-to-face what a loving Father and Mother are like until the child reaches an age of spiritual understanding where that devotion is transitioned to the Lord [15].
|
||||
|
||||
The single most powerful force that will affect your children is for you, the parent, to become an obedient son of God [14]. Because parents are always modeling, every reaction—even after a hard day when we are on edge—sets an example [13]. We cannot expect our children to walk in instant obedience to our voice if we ourselves are not walking in instant obedience to the voice of our heavenly Father [13].
|
||||
|
||||
To parent effectively, we must reject short-sightedness and adopt a multi-generational vision [8, 9, 10]. We see the danger of passivity illustrated in the history of the Church. During the "Jesus movement" of the 1970s, a wave of believers dropped out of school and stopped preparing for the future under the premise that "Jesus is coming back" [9]. Because they failed to build for the next generation, the world quickly stepped in and took over every major institution [9].
|
||||
|
||||
Conversely, if we believe that the Kingdom will be fully established only in our lifetime, we risk failing to prepare our children for the long-term work [9]. While we must always look for the "end suddenly," we must build and train our children as if the work will span multiple generations [9, 10]. We are not going to build it all in our lifetime; our task is to raise up the little ones placed in our hands so that they will be faithful to God's purposes in their own generation [7]. As Acts 13:36 (NKJV) records of King David:
|
||||
|
||||
> "For David, after he had served God's purposes in his own generation, fell asleep and was laid among his fathers and underwent decay." [7]
|
||||
|
||||
Because children copy what we model, the child training process is, in reality, a parent training process [15, 128]. If we carry unresolved brokenness, anger, or fear, we will pass those patterns down [15, 46]. Allowing the Lord to heal us requires deep humility and submission, but it is the greatest gift we can offer our children [15]. As we grow in our reverence and fear of the Lord, we gain a strong confidence that creates a literal shield of security and a place of refuge for our households [16]. This is beautifully promised in Proverbs 14:26 (NKJV):
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [16]
|
||||
|
||||
When we allow the Lord to deal with our own deep-seated insecurities, we achieve what is called "generational advancement" [46, 47, 161, 162]. Children who are raised in an atmosphere of genuine spiritual security do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome [46, 47, 162]. Instead, they get to stand on their parents' advancements and leap forward into their own destiny [46, 162]. This establishes the foundation for the lifelong training command found in Proverbs 22:6 (NKJV):
|
||||
|
||||
> "Train up a child in the way that he should go, and even when he grows old, he will not abandon it." [16]
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- The intended goal of training is a child's personal relationship with the heavenly Father, Kingdom identity, and Kingdom purpose—not merely compliant behavior.
|
||||
- Adolescence is presented as a potential continuation of relationship with God rather than an inevitably rebellious stage.
|
||||
- Jesus is presented as the ultimate model of dependent sonship and surrendered obedience.
|
||||
- Parents model constantly; their reactions under pressure are formative just as much as their deliberate instruction.
|
||||
- Parent healing and obedience are central to breaking the transmission of fear, anger, insecurity, and family brokenness.
|
||||
- Multi-generational parenting requires building for a future beyond the parents' own lifetime.
|
||||
- "Generational advancement" describes children standing on the spiritual and relational progress of their parents.
|
||||
- The chapter connects parental modeling, healing, refuge, and lifelong formation with Proverbs 22:6 (NKJV).
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify the Scripture quotations and references, including the intended Bible translations.
|
||||
- Preserve the distinction between the teaching's theological claims and later editorial commentary.
|
||||
- The historical claim concerning the 1970s Jesus movement should be sourced or qualified if included in a published edition.
|
||||
- The claim that rebellion is not an inevitable feature of adolescence should be presented pastorally and carefully, acknowledging individual development, temperament, disability, trauma, and family context.
|
||||
- Clarify the phrase "until the child reaches an age of spiritual understanding" and how the teaching defines that transition.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reordering option: place the parental-unity/household-atmosphere chapter before correction, or add a transition explaining why correction is introduced at this point. -->
|
||||
|
||||
### Reflection and Action
|
||||
|
||||
#### Heart-level reflections
|
||||
**Dependent Sonship:** Jesus modeled a life of complete dependence on His Father ("I don't do anything but I see my father do it" [9]). In what areas of your daily life are you struggling to walk in instant obedience to your Heavenly Father? How might this struggle affect your children's ability to obey your voice [11]?
|
||||
|
||||
**The Power of the Model:** In the eyes of a young child, you represent God—His authority, His love, and His safety [10, 62]. When you come home on edge or exhausted, what kind of father or mother are you modeling [11, 60]?
|
||||
|
||||
**Multi-Generational Legacy:** Are there areas where you have fallen into passive parenting or short-sightedness [11, 12]? If you parented with a vision that extended three generations deep, what would you change about your household today [12, 55]?
|
||||
|
||||
#### Action steps
|
||||
**The Refuge Audit:** Identify one major source of fear, anger, or insecurity in your own heart [13]. Set aside a specific time to bring this before the Lord, asking Him to deal with the root of this brokenness [13]. Re-read Proverbs 14:26 (NKJV):
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [13]
|
||||
|
||||
Write down how you will yield to His healing hand this week to make your home a stronger refuge [13, 62].
|
||||
<!-- EDITORIAL COMMENT: Rewrite before use with parents. Replace technique-oriented physical-discipline exercises with calm de-escalation, supervision, repair, boundaries, and help-seeking practices after professional review. -->
|
||||
|
||||
## Chapter 2: Redemptive Correction: Straightening the Path with Love
|
||||
|
||||
|
||||
### "Narrowing Up" vs. The Demand for "Experiences"
|
||||
|
||||
Scripture defines training a child through the Hebrew lens of "dedicating, disciplining, narrowing up, or choking out" [18]. It means to straighten a child's path, protecting their outlook, behavior, ideals, views, and influences from being overwhelmed by the weeds of the world [18]. This directly contradicts modern humanistic reasoning, which insists children must be given broad "experiences" to discover themselves [19]. This humanistic philosophy is a widening of the way, which the Bible explicitly warns against in Matthew 7:13 (NKJV):
|
||||
|
||||
> "Enter through the narrow gate, for the gate is wide and the way is broad that leads to destruction, and there are many who enter through it." [19]
|
||||
|
||||
Parents are given the responsibility to shape their children's minds and protect them from worldly conformity [18, 21]. As Romans 12:2 (NKJV) charges us:
|
||||
|
||||
> "And do not be conformed to this world, but be transformed by the renewing of your mind, so that you may prove what the will of God is, that which is good and acceptable and perfect." [21]
|
||||
|
||||
The renewal of the child's mind is a task delegated directly to the parents [21, 22]. It requires parents to actively narrow up their child's path, choosing carefully what enters their hearts and minds rather than letting them wander broad roads of secular influence [18, 22].
|
||||
|
||||
### Debunking the Myth of Adolescent Rebellion
|
||||
|
||||
A cornerstone of modern parenting is the belief that teenagers must naturally go through a painful, dramatic season of rebellion [17]. We are told this is just a normal developmental phase [17]. However, this expectation is a deceptive lie that shapes our thoughts and actions toward failure [17].
|
||||
|
||||
In God's design, there is no mandatory period of rebellion [17]. The scriptural transition from childhood to maturity is intended to be a seamless progression directly into a personal relationship with the Father [17, 18]. When boundaries are clearly laid and maintained with love, teenagers do not have to wander into rebellion; they can walk straight from parental guidance into divine devotion [17, 18].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Major rewrite required for any parent-facing edition. Preserve this as source material, but place current safeguarding guidance and non-violent alternatives before any practical exercise. -->
|
||||
### The Mechanics of Correction: The Switch and the Loving Hand
|
||||
|
||||
To remove the foolishness that is naturally bound up in a young heart, God has provided specific, loving tools [23, 24]. As Proverbs 22:15 (NKJV) states:
|
||||
|
||||
> "Foolishness is bound up in the heart of a child. The rod of discipline will remove it far from him." [24]
|
||||
|
||||
Scripture is rich with wisdom regarding the diligent application of this rod of reproof:
|
||||
|
||||
- **Proverbs 13:24 (NKJV):** "He who withholds the rod hates his son, but he who loves him disciplines him diligently." [25]
|
||||
- **Proverbs 19:18 (NKJV):** "Discipline while there's hope, and do not desire his death." [25]
|
||||
- **Proverbs 29:15 (NKJV):** "The rod of reproof gives wisdom, but a child who gets his own way brings shame to his mother." [25]
|
||||
- **Proverbs 29:17 (NKJV):** "Correct your son and he will give you comfort. He will also delight your soul." [25, 26]
|
||||
|
||||
While humanism rejects these commands or distorts them into abuse, biblical correction is defined by tenderness and absolute control [26, 28, 29]. In our home, we established a strict physical boundary: our hands were made exclusively for holding, hugging, and expressing love [26, 29, 31]. We never used our hands to strike a child, nor did we use heavy, rigid tools like belts or wooden spoons, which can cause physical harm or anger [26].
|
||||
|
||||
Instead, the biblical "rod" refers to a tender, limber shoot or reed—such as a small lilac switch (roughly a quarter of an inch or smaller) with shaved bumps [27, 117]. This tool is designed to produce a quick, harmless sting on the bottom or thigh that instantly captures the child's attention without ever causing physical damage [26, 27, 118].
|
||||
|
||||
Crucially, this physical correction serves a redemptive spiritual purpose: it completely removes guilt and shame [26]. When a child is corrected, the spiritual debt of their disobedience is paid instantly [26, 30]. There is no lingering condemnation, no standing in corners, and no emotional isolation [26, 29, 30]. Once corrected, the child is immediately embraced, loved, and restored to perfect right standing within the home [26, 29, 30].
|
||||
|
||||
### The Rule of Calmness: Correcting Without Anger
|
||||
|
||||
Scripture issues a vital warning to fathers in Ephesians 6:4 (NKJV):
|
||||
|
||||
> "Fathers, do not provoke your children to anger, but bring them up in the discipline and instruction of the Lord." [22]
|
||||
|
||||
A parent must never, under any circumstance, correct a child while feeling angry, agitated, or on edge [26, 29, 53, 54]. Correcting in anger is not biblical discipline; it is an expression of the parent's lack of self-control [54]. It models anger to the child, which violates our primary calling as models of the Father [54].
|
||||
|
||||
If you find yourself becoming agitated or losing your emotional composure during a correction, you must stop immediately [29, 54]. It is far better to let an act of disobedience go uncorrected in that moment than to correct your child in anger [54]. The parent must first go before the Lord, find peace, and handle the situation only when they can do so with a calm voice, a peaceful facial expression, and a tender heart [29, 52, 53, 54].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Clarify that privacy protects dignity but never overrides supervision, accountability, a child's right to disclose harm, or access to independent help. -->
|
||||
### The Correction Room: Restoring Dignity in Private
|
||||
|
||||
To preserve a child's security and dignity, correction must never be a public spectacle [116]. It should not be done in front of guests, siblings, or in public places [34, 116].
|
||||
|
||||
Instead, correction should take place in a private, designated area—such as a bedroom or bathroom [29, 116]. This private environment—the "correction room"—is a place of calm, reassurance, and ultimate security [29, 116]. By keeping correction private, we honor our children, shield them from public embarrassment, and ensure that the process remains a tender, focused interaction of restoration between parent and child [29, 116].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- "Narrowing up" is presented as intentional formation and protection of a child's heart, mind, influences, ideals, and direction.
|
||||
- The chapter contrasts parental formation with a philosophy of broad, unbounded experience and self-discovery.
|
||||
- Adolescent rebellion is presented as neither inevitable nor divinely required.
|
||||
- Correction is framed as a redemptive process intended to remove shame, restore relationship, and return the child to belonging within the household.
|
||||
- The source teaching emphasizes calmness, self-control, privacy, and immediate reassurance during correction.
|
||||
- The chapter distinguishes the source's preferred correction tool from striking with hands or using heavy, rigid objects.
|
||||
- Private correction is connected to the preservation of a child's dignity and security.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, wording, and translation choices before publication.
|
||||
- The teaching's interpretation of the Hebrew concept translated as "train" and its use of terms such as "narrowing up" or "choking out" should be checked against reputable Hebrew lexicons and the original recording context.
|
||||
- The claims about adolescent rebellion, humanism, and the history of parenting should be framed as the speaker's theological and cultural argument rather than presented as settled developmental or historical fact.
|
||||
- The physical-discipline recommendations require careful safeguarding review before any public distribution. Do not present a thin implement, a specific body location, or a claimed "harmless" sting as universally safe; laws, professional guidance, child age, disability, trauma history, and individual circumstances vary.
|
||||
- For a parent-facing publication, prioritize non-violent, developmentally appropriate correction and include clear guidance for pausing, de-escalating, seeking help, and protecting children from injury or fear.
|
||||
- The phrase "spiritual debt ... paid instantly" should be examined theologically and pastorally so that children are not taught that physical pain is required to obtain forgiveness, belonging, or restored relationship.
|
||||
- Clarify what safeguards make a private correction setting genuinely safe and accountable, especially when the child is isolated with an adult.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: This chapter may be more effective immediately after the Introduction because it defines the relational atmosphere in which later parenting practices occur. -->
|
||||
|
||||
### Reflection and Action
|
||||
|
||||
#### Heart-level reflections
|
||||
**The Rule of Calmness:** Do you ever correct your children out of irritation, frustration, or a desire for convenience [22, 101]? What is the difference between biblical discipline (which restores) and humanistic punishment (which lingers) [21, 76]?
|
||||
|
||||
**Removing Shame:** Does correction in your home leave a lingering shadow of guilt or emotional distance, or does it result in immediate restoration, hugs, and perfect right standing [21, 76, 79]?
|
||||
|
||||
#### Action steps
|
||||
**The Hand Consecration:** Make a solemn covenant with your spouse today that your hands are strictly reserved for holding, hugging, and expressing love [20, 73]. Remove all wooden spoons, belts, and other rigid implements from your parenting toolbox [20, 73].
|
||||
|
||||
**Setting Up the "Correction Room":** Identify a private room in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 163]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that designated room [20, 164]. Agree to never correct your child in front of guests, siblings, or in public [23, 163].
|
||||
|
||||
**Practice Stopping:** If you feel your blood pressure rising during a correction, commit to saying: "I am not in a position to handle this right now." Ask your spouse to cover for you, or find a controlled situation before the Lord until you can speak in a calm, tender voice [22, 78, 101].
|
||||
|
||||
## Chapter 3: Parental Unity & the Atmosphere of the Home
|
||||
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite the language about children "exploiting" cracks so ordinary questions, disagreement, disability-related needs, and safety disclosures are not portrayed as manipulation. Keep the consistency principle while adding room for clarification. -->
|
||||
### The Principle of a Unified Front
|
||||
|
||||
A central pillar of a peaceful home is the absolute, seamless unity between husband and wife [159]. Parents must understand that children are highly astute observers; they are experts at sensing any lack of alignment and will naturally seek to exploit any crack to sow division or pit one parent against the other [159, 164].
|
||||
|
||||
To prevent this, parents must maintain a completely united front [159]. In our home, we established a simple but powerful protocol. Whenever a child approached one parent asking for a treat, more television time, or a specific permission, the immediate response was always:
|
||||
|
||||
> "What did Dad say?" or "What did Mom say?" [168, 169]
|
||||
|
||||
If the other parent had already given an answer, the discussion was instantly over [169]. The parent receiving the second appeal would simply state, "Well, there is your answer," ensuring that the child's attempt to bypass authority was met with a solid wall of parental agreement [169]. This level of consistency and predictability is not a rigid, legalistic exercise; rather, it provides children with an immense sense of security because they know exactly where the boundaries stand [47, 62, 185].
|
||||
|
||||
### Private Alignment over Public Disagreements
|
||||
|
||||
Maintaining a united front means that parents must make a covenant never to disagree, correct, or expose each other's faults in front of their children [162, 163, 164]. Doing so publicizes division and teaches children how to manipulate their parents, which ultimately tears down the spiritual authority of the home [164].
|
||||
|
||||
Inevitably, there will be moments when one parent observes their spouse making a decision or handling a disciplinary situation in a way they wouldn't have chosen [169, 170]. The natural temptation is to immediately step in and express "wisdom" or correct the spouse on the spot [170]. This is a critical mistake [170].
|
||||
|
||||
When you feel that irritation rise, you must first deal with your own internal reaction [170]. In front of the children, you must completely support your spouse's decision [162, 163]. Any adjustments, differing views, or scale of discipline must be discussed strictly in private, behind closed doors [162]. In our home, if Deanna handled a situation and I disagreed with the method, we would discuss it privately later so that we could align our hearts before the Lord, but the child always saw us standing as one [55, 162].
|
||||
|
||||
### Healing the Crack: Humility and Restoration
|
||||
|
||||
Because parents are human, there will be times when they fail to maintain this standard and inadvertently display division or disrespect in front of the child [167]. When this happens, it must be corrected immediately in the spirit of humility [164, 166].
|
||||
|
||||
First, the parents must align privately [164]. The offending parent should go to their spouse and say:
|
||||
|
||||
> "Cariño, lo siento. I realize that I made you look bad in front of the child, and I repent." [164]
|
||||
|
||||
Second, depending on the situation, it is often necessary to go directly to the child to model genuine repentance and restore the standard of honor [164, 165]:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. The Lord is working in my heart, and I cannot make an excuse for what I did. I want to apologize to you for deshonrar (dishonoring) them in front of you, because they deserve honor." [165]
|
||||
|
||||
There is extraordinary, transformative power when a parent is willing to be authentic and humble before their children [166]. It models a soft, teachable heart and teaches children how to walk out repentance in their own lives [166].
|
||||
|
||||

|
||||
|
||||
### Atmosphere of Peace and Order
|
||||
|
||||
The physical environment of the home directly affects its spiritual atmosphere [157, 159]. A clean, orderly house is a powerful catalyst for a home filled with peace [159]. When a mother takes joy and satisfaction in nurturing and keeping the home, and the husband actively notices, appreciates, and verbalizes his gratitude, it weaves a beautiful bond of peace over the entire household [159, 160].
|
||||
|
||||
This atmosphere also requires parents to be highly sensitive to one another's limits [160]. Parenting is a demanding, daily labor, and there are times when "too much is too much" and one spouse is exhausted or on edge [143, 160]. In those moments of high stress, the other spouse must be ready to step in, "take the ball," and cover for them [48, 160]. This mutual support ensures that correction is never administered out of exhaustion or emotional agitation [48, 71, 185].
|
||||
|
||||
### Nurturing the Marriage: Horizontal and Vertical Communication
|
||||
|
||||
We must recognize that child training is not an isolated task; it is completely interwoven with every other area of family life, particularly the marriage relationship [157, 158]. If there is no peace between husband and wife, it is impossible to have lasting peace in training the children [158].
|
||||
|
||||
Healthy communication requires us to stop simply waiting for our turn to speak so we can make our own point, and instead learn to truly listen to one another's hearts [171, 172]. This communication must be intentionally nurtured [173].
|
||||
|
||||
To build this horizontal connection, we must make constant, deliberate "positive deposits" into our spouse's emotional bank account [181, 182]. As the proverb of the household says, if you put a coin in the piggy bank every single day, it will eventually be filled [182].
|
||||
|
||||
A highly practical and transformative exercise for married couples is to commit to a 30-day breakfast covenant [180]. For thirty consecutive days, sit down together for breakfast, and each day, make a specific, intentional positive deposit by telling your spouse one thing you sincerely estimate and appreciate about them [180, 181].
|
||||
|
||||
For husbands, this requires stepping away from vague, general statements like "You know I love you" or "You look good," and instead sharing specific, particular details of appreciation [183]. For wives, it means actively finding ways to make their husbands feel proud and respected, rather than assuming they only need to receive appreciation without giving it [183, 184]. This intentional focus changes the entire climate of the home because, as Scripture principles teach:
|
||||
|
||||
> "Buscad y hallaréis (Seek and you will find)." [181]
|
||||
|
||||
If you look for faults, you will surely find them; but if you intentionally seek the good in your spouse, you will find it and multiply it [181].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reframe this as a commitment to repair rather than a demand for immediate resolution. Add exceptions for unsafe conflict, coercive control, abuse, exhaustion, and the need for a healthy time-out. -->
|
||||
### The Covenant Rule: Never Go to Bed Angry
|
||||
|
||||
To safeguard the home's atmosphere, couples must establish a firm covenant line that they resolve never to cross [180]. Chief among these is the scriptural command:
|
||||
|
||||
> "...do not let the sun go down on your anger." [180]
|
||||
|
||||
In our thirty-seven years of marriage, we decided we would never go to sleep angry with one another [174, 177]. If a disagreement arose, we would take a "time out" to pray individually, allowing the Lord to deal with our own hearts first [175]. Then, we would return, ask for forgiveness where we had failed, and pray together [178]. We did not always agree on the specific point of contention immediately, but we agreed on God and gave Him the place of preeminence in our marriage [178].
|
||||
|
||||
As a husband, the Lord taught me that I must function as the priest of my home [177]. When my wife made a mistake or did something wrong, the Lord would use it to deal with me first, instructing me to carry the burden, be silent, and go to the cross for her just as Christ did for the Church [177]. When both husband and wife surrender their right to be right and prioritize the covenant, they establish a secure spiritual foundation that their children will naturally inherit, creating a magnificent generational advancement [8, 178, 179].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Parental unity is presented as a source of security, predictability, and authority within the home.
|
||||
- The chapter emphasizes checking with the other parent rather than allowing children to bypass a previously given answer.
|
||||
- Disagreements about decisions or discipline are to be handled privately rather than displayed before the children.
|
||||
- When parents fail publicly, immediate humility, apology, and restoration are presented as a model of repentance.
|
||||
- Household order, appreciation, mutual awareness, and practical support are connected to a peaceful atmosphere.
|
||||
- Marriage communication is framed as intentional listening and the repeated making of positive relational deposits.
|
||||
- The 30-day breakfast covenant is presented as a concrete practice of daily appreciation.
|
||||
- The command not to let the sun go down on anger is applied as a marriage covenant of prayer, forgiveness, and reconciliation.
|
||||
- The chapter presents parental surrender, marital covenant, and generational advancement as closely connected.
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, and the Spanish phrase "Buscad y hallaréis" before publication.
|
||||
- Preserve the distinction between the teaching's source claims and later editorial interpretation.
|
||||
- Clarify the difference between healthy parental unity and coercive control. A united front should not require a parent to conceal abuse, unsafe conduct, serious error, or a child's legitimate disclosure.
|
||||
- Children should be able to speak safely with either parent. The "What did Dad/Mom say?" practice should not be used to shut down questions, conceal a mistake, or prevent a child from reporting harm.
|
||||
- The instruction to support a spouse publicly and resolve disagreements privately needs explicit safeguarding exceptions for abuse, intimidation, coercive control, threats, or unsafe discipline. In those situations, protecting the child and seeking qualified help takes priority over preserving appearances.
|
||||
- The chapter's gendered descriptions of mothers nurturing the home, husbands leading as "priest," and wives making husbands feel proud should be identified as the speaker's marital framework rather than treated as the only faithful model for every family.
|
||||
- "Never go to bed angry" should be presented with room for healthy time-outs, sleep, boundaries, and professional help; immediate resolution is not always safe or wise during escalation.
|
||||
- Clarify the meaning, origin, and practical structure of the 30-day breakfast covenant when the original recording context is available.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Check the chapter and first subsection titles against the recording. "Textile Boundaries" may be an accidental or context-dependent term; preserve it here but consider a clearer reader-facing title. -->
|
||||
|
||||
### Reflection and Action
|
||||
|
||||
#### Heart-level reflections
|
||||
**The Cracks of Division:** Children are astute observers who look for alignment [24]. Can your children find any "cracks" between you and your spouse to get a different answer [24, 189]?
|
||||
|
||||
**Private Alignment:** Have you fallen into the trap of correcting, undermining, or arguing with your spouse in front of the kids [26, 193]? How can you build a stronger habit of waiting until you are behind closed doors to resolve parenting differences [26, 27, 192]?
|
||||
|
||||
#### Action steps
|
||||
**The "What Did They Say?" Protocol:** Practice the immediate gatekeeping response. Whenever a child asks for permission or a treat, always ask: "What did Dad say?" or "What did Mom say?" [24, 25, 198]. If the other spouse has given an answer, the discussion is permanently closed [25, 199].
|
||||
|
||||
**The 30-Day Breakfast Covenant:** Set your alarm 30 minutes earlier. Sit down together for breakfast every day for the next 30 days [32, 210]. Each morning, share one specific, particular detail that you sincerely estimate and appreciate about your spouse [32, 33, 211, 213]. Focus on finding the good, and watch the atmosphere of your marriage and home transform [34, 211].
|
||||
|
||||
**The Sunset Covenant:** Commit to the rule of Ephesians 4:26 (NKJV):
|
||||
|
||||
> "...do not let the sun go down on your anger." [34, 210]
|
||||
|
||||
Agree that no matter the disagreement, you will pray individually, come together, ask for forgiveness, and pray together before sleeping [34, 208].
|
||||
<!-- EDITORIAL COMMENT: Consider placing media, presence, and shared-work exercises before any infant-boundary discussion, moving from broadly applicable relational practices to age-specific material. -->
|
||||
|
||||
## Chapter 4: Guarding Influences & Practical Daily Wisdom
|
||||
|
||||
|
||||
<!-- EDITORIAL COMMENT: Consider renaming this section "Early Boundaries and Infant Safety." The current wording is memorable but unclear, and the material needs developmental and safeguarding rewriting before publication. -->
|
||||
### Textile Boundaries & Early Training
|
||||
|
||||
To train a child to listen to their parents' voices, training must begin in infancy with simple, knowable boundaries. Rather than overwhelming a toddler with a laundry list of hundreds of rules that they are incapable of following, parents should establish a few select, physical boundaries [72, 73].
|
||||
|
||||
A highly practical and successful method for this is blanket training [73]. Spreading a small blanket on the floor, the parent instructs the infant (typically starting around six to nine months of age):
|
||||
|
||||
> "I don't want you going off of that." [73]
|
||||
|
||||
Inevitably, the child's curiosity or old nature will lead them to test the boundary and attempt to crawl off [73, 79, 80]. In that moment, the parent administers a light, instant correction—such as a gentle tap on the hand—and places them back on the blanket, reinforcing the instruction [73]. Within just a few repetitions, the infant learns to associate their disobedience with the immediate correction and willingly remains within the border [73].
|
||||
|
||||
The goal of this training is not merely to restrict the child's movement or to protect household furniture, such as a coffee table [73]. Rather, it is to train the child to listen to and obey the parent's voice [73]. These physical boundaries provide children with immense security [74]. Just as the Lord establishes boundaries for our lives to keep us secure, clear boundaries in the home let children know exactly what is acceptable, preventing a frantic, heavily policed household and fostering an environment of deep spiritual peace [73, 74, 112].
|
||||
|
||||
### Guarding the Mind: "Tell-a-Vision" and Media
|
||||
|
||||
In a modern world saturated with technology, parents must exercise extreme vigilance regarding television, tablets, and media [115, 116]. The world's media system is highly intentional; it is designed with specific "channels" and "programming" to literally "tell your vision"—shaping the ideals, desires, and minds of children away from the Kingdom of God [116].
|
||||
|
||||
Allowing a television or a tablet to act as a surrogate parent is a dangerous convenience [116]. It acts as a deliberate distraction designed by the adversary to draw parents away from their greatest earthly blessing and responsibility: actively training their children [116]. While completely avoiding media in today's society is a challenge, limiting it strictly produces extraordinary, healthy fruit [115, 116]. By closing the door to secular programming, we prevent the enemy from exploiting gaps in our children's security and instead keep their minds pure and focused on the atmosphere of the home [105, 116].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Separate the transferable principle of presence and shared responsibility from the speaker's gendered household model. Add examples for single parents, dual-income families, disability, illness, childcare, and economic necessity. -->
|
||||
### Nurturing, Presence, and Owning Your Time
|
||||
|
||||
Effective child training cannot be outsourced; it is a precious gift and responsibility given directly by God to the parents [114, 118]. This training requires physical and mental presence [52]. You cannot train up a child in the way they should go if you are not there to walk beside them [52, 118].
|
||||
|
||||
This truth carries profound implications for the roles of both the mother and the father:
|
||||
|
||||
#### The Mother as the Nurturer
|
||||
|
||||
A mother's primary calling in most circumstances is to stay home, keeping the house and nurturing the family [117, 166]. In this sacred role, she fulfills her God-given ability to multiply [117, 118]. When a husband brings home a paycheck, the wife multiplies it into food and a meal; when provided a house, she multiplies it into a warm, peaceful home [118]. The work a mother does in the home far surpasses any secular career or paycheck [117, 118, 166]. Husbands must actively celebrate, honor, and protect this role rather than allowing the diabolical wisdom of the world to demean it [117, 118, 166].
|
||||
|
||||
#### The Father as the Provider of Time
|
||||
|
||||
For a mother to stay home, the father must be willing to step outside of the conventional worldly system to prioritize his family [120]. The Lord gave a specific word of wisdom: "Own your time." [120]. Fathers must seek the Lord for creative strategies to free up their schedules so they can be available, present parents [120]. This may mean starting a simple business or adjusting financial expectations to avoid the diabolical trap of Egypt, which demands two incomes and keeps parents too busy making bricks to build the family altar [117, 119, 120].
|
||||
|
||||
### Integrating Children into Daily Work
|
||||
|
||||
A common mistake parents make is separating their daily lives into strict categories of "work" (which is treated as a burden to be done alone) and "fun" (which is treated as the only desirable activity) [157]. While it is often faster and easier for a parent to paint a wall, do the dishes, or fold the laundry by themselves, this misses a critical opportunity for training [157].
|
||||
|
||||
Parents should actively integrate their children into all the affairs of daily life [115, 157]. Give an eight-year-old a paint roller and teach them how to paint; let the toddlers help push the buttons on the washing machine or play in the sink while doing dishes [157]. When children are included in these tasks, they do not grow up hating work or viewing it as an awful chore [157]. Instead, they learn that work is a natural, joyful expression of family life [157]. Ultimately, children do not need constant, artificial entertainment; they simply want to be with their parents, and sharing in daily labor bonds the family together in purpose [157].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Early training is presented as the establishment of a small number of clear, physical, understandable boundaries rather than an overwhelming list of rules.
|
||||
- The source teaching uses blanket training as an example of teaching an infant to respond to a parent's voice and remain within a defined boundary.
|
||||
- Boundaries are framed not only as restrictions but also as sources of security, predictability, and peace.
|
||||
- Media is presented as a formative influence that can shape a child's imagination, desires, ideals, and worldview.
|
||||
- The chapter calls parents to intentional presence rather than allowing devices to become surrogate caregivers.
|
||||
- The teaching presents a home-centered maternal role and a time-owning, financially creative paternal role as its preferred family framework.
|
||||
- Children are encouraged to participate in ordinary household work so that labor becomes a joyful expression of family life rather than an isolated burden.
|
||||
- Family presence and shared work are presented as more formative than constant artificial entertainment.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, and word-study claims before publication.
|
||||
- Confirm whether the chapter title "Textile Boundaries" is the intended wording or whether it refers specifically to blanket/physical boundaries; preserve the supplied title until the recording context is available.
|
||||
- The blanket-training example involves an infant, physical correction, and a potentially hazardous environment. Before any parent-facing use, consult current pediatric, child-safety, and safeguarding guidance; do not reproduce the method as a universal instruction or imply that a "gentle tap" is necessary for learning obedience.
|
||||
- Any early-childhood boundary practice should prioritize supervision, childproofing, developmentally appropriate expectations, non-violent redirection, and prevention of falls or access to unsafe objects. Infant behavior and repeated boundary-testing are normal developmental processes, not proof of an "old nature."
|
||||
- The language that media is designed by "the adversary," tells a child's vision, or necessarily displaces parental responsibility should be identified as the speaker's theological framing. A final resource should distinguish thoughtful media guidance from fear-based claims and acknowledge educational, relational, accessibility, and family-context differences.
|
||||
- The claims that child training cannot be outsourced and that mothers should ordinarily stay home should be presented as the teaching's family model, not as a universal measure of faithfulness or parental love. Account for single parents, dual-income households, adoptive and foster families, disability, illness, economic necessity, education, cultural context, and families with different vocational callings.
|
||||
- The language about two incomes, Egypt, and "making bricks" should be retained as source imagery but carefully contextualized so financial hardship is not treated as a moral failure and so the final book does not impose unsafe or unrealistic economic expectations.
|
||||
- When children participate in household work, include age-appropriate supervision and safety precautions. Paint, appliances, hot water, sinks, tools, chemicals, ladders, and other household hazards require adult judgment.
|
||||
- Clarify what "own your time" means in practical, sustainable terms and avoid presenting entrepreneurship or schedule changes as guaranteed solutions for every family.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Define "generational advancement" in plain language before using it as a repeated organizing term. Distinguish aspiration and inheritance from guarantees so children are not burdened by the metaphor. -->
|
||||
|
||||
### Reflection and Action
|
||||
|
||||
#### Heart-level reflections
|
||||
**Surrogate Parenting:** Is television or digital media acting as a surrogate parent or a distraction from your training responsibilities [38, 134]? How is "tell-a-vision" programming shaping the minds and desires of your children away from the Kingdom [38, 134]?
|
||||
|
||||
**Owning Your Time:** Fathers, are you caught in the "Egyptian" bricks-and-mortar trap of overworking at the expense of being present to train your children [39, 137]? What adjustments do you need to make to own your time [39, 138]?
|
||||
|
||||
#### Action steps
|
||||
**The Blanket Training Trial:** For infants (6–9 months), lay down a small blanket on the floor [36, 91]. Practice giving the quiet command: "I don't want you going off of that." [37, 91] Gently correct their hand when they test the boundary, and place them back on [37, 91]. Use this tool to train their ears to listen to your voice [37, 91].
|
||||
|
||||
**Integrating vs. Separating:** Stop treating household chores as a solo burden. This week, give your child a paint roller, have them help push buttons on the washing machine, or pull up a chair to help wash dishes [40, 175]. Let them participate in your daily life, reinforcing that the family works together with joy [40, 175].
|
||||
|
||||
## Chapter 5: Generational Advancement & the Covenant Family
|
||||
|
||||
|
||||
### The Principle of Generational Advancement
|
||||
|
||||
A primary objective of the covenant family structure is what we call "generational advancement" [8, 178, 179]. This means that the spiritual victories, emotional healing, and behavioral discipline established by the parents become the floor upon which the children stand [8, 46, 162]. Because children raised in a genuinely secure, peaceful environment do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome, they are uniquely positioned to stand on their parents' advancements and leap forward into their own divine destinies [8, 46, 162].
|
||||
|
||||
Our children still have their own struggles and areas of life that the Lord must work on [81]. This is a beautiful and necessary reality because everyone needs something in their life that forces them to cry out to the Lord and depend on Him [81]. However, generational advancement ensures that they do not start from scratch; they start from a position of inherited spiritual security [8, 46, 162].
|
||||
|
||||
### "Cutting the Penny in Half"
|
||||
|
||||
To keep our children from expecting perfection from us—while still keeping them engaged in the process of growth—we taught them a foundational concept [82]. When our daughters were around seven to nine years of age, we sat down for a teaching moment and told them [82]:
|
||||
|
||||
> "Girls, listen. Mom and I are going to be able to cut this penny in half. All this stuff on this half of the penny, the Father is going to work with us to remove it from our lives. But there is still going to be half of a penny left for you to deal with in your own life. And then you are going to have children, and you are going to cut that penny in half again. But you will always have half of the half that remains. Why? Because the Father needs to be sovereign to your children, and He will be." [82]
|
||||
|
||||
This simple, powerful teaching set a healthy expectation within our home [82]. Our daughters did not expect us to be flawless, perfect parents, but they constantly saw us leaning into the Lord, seeking His face, and working to deal with our own "half of the penny" [82]. This vulnerability and transparency created a beautiful, authentic environment where the entire family advanced together before the Lord [82].
|
||||
|
||||
### Covenant Priorities: God, Family, and Ministry
|
||||
|
||||
In establishing a stable, secure home, parents must walk in strict alignment with God's divine order of priorities [131]. We are firm believers in a covenant hierarchy that must never be compromised [131]:
|
||||
|
||||
1. **God First**
|
||||
2. **Family Second**
|
||||
3. **Ministry Third**
|
||||
|
||||
Tragically, when this order is inverted, the home suffers immensely [131]. We see this manifest in the lives of many "preacher's kids" who grow up bitter and distant from the Lord because their parents prioritized public ministry or the affairs of the church over the spiritual and emotional security of their own household [131]. Even for those carrying a powerful ministerial anointing, fathers must seek the Lord for the creative wisdom and divine provision necessary to protect their family time [131]. We must lift our vision higher to see that our children are our primary, most significant ministry [41, 131].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Move child-safety, independent support, and accountability ahead of language about submission or local headship. The permission to seek help should be prominent. -->
|
||||
### Relying on the Greater Body
|
||||
|
||||
No family is designed to function as an isolated island. Part of walking in the covenant is recognizing that you are not alone when you are parenting [133]. The Lord has intentionally structured the Body of Christ so that you have older, more mature people around you who have been given pastoral or apostolic responsibility over your life to speak wisdom, correction, and guidance into your household [133].
|
||||
|
||||
Furthermore, parents must actively teach and model honor for others [134]. In our home, we wanted our daughters to know that they were not restricted to only receiving help from us [134]. We gave them explicit permission that if they ever felt they needed outside spiritual help or counseling, they had the freedom to reach out directly to our trusted leaders and spiritual counselors [134]. By removing the fear of being threatened by outside help, we established a network of absolute security around our daughters [132, 134]. They grew up knowing that if Mom and Dad were struggling, there was a safe, ordained place in the local headship where help, restoration, and life-giving counseling could be found [133].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite with trauma-informed and consent-based language. Trust, grief, custody realities, and existing parent-child relationships need explicit treatment; instant authority should not be assumed. -->
|
||||
### Blended Families and Late Starts: Rebuilding the Foundation
|
||||
|
||||
We frequently meet parents who are entering the child training journey late—whether because they have recently come to know the Lord after their children are older, or because they are navigating the unique complexities of a blended family [147, 148]. In these situations, parents often ask how they can remove old, ungodly foundations that were laid before they entered the picture [147].
|
||||
|
||||
In these cases, the primary strategy is to become the model of the Father's love in their presence [148]. Walk before them as a consistent, unshakeable, secure place that they can count on day in and day out [148].
|
||||
|
||||
If you are dealing with older children where the primary training window has passed, look backward to see if there are any broken bridges of trust [148]. Seek the Lord and ask yourself: "Have I ever made any promises to my children that I have not kept?" [148]
|
||||
|
||||
If the answer is yes, you must do whatever it takes—no matter how difficult or costly to your finances—to keep your word and fulfill those promises [148]. This act of sacrificial integrity sends a powerful message that you are a parent of truth, modeling the covenant-keeping nature of our heavenly Father [148]. Combine this with doing extraordinary, unexpected things to display your love, and stay closely submitted to your local spiritual headship, who can help navigate the specific nuances of your household [148]. The Lord's grace is fully sufficient to heal, restore, and rebuild the foundations of any home that yields completely to His pattern [148].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Generational advancement is presented as children inheriting a foundation of spiritual security, emotional healing, and parental growth rather than having to begin from the same level of brokenness.
|
||||
- The "cutting the penny in half" illustration gives children permission to see parental imperfection while also seeing parents actively submit their lives to God's transforming work.
|
||||
- The teaching holds together two ideas: parents can remove or reduce patterns of brokenness, while children still have their own agency, struggles, and relationship with God.
|
||||
- The proposed covenant priority is God first, family second, and ministry third.
|
||||
- Children are presented as a primary ministry and a responsibility that should not be sacrificed to public ministry demands.
|
||||
- Parenting is framed as a communal responsibility in which mature, trusted members of the local church can provide wisdom, correction, counseling, and restoration.
|
||||
- Children are encouraged, in the source account, to have access to safe outside help rather than being limited to their parents alone.
|
||||
- Parents who begin later or who are navigating blended-family complexity are called to rebuild trust through consistency, integrity, fulfilled promises, demonstrated love, and patient presence.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, and the theological language surrounding "generational advancement" before publication.
|
||||
- Preserve the "cutting the penny in half" illustration and its source context, but clarify that children are not responsible for repairing or carrying their parents' unresolved wounds. Parental healing should reduce burdens on children, not assign them a quantified share of family brokenness.
|
||||
- The teaching's statement that everyone needs struggles that force dependence on God should be handled carefully. Do not romanticize trauma, abuse, poverty, disability, mental-health challenges, or other suffering as divinely necessary or as evidence of spiritual deficiency.
|
||||
- "God first, family second, ministry third" should be explained rather than used as a slogan that automatically resolves competing responsibilities. The final resource should address safety, marriage and parenting obligations, work, health, community, and the needs of vulnerable family members.
|
||||
- The claim concerning "preacher's kids" should be qualified and supported if retained. Children's experiences of ministry families are varied, and bitterness or distance from faith should not be attributed simplistically to parental prioritization.
|
||||
- Outside spiritual leaders, pastors, counselors, and "local headship" must be safe, qualified, accountable, and subject to appropriate safeguarding standards. Children should have confidential, age-appropriate ways to disclose concerns, including access to adults outside the parents' chosen circle when needed.
|
||||
- "Submission" to spiritual authorities must never mean unquestioning obedience, secrecy, isolation, surrender of parental or child safety, or protection of leaders from scrutiny. The final book should explicitly preserve the right to seek independent professional help and report abuse.
|
||||
- In blended families, rebuilding trust requires consent, patience, predictable care, respect for existing parent-child bonds, and attention to grief, loyalty conflicts, trauma, and legal/custody realities. A new spouse or parent figure cannot demand instant spiritual or relational authority.
|
||||
- The instruction to fulfill promises "no matter how difficult or costly" should be bounded by safety, legality, financial sustainability, and the child's best interests. Parents should not keep an unsafe, impossible, manipulative, or harmful promise merely to preserve appearances.
|
||||
- "Extraordinary, unexpected" demonstrations of love should be age-appropriate, non-coercive, and responsive to the child's actual needs rather than used to purchase trust or compliance.
|
||||
- Clarify whether "late" refers to age, conversion, remarriage, or a previous parenting approach, and avoid framing earlier family history as an "ungodly foundation" in a way that shames parents or children.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Place a brief safety/help page before the exercises. Keep source exercises clearly labeled and provide separately reviewed alternatives in the main workbook. -->
|
||||
|
||||
### Reflection and Action
|
||||
|
||||
#### Heart-level reflections
|
||||
**The Penny in Half:** Do your children carry the heavy burden of expecting you to be perfect [42, 43]? How can you model humility and the pursuit of growth rather than a false image of perfection [43, 95]?
|
||||
|
||||
**The Priority Order:** Honestly assess your calendar and energy. Are you living according to the covenant order: God First, Family Second, Ministry/Work Third [43, 44, 144]?
|
||||
|
||||
#### Action steps
|
||||
**The "Half-Penny" Conversation:** Gather your children (especially those ages 7–9 or older) [42, 95]. Share the "half-penny" teaching with them:
|
||||
|
||||
> "Mom and I are not perfect parents, but we are working with the Lord to clear away old battles so you don't have to fight them [41, 42, 95]. There will still be a portion left for you to deal with, but you will stand on our shoulders." [41, 42, 95]
|
||||
|
||||
**Rebuilding Broken Bridges (Late Starts / Blended Families):** Seek the Holy Spirit and ask: "Have I ever made any promises to my children that I have not kept?" [47, 161] If a promise comes to mind—no matter how small or how financially challenging—make a concrete plan to keep your word and fulfill that promise this month [47, 161].
|
||||
|
||||
### Themes captured for future workbook development
|
||||
|
||||
- The material moves from teaching content into self-examination, shared marital practices, and concrete household commitments.
|
||||
- The workbook treats parental transformation and modeling as the starting point for changes in the home.
|
||||
- The questions invite parents to examine obedience, emotional regulation, presence, priorities, division, media use, and generational vision.
|
||||
- The proposed exercises include a refuge audit, a calmness practice, parental-unity protocols, a 30-day appreciation covenant, media and time audits, shared household work, a half-penny conversation, and promise-repair work.
|
||||
- The source workbook is intended to be used by spouses together, not merely read individually.
|
||||
- Each chapter's practical section mirrors the book's larger sequence: model first, correct redemptively, build unity, guard influences, and advance the covenant family.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between the workbook citations and the original audio/NotebookLM source.
|
||||
- The physical-discipline exercises in Sections 2 and 4 should not be presented as ready-to-use instructions in a parent-facing workbook. Replace or substantially revise them after professional safeguarding review, with non-violent, age-appropriate alternatives centered on supervision, redirection, natural/logical consequences, repair, and emotional regulation.
|
||||
- The "correction room" exercise should not encourage isolating a child with an adult or imply that privacy overrides safety, accountability, or a child's right to disclose harm. Any final version should include clear safeguarding boundaries and appropriate access to trusted, independent help.
|
||||
- The suggestion to place a switch in the home should be removed from a practical action checklist unless the final theological and safeguarding review explicitly justifies its inclusion; the current source note must not be mistaken for an endorsement.
|
||||
- "Perfect right standing" and the idea that correction removes a spiritual debt require theological review so that children are not taught that physical pain is required for forgiveness, belonging, or restoration.
|
||||
- "If the other spouse has given an answer, the discussion is permanently closed" should be softened to allow clarification, correction of mistakes, accessibility needs, changing circumstances, and safe disclosure. Children must not be trained to stop asking questions or reporting concerns.
|
||||
- The 30-day breakfast and sunset covenants should allow for work schedules, illness, disability, conflict de-escalation, sleep, safety, and circumstances in which immediate reconciliation is not appropriate.
|
||||
- The blanket-training trial should not be reproduced without current pediatric and child-safety review. Infant crawling and boundary-testing are normal development; safe supervision and childproofing should come before obedience training.
|
||||
- The "Egyptian" overwork metaphor and "own your time" exercise should not shame parents who must work, rely on childcare, or manage financial hardship. Include varied family structures and realistic economic constraints.
|
||||
- Household-work activities require age-appropriate supervision around paint, appliances, water, heat, tools, chemicals, and other hazards.
|
||||
- The half-penny conversation should be adapted so children are not assigned responsibility for parental wounds or told they must inherit a predetermined portion of brokenness. Emphasize parental accountability, the child's agency, and freedom to seek help.
|
||||
- Promise-repair exercises should be bounded by safety, legality, financial sustainability, custody arrangements, and the child's best interests; a parent should not fulfill a harmful or impossible promise.
|
||||
- The workbook should include an explicit "when to seek help" page covering trusted pastoral care, licensed counseling, child-protection concerns, domestic abuse, mental-health crises, and situations in which a parent cannot stay calm or keep a child safe.
|
||||
<!-- EDITORIAL COMMENT: Consider placing this calendar after a revised workbook and a safety/help section. The calendar currently repeats source exercises that the workbook flags for review. -->
|
||||
|
||||
## The 30-Day Covenant Parenting Challenge Calendar
|
||||
|
||||
|
||||
This practical, day-by-day companion calendar is designed to help you and your spouse actively move from information to structural, heart-level transformation in your home [48]. Covenant parenting is a living relationship that must be intentionally walked out before the Lord and before your children [48, 62]. Use this daily tracker to build a secure sanctuary of peace in your household [48, 141].
|
||||
|
||||
---
|
||||
|
||||
### Week 1: Laying the Marital Foundation
|
||||
|
||||
The spiritual atmosphere of the home is anchored in the absolute unity of husband and wife [3, 199]. This week, we focus entirely on sealing the "cracks" of division, aligning our hearts privately, and nurturing horizontal communication [3, 24, 31, 200].
|
||||
|
||||
#### Day 1: The Sunset Covenant (Ephesians 4:26 (NKJV))
|
||||
|
||||
**Action:** Sit down with your spouse tonight and make a solemn covenant that you will never go to sleep angry [34, 218]. If a disagreement arises, commit to taking a private "time out" to pray individually, then come together to ask for forgiveness and pray together before sleeping [34, 216, 219].
|
||||
|
||||
**Scripture:** "...do not let the sun go down on your anger." [34, 54, 218, 221]
|
||||
|
||||
#### Day 2: Launching the 30-Day Breakfast Covenant
|
||||
|
||||
**Action:** Set your alarm 30 minutes earlier [54, 221]. Sit down for breakfast together (just the two of you) and share one specific, particular detail you sincerely appreciate and estimate about your spouse [32, 33, 54, 221, 224]. **Rule for Husbands:** Avoid generalities like "you look good"—find a particular, concrete action to celebrate [33, 224].
|
||||
|
||||
**Scripture:** "Seek, and you will find." [33, 222]
|
||||
|
||||
#### Day 3: The "What Did Dad/Mom Say?" Gatekeeping Protocol
|
||||
|
||||
**Action:** Align on the gatekeeping protocol [54, 210]. Whenever a child approaches you asking for a treat, permission, or a change in rules, your immediate, unthinking response must be: "What did Dad say?" or "What did Mom say?" [24, 25, 54, 210]. If the other spouse has given an answer, the discussion is permanently closed [25, 54, 210].
|
||||
|
||||
<!-- EDITORIAL COMMENT: The source labels this Day 4 activity as "Day 3." Preserve the source heading for traceability, but reconcile the breakfast count before publication. -->
|
||||
#### Day 4: Day 3 of the Breakfast Covenant
|
||||
|
||||
**Action:** Share your daily specific deposit [32, 33]. Today, focus on celebrating how your spouse handles pressure or exhaustion [30, 143, 201].
|
||||
|
||||
#### Day 5: Private Discipline Alignment Check
|
||||
|
||||
**Action:** Covenant together that you will never correct, undermine, or disagree with each other's disciplinary actions in front of the children [26, 204, 205]. If you disagree with how a situation was handled, deal with your own irritation privately and discuss it strictly behind closed doors later [27, 211].
|
||||
|
||||
#### Day 6: Modeling Humility & Repentance
|
||||
|
||||
**Action:** If you slipped up this week and displayed division or disrespect in front of your children, execute the restoration protocol [28, 205]. First, apologize to your spouse privately:
|
||||
|
||||
> "My love, I am sorry. I realize that I made you look bad in front of the child, and I repent." [28, 205]
|
||||
|
||||
Second, go to the child:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. I want to apologize to you for dishonoring them in front of you." [29, 206]
|
||||
|
||||
#### Day 7: Weekly Reflection & Rest
|
||||
|
||||
**Action:** During your breakfast covenant today, evaluate the atmosphere of the home [32, 221]. Has the spirit of peace and security increased? Ask: "Are we taking time to truly listen to one another's hearts, or are we just waiting for our turn to speak?" [31, 213].
|
||||
|
||||
---
|
||||
|
||||
### Week 2: Establishing Heart-Level Security & Early Boundaries
|
||||
|
||||
This week, we transition into early training boundaries and emotional security. We examine how our physical actions, voice tone, and early limits build a protective shield around our children [3, 20, 37, 103].
|
||||
|
||||
#### Day 8: Consecrating the Hands & the Voice
|
||||
|
||||
**Action:** Consecrate your hands and voice today [20, 226]. Declare that your hands are made exclusively for hugging, holding, and expressing love and tenderness [20, 84, 226]. Agree that your voice will never be the vehicle of correction, but only of instruction, praise, and love [226]. Remove all rigid correction implements (belts, heavy spoons) from the home [20, 84, 52].
|
||||
|
||||
#### Day 9: Establishing the "Correction Room"
|
||||
|
||||
**Action:** Identify a private, designated area in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 174]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that room [20, 175]. Commit to never correcting your children publicly or in front of siblings [23, 174].
|
||||
|
||||
#### Day 10: Expressive Love Deposits
|
||||
|
||||
**Action:** Be intentionally expressive today [139, 140]. Hug your children unexpectedly, write them a sweet note, or tell them specific reasons why you love them and estimate who they are [139, 140]. Ensure they know their security is unshakeable [87, 103].
|
||||
|
||||
#### Day 11: Blanket Training Setup (For Infants 6–9 Months)
|
||||
|
||||
**Action:** Spread a small blanket on the floor [36, 102]. Place the infant on it and say quietly: "I don't want you going off of that." [37, 102] When they attempt to crawl off, gently tap their hand to associate disobedience with instant correction, and place them back on the blanket [37, 102]. Repeat this several times in a focused, calm session [37, 102]. **(For older children, choose a single, clear boundary—like not touching the coffee table—to train their ears to listen to your voice [102].)**
|
||||
|
||||
#### Day 12: The Rule of Calmness Practice
|
||||
|
||||
**Action:** If you feel your blood pressure rising or feel on edge during a disciplinary moment today, practice stopping immediately [22, 112]. Say to your spouse: "I am not in a position to handle this right now," and let them step in and cover for you, or find a calm place before the Lord before addressing the situation [22, 30, 52, 112, 185].
|
||||
|
||||
#### Day 13: Instant Obedience Check
|
||||
|
||||
**Action:** Evaluate if you have fallen into the trap of counting to three or repeating commands multiple times [227]. Commit today to expecting instant obedience to your voice [141, 227]. Give clear, loving instruction once, and address any delay as disobedience [140, 141, 227].
|
||||
|
||||
#### Day 14: Mid-Point Reflection
|
||||
|
||||
**Action:** Reflect on Proverbs 14:26 (NKJV) [3, 74]. Write down how growing in your own reverent fear and instant obedience to the Heavenly Father has created a physical and spiritual "shield of refuge" for your children this week [3, 13, 74].
|
||||
|
||||
---
|
||||
|
||||
### Week 3: Integrating Work, Joy, and Presence
|
||||
|
||||
We are called to own our time, stay present, and include our children in the everyday affairs of life so they learn that labor is a joyful, natural expression of the family [5, 39, 40].
|
||||
|
||||
#### Day 15: Media Audit ("Tell-a-Vision")
|
||||
|
||||
**Action:** Walk through your home and evaluate the media intake [38, 145]. Identify where tablets, phones, or television are acting as "surrogate parents" or distractions [38, 145]. Agree to strictly limit or close the door to secular programming to keep the atmosphere of the home pure [38, 145].
|
||||
|
||||
#### Day 16: Erasing the Work vs. Fun Boundary
|
||||
|
||||
**Action:** Stop treating household chores as a solo burden [40, 186]. Today, pull up a chair and let your toddler help wash dishes, push the buttons on the washing machine, fold laundry, or give your older child a paint roller to help paint [40, 186]. Make work a shared, joyful experience of living life together [40, 186].
|
||||
|
||||
#### Day 17: Father's Covenant: Owning Your Time
|
||||
|
||||
**Action:** Fathers, spend time before the Lord today asking for creative, Kingdom strategies to "own your time" [39, 149]. Examine your schedule to ensure you are physically and mentally present for your family rather than caught in the "Egyptian brick-making trap" of excessive work [39, 148, 149].
|
||||
|
||||
#### Day 18: Celebrating the Mother's Role
|
||||
|
||||
**Action:** Husbands, take time today to actively celebrate, verbalize, and honor the sacred work your wife does in nurturing the home and multiplying your family's resources [30, 39, 147]. Let her know that her presence far surpasses any secular career or paycheck [39, 146, 147].
|
||||
|
||||
#### Day 19: The "I Will Say Yes" Promise
|
||||
|
||||
**Action:** Look for opportunities to say "Yes!" to your children today [151]. Tell them: "There are times I have to say no to protect you, but I am looking for every opportunity to say yes to you." [151, 152] Plan a family-appropriate trip, surprise outing, or special treat to fulfill this promise [151, 153].
|
||||
|
||||
#### Day 20: Outdoor Activity Shift
|
||||
|
||||
**Action:** If the atmosphere of the home feels pent up or stressful today, physically shift locations [179, 180]. Take the children outside to build a fort, play in the yard, go to the park, or take a simple drive [179, 180]. Use nature and play as a release valve for energy [178, 180].
|
||||
|
||||
#### Day 21: Weekly Reflection: Celebration of Individuality
|
||||
|
||||
**Action:** Discuss how your children are uniquely wired [118, 121]. Repent of any verbal comparisons between siblings [119, 120]. Ask the Holy Spirit for custom wisdom (Rhema word) for each child's specific, unique design [117, 118].
|
||||
|
||||
---
|
||||
|
||||
### Week 4: Generational Legacy & Deep Restoration
|
||||
|
||||
We parent with a multi-generational vision, preparing our children to stand on our spiritual shoulders and leap forward into their own divine destinies [6, 12, 41].
|
||||
|
||||
#### Day 22: The "Half-Penny" Conversation
|
||||
|
||||
**Action:** Gather your children (especially those ages 7–9 or older) for a teaching moment [42, 106]. Explain the "half-penny" concept:
|
||||
|
||||
> "Mom and Dad are not perfect, and we are working with the Lord to clear away old battles so you don't have to fight them [42, 106]. There will still be a portion left for you to deal with under His sovereign hand, but you will stand on our shoulders." [41, 42, 106]
|
||||
|
||||
#### Day 23: Rebuilding Broken Bridges (Late Starts & Blended Families)
|
||||
|
||||
**Action:** Ask the Holy Spirit: "Have I ever made any promises to my children that I have not kept?" [47, 172] If a promise comes to mind—no matter how small or financially difficult—write down a concrete plan to keep your word and fulfill it this month [47, 172]. Fulfilling your promises models our covenant-keeping Father [47, 172].
|
||||
|
||||
#### Day 24: Covenant Priority Check
|
||||
|
||||
**Action:** Audit your calendar, finances, and energy [57]. Are you walking in strict alignment with God's covenant order of priorities: God First, Family Second, Ministry/Work Third? [43, 44, 57] Adjust any inverted priorities today [44].
|
||||
|
||||
#### Day 25: Honoring the Greater Body
|
||||
|
||||
**Action:** Teach your children that they are not alone, and that they have the freedom to reach out to trusted, ordained local leaders or counseling elders if they ever need help or counsel [45, 157]. Model this by showing submission and honor to local headship yourself [45, 157].
|
||||
|
||||
#### Day 26: Facing Insecurities
|
||||
|
||||
**Action:** Realize that any insecurities you carry do not have to be passed down [14, 104]. Bring your deep-seated fears or past family wounds to the Lord, allowing Him to heal you so that your children can walk in total, inherited spiritual security [14, 73, 104, 105].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reconcile the breakfast count before publication. The calendar launches the practice on Day 2, labels Day 4 as Day 3, and calls Day 27 the 30th breakfast; the schedule does not clearly support all three labels. -->
|
||||
#### Day 27: Concluding the 30-Day Breakfast Covenant Challenge
|
||||
|
||||
**Action:** As you complete your 30th breakfast together, commit to making these daily specific deposits a permanent, lifelong habit of your marriage [32, 223]. Celebrate how focusing on finding the good has transformed your relationship [34, 222].
|
||||
|
||||
#### Day 28: Preparing the Next Generation to Model
|
||||
|
||||
**Action:** Reflect on Acts 13:36 (NKJV) [12]. Pray a blessing over your children, asking the Lord to equip them to serve His purposes faithfully in their own generation [12, 65].
|
||||
|
||||
---
|
||||
|
||||
### Days 29–30: Evaluation & Generational Forwarding
|
||||
|
||||
#### Day 29: Joint Spouse Review
|
||||
|
||||
**Action:** Review the completed 30-day challenge. Where did you see the most significant fruit? Where did the Holy Spirit highlight areas that still need to be "narrowed up" or healed? [14, 73, 76]
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite the "ceiling becomes floor" language as an aspirational blessing rather than a guarantee or an obligation placed on children to reproduce a parent's ministry, theology, or achievements. -->
|
||||
#### Day 30: Sealing the Legacy
|
||||
|
||||
**Action:** Commit this parenting journey to the Lord in prayer [193]. Declare that your family is stepping into generational advancement, and that the spiritual ceiling of your life has officially become the floor upon which your children stand [6, 41, 105].
|
||||
|
||||
### Development themes
|
||||
- The calendar begins with marital unity and communication before moving into child-focused boundaries and correction.
|
||||
- Its sequence progresses from household atmosphere, to heart-level security, to presence and shared work, and finally to generational legacy and restoration.
|
||||
- The daily practices emphasize appreciation, repentance, calmness, parental consistency, presence, media awareness, shared labor, individualized attention, promise keeping, and prayer.
|
||||
- The calendar translates the broader teaching into a structured rhythm of daily action, weekly reflection, and final evaluation.
|
||||
- The challenge repeatedly connects parental transformation with the security and future formation of children.
|
||||
- The calendar includes both couple-centered practices and child-centered conversations, allowing later editions to distinguish exercises for spouses, infants, older children, blended families, and ministry families.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between this calendar's citations and the original audio/NotebookLM source.
|
||||
- The calendar contains repeated instructions to use a switch, tap an infant's hand, and conduct private physical correction. These instructions should not be distributed as a ready-to-use parent program. Before any public edition, replace or substantially revise them after professional pediatric, child-development, and safeguarding review, centering non-violent redirection, supervision, natural/logical consequences, repair, and emotional regulation.
|
||||
- The "correction room" should not be framed as a private space where a child is isolated with an adult without safety, accountability, and access to independent help. Privacy should protect dignity, not conceal harm.
|
||||
- "Never go to sleep angry" and the sunset covenant should allow safe time-outs, sleep, boundaries, and delayed conversation. Immediate reconciliation is not appropriate in every conflict, particularly where there is intimidation, coercive control, abuse, or escalating danger.
|
||||
- The "What Did Dad/Mom Say?" protocol and the phrase "the discussion is permanently closed" require safeguards. Parents may need to correct a mistake, hear a child's question, accommodate disability or changing circumstances, or receive a disclosure of harm. Unity must not become silencing.
|
||||
- Day 8's instruction that the voice should never be a vehicle of correction conflicts with the broader source teaching's emphasis on correcting disobedience and should be clarified in the original recording context.
|
||||
- Day 13's "instant obedience" exercise should be reviewed developmentally. Young children may need repetition, processing time, communication support, or an explanation of a request; delay is not automatically defiance.
|
||||
- The 30-day breakfast count appears internally inconsistent: the calendar launches the breakfast covenant on Day 2, labels Day 4 as "Day 3," and calls Day 27 the 30th breakfast even though the listed daily breakfast actions do not clearly account for thirty meetings. Reconcile the schedule before publication.
|
||||
- The "I Will Say Yes" promise should not pressure parents into purchasing outings or treats, or make a child's felt love dependent on receiving a yes. Define realistic, relational ways to say yes while preserving necessary boundaries and financial sustainability.
|
||||
- The "Egyptian brick-making trap," the instruction that a mother's presence surpasses a secular career, and the gendered roles should be presented as the speaker's family framework, not a universal measure of faithfulness. Include single parents, dual-income families, childcare, disability, illness, economic necessity, adoptive/foster families, and varied vocational callings.
|
||||
- Outdoor drives and activities require ordinary safety planning, supervision, weather awareness, transportation restraints, and age-appropriate expectations.
|
||||
- Day 21's language about each child being uniquely wired is valuable, but "Rhema word" should be explained and should not replace listening to the child, developmental knowledge, qualified support, or medical/mental-health care.
|
||||
- The half-penny exercise should not tell children they inherit a predetermined portion of parental brokenness. Emphasize parental accountability, the child's agency, and freedom to seek help.
|
||||
- Trusted local leaders, "counseling elders," and "local headship" must be qualified, accountable, safeguarding-compliant, and open to independent scrutiny. Children must retain access to safe adults outside the parents' chosen leadership circle and to licensed professional help.
|
||||
- "Submission" to church authority must never require secrecy, unquestioning obedience, isolation, surrender of safety, or protection of leaders from scrutiny.
|
||||
- Promise-repair exercises should be bounded by safety, legality, custody arrangements, financial sustainability, and the child's best interests. An unsafe or impossible promise should be addressed honestly rather than fulfilled at any cost.
|
||||
- "Generational forwarding" and the statement that a parent's spiritual ceiling becomes a child's floor should be framed as an aspirational metaphor, not a guarantee or a burden placed on children to continue a parent's ministry or spiritual achievements.
|
||||
@@ -0,0 +1,738 @@
|
||||
---
|
||||
title: "The Pattern of Covenant Parenting — Bryan Hickman Teaching (Revised Editorial Draft)"
|
||||
status: editorial-review-draft
|
||||
source: "NotebookLM book-style synthesis from audio recordings of Bryan Hickman's teaching sessions"
|
||||
derived_from: "[[covenant_parenting_bryan_hickman]]"
|
||||
tags:
|
||||
- parenting
|
||||
- covenant-parenting
|
||||
- church-teaching
|
||||
- family
|
||||
- discipleship
|
||||
- Bryan-Hickman
|
||||
- book-draft
|
||||
- editorial-review
|
||||
---
|
||||
|
||||
# The Pattern of Covenant Parenting
|
||||
|
||||
**Global source declaration:** This separate editorial draft is derived from [[covenant_parenting_bryan_hickman]]. It preserves the supplied NotebookLM chapter synthesis from Bryan Hickman's audio teaching as source material. The whole manuscript is an interpretation/synthesis from voice recordings, not a verified verbatim transcript, theological position paper, clinical resource, or safeguarding-approved parenting program.
|
||||
|
||||
**Bryan review status:** Bryan Hickman's review is pending. All editorial normalization, interpretation, Scripture handling, and proposed rewrites are provisional and must not be presented as Bryan's approved wording until he reviews them.
|
||||
|
||||
**Editorial status:** This revision standardizes heading hierarchy, repeated section labels, punctuation, citation spacing, quotation presentation, and workbook subsection naming. Source wording is otherwise retained as closely as possible.
|
||||
|
||||
**Scripture translation convention:** The intended reference translation for Scripture verification is the New King James Version (NKJV). Body quotations are retained source renderings unless explicitly identified as verified NKJV text; they must not be assumed to be verbatim NKJV. See [[covenant_parenting_bryan_hickman_nkjv_verification]] for the verbose reference register and source links.
|
||||
|
||||
**Review convention:** `<!-- EDITORIAL COMMENT: ... -->` marks a proposed reorder, rewrite, clarification, or publication-review point. These comments are editorial notes, not Bryan Hickman's words. Existing review sections remain in place so safety-sensitive and unverified material is not mistaken for endorsement.
|
||||
|
||||
<!-- EDITORIAL COMMENT: Chapter 0 was reshaped into a continuous parent-facing introduction. The original labeled themes and review lists remain represented in the later chapters and editorial metadata; this introduction now carries the book's central movement as prose. -->
|
||||
<!-- EDITORIAL COMMENT: Present this as an unnumbered Introduction in the parent-facing edition. Retain the archival source identity separately if Chapter 0 is needed for traceability. -->
|
||||
## Introduction
|
||||
|
||||
Parenting is often reduced to the question of how to make a child behave. We ask how to stop the arguing, correct the disobedience, establish better habits, or get through the next difficult stage. Those questions matter, but they are not the whole purpose of training a child. The deeper work is to form a heart that can grow in love, a clear conscience, and sincere faith. As 1 Timothy 1:5 says, "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith." The hope is not simply to produce outward compliance. It is to raise sons and daughters who can come to know their heavenly Father, receive their identity from Him, and walk faithfully in the purpose He gives them.
|
||||
|
||||
That kind of formation begins with the parents. Children learn far more from what they see in us than from what we say to them. They watch how we respond when we are tired, disappointed, interrupted, or afraid. They notice whether our words agree with our lives. In the early years, a parent becomes a child's first picture of authority, love, protection, and security. This makes parenting a form of discipleship, but it also makes it a form of parent training. Before we can ask our children to listen, we have to become people who listen to the Lord. Before we can ask for self-control, we have to let God deal with our anger. Before we can lead a child toward healing, we have to be willing to bring our own wounds into His light.
|
||||
|
||||
The model for this surrendered life is Jesus. His life shows what it looks like to depend on the Father rather than act from self-protection or self-importance: "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." The point is not to make parents flawless. It is to help us become honest, obedient, teachable people whose children can see us turning toward God when we fail. Proverbs 14:26 says, "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." A child's security grows when the adults around them are learning where true security comes from.
|
||||
|
||||
That refuge is built inside the atmosphere of the home. Parenting does not happen in isolation from marriage, family rhythms, work, money, or the condition of the parents' hearts. A peaceful household requires husband and wife to pursue unity, repair conflict, and refuse to make their children carry the weight of adult disagreement. It requires daily deposits of appreciation, patient listening, and the humility to apologize when we have dishonored one another. It also requires practical care: noticing when a spouse is exhausted, stepping in when help is needed, and protecting the home from becoming a place where pressure is constantly passed down to the children. The thirty-day breakfast covenant and the command in Ephesians 4:26 not to let the sun go down on anger belong to this larger work of building peace, not to a formula for pretending that conflict never exists.
|
||||
|
||||
Within that atmosphere, parents can establish boundaries without making fear the center of the relationship. Children need direction. They need to know what is safe, what is expected, and what belongs outside the life of the family. Jesus' warning about the broad and narrow ways in Matthew 7:13–14 gives this work a larger frame. Training means helping children learn to listen, to turn away from harmful influences, and to practice what is good until wisdom becomes part of their own character. When a child disobeys, the goal must be restoration rather than humiliation. A parent who is angry or out of control should pause rather than use discipline to release frustration. Correction should protect the child's dignity, leave room for truth and disclosure, and lead the family back toward calm, belonging, and trust. The practical questions of boundaries, correction, and safety require care, patience, and age-appropriate wisdom; they should never be separated from love.
|
||||
|
||||
This formation takes place in ordinary life. It happens while parents are deciding what enters the home through television, phones, tablets, and other media. It happens when a mother or father chooses presence over constant distraction, when a family shares work instead of treating chores as an interruption, and when children are welcomed into the real responsibilities of household life. The goal is not to create an artificial world where children never encounter difficulty. It is to give them a secure place from which they can learn how to meet difficulty with faith, responsibility, and compassion. A boundary can be an expression of care. A shared task can become a lesson in service. A quiet conversation can shape a child's understanding of God more deeply than a lecture.
|
||||
|
||||
The book also looks beyond the immediate moment. Parents are not only managing today's behavior; they are building on behalf of people they may never meet. This is the long view behind Proverbs 22:6: "Train up a child in the way he should go, and even when he grows old, he will not abandon it." The healing we pursue, the patterns we refuse to pass on, the promises we keep, and the way we order our lives all become part of the foundation our children inherit. This is the idea of generational advancement: children should not have to begin by fighting every battle their parents were given grace to face. They will have their own struggles and their own relationship with God, but they can stand on a foundation of greater security, honesty, and wisdom. That is why parental humility matters. We can tell our children that we are still growing, that the Lord is still dealing with us, and that our imperfections do not cancel our responsibility to keep moving toward Him.
|
||||
|
||||
This vision also changes how we think about the place of family in the wider work of the church. God comes first, family cannot be sacrificed to public ministry, and ministry must flow from a life that is being lived truthfully at home. Parents need the wisdom of mature and trustworthy people around them, and children need safe access to help beyond their parents when they need it. A covenant family is not an isolated family. It is a household learning to receive correction, offer hospitality, repair what has been damaged, and make room for the work God is doing across generations.
|
||||
|
||||
The pages that follow develop these convictions through the realities of family life: how parents model the Father, how a home learns to respond to conflict, how husband and wife protect the atmosphere of the household, how families guard the influences shaping their children, how ordinary work and presence become part of discipleship, and how parents can rebuild trust when they are beginning late or carrying a complicated history. The final reflections and exercises are meant to move these ideas out of the abstract and into conversations, prayers, decisions, and small daily practices. Covenant parenting is not a checklist that proves we are doing everything right. It is a living relationship, walked out before the Lord and before our children, one faithful response at a time.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: This chapter supplies the theological and relational foundation. Consider adding a short, independently reviewed help-and-safety page before the practical correction material later in the sequence. -->
|
||||
## Chapter 1: The Foundations of Modeling & Multi-Generational Vision
|
||||
|
||||
|
||||
### The Ultimate Goal of Training
|
||||
|
||||
The true purpose of child training is not to construct a superficial set of behavioral modifications or to simply "tweak" outward conduct. It is to lay a foundational, structural establishment. Specifically, the ultimate goal is to raise children who can transition cleanly into their own spiritual inheritance. As the scriptures state in 1 Timothy 1:5:
|
||||
|
||||
> "The goal of our instruction is love from a pure heart, a good conscience, and a sincere faith."
|
||||
|
||||
Our target is to have children who seamlessly step into a personal relationship with their heavenly Father, and in that place find their Kingdom identity and faithfully walk out their Kingdom purpose in this generation. [7]
|
||||
|
||||
The transition from childhood through adolescence is intended by God to be a seamless, direct journey into relationship with the Father [17, 18]. Society has largely convinced itself that teenagers must undergo a painful, mandatory phase of rebellion simply because they do not know what else to do [17]. However, this expectation is a deception that lowers our standards and shapes our actions toward failure [17]. God's design is for children to move directly from childhood into a vibrant, personal relationship with Him [17, 18].
|
||||
|
||||
### Jesus as the Ultimate Model
|
||||
|
||||
To understand how to train children, we must first look at Jesus. Jesus did not come to earth merely to perform miracles or display His divinity; rather, He came to model what a son can do when entirely dependent upon his Father [11, 12]. He walked out His earthly life as a man, not as God, to demonstrate that obedience is fully possible for a heart surrendered to the Father [12]. He lived by a simple, profound standard:
|
||||
|
||||
> "I don't do anything but I see my father do it. I don't say anything but I hear my father say it." [12, 23]
|
||||
|
||||
Just as Jesus modeled sonship for us, parents are called to model the Father to their children [12]. In the eyes of a young child, the parent is effectively "God"—the ultimate representation of authority, love, and security in their life [15]. This is a sobering reality [13, 15]. Parents have both the privilege and the solemn responsibility to demonstrate face-to-face what a loving Father and Mother are like until the child reaches an age of spiritual understanding where that devotion is transitioned to the Lord [15].
|
||||
|
||||
The single most powerful force that will affect your children is for you, the parent, to become an obedient son of God [14]. Because parents are always modeling, every reaction—even after a hard day when we are on edge—sets an example [13]. We cannot expect our children to walk in instant obedience to our voice if we ourselves are not walking in instant obedience to the voice of our heavenly Father [13].
|
||||
|
||||
### Building for Generations
|
||||
|
||||
To parent effectively, we must reject short-sightedness and adopt a multi-generational vision [8, 9, 10]. We see the danger of passivity illustrated in the history of the Church. During the "Jesus movement" of the 1970s, a wave of believers dropped out of school and stopped preparing for the future under the premise that "Jesus is coming back" [9]. Because they failed to build for the next generation, the world quickly stepped in and took over every major institution [9].
|
||||
|
||||
Conversely, if we believe that the Kingdom will be fully established only in our lifetime, we risk failing to prepare our children for the long-term work [9]. While we must always look for the "end suddenly," we must build and train our children as if the work will span multiple generations [9, 10]. We are not going to build it all in our lifetime; our task is to raise up the little ones placed in our hands so that they will be faithful to God's purposes in their own generation [7]. As Acts 13:36 records of King David:
|
||||
|
||||
> "For David, after he had served God's purposes in his own generation, fell asleep and was laid among his fathers and underwent decay." [7]
|
||||
|
||||
### Healing the Parents First
|
||||
|
||||
Because children copy what we model, the child training process is, in reality, a parent training process [15, 128]. If we carry unresolved brokenness, anger, or fear, we will pass those patterns down [15, 46]. Allowing the Lord to heal us requires deep humility and submission, but it is the greatest gift we can offer our children [15]. As we grow in our reverence and fear of the Lord, we gain a strong confidence that creates a literal shield of security and a place of refuge for our households [16]. This is beautifully promised in Proverbs 14:26:
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [16]
|
||||
|
||||
When we allow the Lord to deal with our own deep-seated insecurities, we achieve what is called "generational advancement" [46, 47, 161, 162]. Children who are raised in an atmosphere of genuine spiritual security do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome [46, 47, 162]. Instead, they get to stand on their parents' advancements and leap forward into their own destiny [46, 162]. This establishes the foundation for the lifelong training command found in Proverbs 22:6:
|
||||
|
||||
> "Train up a child in the way that he should go, and even when he grows old, he will not abandon it." [16]
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- The intended goal of training is a child's personal relationship with the heavenly Father, Kingdom identity, and Kingdom purpose—not merely compliant behavior.
|
||||
- Adolescence is presented as a potential continuation of relationship with God rather than an inevitably rebellious stage.
|
||||
- Jesus is presented as the ultimate model of dependent sonship and surrendered obedience.
|
||||
- Parents model constantly; their reactions under pressure are formative just as much as their deliberate instruction.
|
||||
- Parent healing and obedience are central to breaking the transmission of fear, anger, insecurity, and family brokenness.
|
||||
- Multi-generational parenting requires building for a future beyond the parents' own lifetime.
|
||||
- "Generational advancement" describes children standing on the spiritual and relational progress of their parents.
|
||||
- The chapter connects parental modeling, healing, refuge, and lifelong formation with Proverbs 22:6.
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify the Scripture quotations and references, including the intended Bible translations.
|
||||
- Preserve the distinction between the teaching's theological claims and later editorial commentary.
|
||||
- The historical claim concerning the 1970s Jesus movement should be sourced or qualified if included in a published edition.
|
||||
- The claim that rebellion is not an inevitable feature of adolescence should be presented pastorally and carefully, acknowledging individual development, temperament, disability, trauma, and family context.
|
||||
- Clarify the phrase "until the child reaches an age of spiritual understanding" and how the teaching defines that transition.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reordering option: place the parental-unity/household-atmosphere chapter before correction, or add a transition explaining why correction is introduced at this point. -->
|
||||
## Chapter 2: Redemptive Correction: Straightening the Path with Love
|
||||
|
||||
|
||||
### "Narrowing Up" vs. The Demand for "Experiences"
|
||||
|
||||
Scripture defines training a child through the Hebrew lens of "dedicating, disciplining, narrowing up, or choking out" [18]. It means to straighten a child's path, protecting their outlook, behavior, ideals, views, and influences from being overwhelmed by the weeds of the world [18]. This directly contradicts modern humanistic reasoning, which insists children must be given broad "experiences" to discover themselves [19]. This humanistic philosophy is a widening of the way, which the Bible explicitly warns against in Matthew 7:13:
|
||||
|
||||
> "Enter through the narrow gate, for the gate is wide and the way is broad that leads to destruction, and there are many who enter through it." [19]
|
||||
|
||||
Parents are given the responsibility to shape their children's minds and protect them from worldly conformity [18, 21]. As Romans 12:2 charges us:
|
||||
|
||||
> "And do not be conformed to this world, but be transformed by the renewing of your mind, so that you may prove what the will of God is, that which is good and acceptable and perfect." [21]
|
||||
|
||||
The renewal of the child's mind is a task delegated directly to the parents [21, 22]. It requires parents to actively narrow up their child's path, choosing carefully what enters their hearts and minds rather than letting them wander broad roads of secular influence [18, 22].
|
||||
|
||||
### Debunking the Myth of Adolescent Rebellion
|
||||
|
||||
A cornerstone of modern parenting is the belief that teenagers must naturally go through a painful, dramatic season of rebellion [17]. We are told this is just a normal developmental phase [17]. However, this expectation is a deceptive lie that shapes our thoughts and actions toward failure [17].
|
||||
|
||||
In God's design, there is no mandatory period of rebellion [17]. The scriptural transition from childhood to maturity is intended to be a seamless progression directly into a personal relationship with the Father [17, 18]. When boundaries are clearly laid and maintained with love, teenagers do not have to wander into rebellion; they can walk straight from parental guidance into divine devotion [17, 18].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Major rewrite required for any parent-facing edition. Preserve this as source material, but place current safeguarding guidance and non-violent alternatives before any practical exercise. -->
|
||||
### The Mechanics of Correction: The Switch and the Loving Hand
|
||||
|
||||
To remove the foolishness that is naturally bound up in a young heart, God has provided specific, loving tools [23, 24]. As Proverbs 22:15 states:
|
||||
|
||||
> "Foolishness is bound up in the heart of a child. The rod of discipline will remove it far from him." [24]
|
||||
|
||||
Scripture is rich with wisdom regarding the diligent application of this rod of reproof:
|
||||
|
||||
- **Proverbs 13:24:** "He who withholds the rod hates his son, but he who loves him disciplines him diligently." [25]
|
||||
- **Proverbs 19:18:** "Discipline while there's hope, and do not desire his death." [25]
|
||||
- **Proverbs 29:15:** "The rod of reproof gives wisdom, but a child who gets his own way brings shame to his mother." [25]
|
||||
- **Proverbs 29:17:** "Correct your son and he will give you comfort. He will also delight your soul." [25, 26]
|
||||
|
||||
While humanism rejects these commands or distorts them into abuse, biblical correction is defined by tenderness and absolute control [26, 28, 29]. In our home, we established a strict physical boundary: our hands were made exclusively for holding, hugging, and expressing love [26, 29, 31]. We never used our hands to strike a child, nor did we use heavy, rigid tools like belts or wooden spoons, which can cause physical harm or anger [26].
|
||||
|
||||
Instead, the biblical "rod" refers to a tender, limber shoot or reed—such as a small lilac switch (roughly a quarter of an inch or smaller) with shaved bumps [27, 117]. This tool is designed to produce a quick, harmless sting on the bottom or thigh that instantly captures the child's attention without ever causing physical damage [26, 27, 118].
|
||||
|
||||
Crucially, this physical correction serves a redemptive spiritual purpose: it completely removes guilt and shame [26]. When a child is corrected, the spiritual debt of their disobedience is paid instantly [26, 30]. There is no lingering condemnation, no standing in corners, and no emotional isolation [26, 29, 30]. Once corrected, the child is immediately embraced, loved, and restored to perfect right standing within the home [26, 29, 30].
|
||||
|
||||
### The Rule of Calmness: Correcting Without Anger
|
||||
|
||||
Scripture issues a vital warning to fathers in Ephesians 6:4:
|
||||
|
||||
> "Fathers, do not provoke your children to anger, but bring them up in the discipline and instruction of the Lord." [22]
|
||||
|
||||
A parent must never, under any circumstance, correct a child while feeling angry, agitated, or on edge [26, 29, 53, 54]. Correcting in anger is not biblical discipline; it is an expression of the parent's lack of self-control [54]. It models anger to the child, which violates our primary calling as models of the Father [54].
|
||||
|
||||
If you find yourself becoming agitated or losing your emotional composure during a correction, you must stop immediately [29, 54]. It is far better to let an act of disobedience go uncorrected in that moment than to correct your child in anger [54]. The parent must first go before the Lord, find peace, and handle the situation only when they can do so with a calm voice, a peaceful facial expression, and a tender heart [29, 52, 53, 54].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Clarify that privacy protects dignity but never overrides supervision, accountability, a child's right to disclose harm, or access to independent help. -->
|
||||
### The Correction Room: Restoring Dignity in Private
|
||||
|
||||
To preserve a child's security and dignity, correction must never be a public spectacle [116]. It should not be done in front of guests, siblings, or in public places [34, 116].
|
||||
|
||||
Instead, correction should take place in a private, designated area—such as a bedroom or bathroom [29, 116]. This private environment—the "correction room"—is a place of calm, reassurance, and ultimate security [29, 116]. By keeping correction private, we honor our children, shield them from public embarrassment, and ensure that the process remains a tender, focused interaction of restoration between parent and child [29, 116].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- "Narrowing up" is presented as intentional formation and protection of a child's heart, mind, influences, ideals, and direction.
|
||||
- The chapter contrasts parental formation with a philosophy of broad, unbounded experience and self-discovery.
|
||||
- Adolescent rebellion is presented as neither inevitable nor divinely required.
|
||||
- Correction is framed as a redemptive process intended to remove shame, restore relationship, and return the child to belonging within the household.
|
||||
- The source teaching emphasizes calmness, self-control, privacy, and immediate reassurance during correction.
|
||||
- The chapter distinguishes the source's preferred correction tool from striking with hands or using heavy, rigid objects.
|
||||
- Private correction is connected to the preservation of a child's dignity and security.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, wording, and translation choices before publication.
|
||||
- The teaching's interpretation of the Hebrew concept translated as "train" and its use of terms such as "narrowing up" or "choking out" should be checked against reputable Hebrew lexicons and the original recording context.
|
||||
- The claims about adolescent rebellion, humanism, and the history of parenting should be framed as the speaker's theological and cultural argument rather than presented as settled developmental or historical fact.
|
||||
- The physical-discipline recommendations require careful safeguarding review before any public distribution. Do not present a thin implement, a specific body location, or a claimed "harmless" sting as universally safe; laws, professional guidance, child age, disability, trauma history, and individual circumstances vary.
|
||||
- For a parent-facing publication, prioritize non-violent, developmentally appropriate correction and include clear guidance for pausing, de-escalating, seeking help, and protecting children from injury or fear.
|
||||
- The phrase "spiritual debt ... paid instantly" should be examined theologically and pastorally so that children are not taught that physical pain is required to obtain forgiveness, belonging, or restored relationship.
|
||||
- Clarify what safeguards make a private correction setting genuinely safe and accountable, especially when the child is isolated with an adult.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: This chapter may be more effective immediately after the Introduction because it defines the relational atmosphere in which later parenting practices occur. -->
|
||||
## Chapter 3: Parental Unity & the Atmosphere of the Home
|
||||
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite the language about children "exploiting" cracks so ordinary questions, disagreement, disability-related needs, and safety disclosures are not portrayed as manipulation. Keep the consistency principle while adding room for clarification. -->
|
||||
### The Principle of a Unified Front
|
||||
|
||||
A central pillar of a peaceful home is the absolute, seamless unity between husband and wife [159]. Parents must understand that children are highly astute observers; they are experts at sensing any lack of alignment and will naturally seek to exploit any crack to sow division or pit one parent against the other [159, 164].
|
||||
|
||||
To prevent this, parents must maintain a completely united front [159]. In our home, we established a simple but powerful protocol. Whenever a child approached one parent asking for a treat, more television time, or a specific permission, the immediate response was always:
|
||||
|
||||
> "What did Dad say?" or "What did Mom say?" [168, 169]
|
||||
|
||||
If the other parent had already given an answer, the discussion was instantly over [169]. The parent receiving the second appeal would simply state, "Well, there is your answer," ensuring that the child's attempt to bypass authority was met with a solid wall of parental agreement [169]. This level of consistency and predictability is not a rigid, legalistic exercise; rather, it provides children with an immense sense of security because they know exactly where the boundaries stand [47, 62, 185].
|
||||
|
||||
### Private Alignment over Public Disagreements
|
||||
|
||||
Maintaining a united front means that parents must make a covenant never to disagree, correct, or expose each other's faults in front of their children [162, 163, 164]. Doing so publicizes division and teaches children how to manipulate their parents, which ultimately tears down the spiritual authority of the home [164].
|
||||
|
||||
Inevitably, there will be moments when one parent observes their spouse making a decision or handling a disciplinary situation in a way they wouldn't have chosen [169, 170]. The natural temptation is to immediately step in and express "wisdom" or correct the spouse on the spot [170]. This is a critical mistake [170].
|
||||
|
||||
When you feel that irritation rise, you must first deal with your own internal reaction [170]. In front of the children, you must completely support your spouse's decision [162, 163]. Any adjustments, differing views, or scale of discipline must be discussed strictly in private, behind closed doors [162]. In our home, if Deanna handled a situation and I disagreed with the method, we would discuss it privately later so that we could align our hearts before the Lord, but the child always saw us standing as one [55, 162].
|
||||
|
||||
### Healing the Crack: Humility and Restoration
|
||||
|
||||
Because parents are human, there will be times when they fail to maintain this standard and inadvertently display division or disrespect in front of the child [167]. When this happens, it must be corrected immediately in the spirit of humility [164, 166].
|
||||
|
||||
First, the parents must align privately [164]. The offending parent should go to their spouse and say:
|
||||
|
||||
> "Cariño, lo siento. I realize that I made you look bad in front of the child, and I repent." [164]
|
||||
|
||||
Second, depending on the situation, it is often necessary to go directly to the child to model genuine repentance and restore the standard of honor [164, 165]:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. The Lord is working in my heart, and I cannot make an excuse for what I did. I want to apologize to you for deshonrar (dishonoring) them in front of you, because they deserve honor." [165]
|
||||
|
||||
There is extraordinary, transformative power when a parent is willing to be authentic and humble before their children [166]. It models a soft, teachable heart and teaches children how to walk out repentance in their own lives [166].
|
||||
|
||||
### Atmosphere of Peace and Order
|
||||
|
||||
The physical environment of the home directly affects its spiritual atmosphere [157, 159]. A clean, orderly house is a powerful catalyst for a home filled with peace [159]. When a mother takes joy and satisfaction in nurturing and keeping the home, and the husband actively notices, appreciates, and verbalizes his gratitude, it weaves a beautiful bond of peace over the entire household [159, 160].
|
||||
|
||||
This atmosphere also requires parents to be highly sensitive to one another's limits [160]. Parenting is a demanding, daily labor, and there are times when "too much is too much" and one spouse is exhausted or on edge [143, 160]. In those moments of high stress, the other spouse must be ready to step in, "take the ball," and cover for them [48, 160]. This mutual support ensures that correction is never administered out of exhaustion or emotional agitation [48, 71, 185].
|
||||
|
||||
### Nurturing the Marriage: Horizontal and Vertical Communication
|
||||
|
||||
We must recognize that child training is not an isolated task; it is completely interwoven with every other area of family life, particularly the marriage relationship [157, 158]. If there is no peace between husband and wife, it is impossible to have lasting peace in training the children [158].
|
||||
|
||||
Healthy communication requires us to stop simply waiting for our turn to speak so we can make our own point, and instead learn to truly listen to one another's hearts [171, 172]. This communication must be intentionally nurtured [173].
|
||||
|
||||
To build this horizontal connection, we must make constant, deliberate "positive deposits" into our spouse's emotional bank account [181, 182]. As the proverb of the household says, if you put a coin in the piggy bank every single day, it will eventually be filled [182].
|
||||
|
||||
A highly practical and transformative exercise for married couples is to commit to a 30-day breakfast covenant [180]. For thirty consecutive days, sit down together for breakfast, and each day, make a specific, intentional positive deposit by telling your spouse one thing you sincerely estimate and appreciate about them [180, 181].
|
||||
|
||||
For husbands, this requires stepping away from vague, general statements like "You know I love you" or "You look good," and instead sharing specific, particular details of appreciation [183]. For wives, it means actively finding ways to make their husbands feel proud and respected, rather than assuming they only need to receive appreciation without giving it [183, 184]. This intentional focus changes the entire climate of the home because, as Scripture principles teach:
|
||||
|
||||
> "Buscad y hallaréis (Seek and you will find)." [181]
|
||||
|
||||
If you look for faults, you will surely find them; but if you intentionally seek the good in your spouse, you will find it and multiply it [181].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reframe this as a commitment to repair rather than a demand for immediate resolution. Add exceptions for unsafe conflict, coercive control, abuse, exhaustion, and the need for a healthy time-out. -->
|
||||
### The Covenant Rule: Never Go to Bed Angry
|
||||
|
||||
To safeguard the home's atmosphere, couples must establish a firm covenant line that they resolve never to cross [180]. Chief among these is the scriptural command:
|
||||
|
||||
> "...do not let the sun go down on your anger." [180]
|
||||
|
||||
In our thirty-seven years of marriage, we decided we would never go to sleep angry with one another [174, 177]. If a disagreement arose, we would take a "time out" to pray individually, allowing the Lord to deal with our own hearts first [175]. Then, we would return, ask for forgiveness where we had failed, and pray together [178]. We did not always agree on the specific point of contention immediately, but we agreed on God and gave Him the place of preeminence in our marriage [178].
|
||||
|
||||
As a husband, the Lord taught me that I must function as the priest of my home [177]. When my wife made a mistake or did something wrong, the Lord would use it to deal with me first, instructing me to carry the burden, be silent, and go to the cross for her just as Christ did for the Church [177]. When both husband and wife surrender their right to be right and prioritize the covenant, they establish a secure spiritual foundation that their children will naturally inherit, creating a magnificent generational advancement [8, 178, 179].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Parental unity is presented as a source of security, predictability, and authority within the home.
|
||||
- The chapter emphasizes checking with the other parent rather than allowing children to bypass a previously given answer.
|
||||
- Disagreements about decisions or discipline are to be handled privately rather than displayed before the children.
|
||||
- When parents fail publicly, immediate humility, apology, and restoration are presented as a model of repentance.
|
||||
- Household order, appreciation, mutual awareness, and practical support are connected to a peaceful atmosphere.
|
||||
- Marriage communication is framed as intentional listening and the repeated making of positive relational deposits.
|
||||
- The 30-day breakfast covenant is presented as a concrete practice of daily appreciation.
|
||||
- The command not to let the sun go down on anger is applied as a marriage covenant of prayer, forgiveness, and reconciliation.
|
||||
- The chapter presents parental surrender, marital covenant, and generational advancement as closely connected.
|
||||
|
||||
### Editorial and pastoral review flags
|
||||
|
||||
- Verify all Scripture references, quotations, translations, and the Spanish phrase "Buscad y hallaréis" before publication.
|
||||
- Preserve the distinction between the teaching's source claims and later editorial interpretation.
|
||||
- Clarify the difference between healthy parental unity and coercive control. A united front should not require a parent to conceal abuse, unsafe conduct, serious error, or a child's legitimate disclosure.
|
||||
- Children should be able to speak safely with either parent. The "What did Dad/Mom say?" practice should not be used to shut down questions, conceal a mistake, or prevent a child from reporting harm.
|
||||
- The instruction to support a spouse publicly and resolve disagreements privately needs explicit safeguarding exceptions for abuse, intimidation, coercive control, threats, or unsafe discipline. In those situations, protecting the child and seeking qualified help takes priority over preserving appearances.
|
||||
- The chapter's gendered descriptions of mothers nurturing the home, husbands leading as "priest," and wives making husbands feel proud should be identified as the speaker's marital framework rather than treated as the only faithful model for every family.
|
||||
- "Never go to bed angry" should be presented with room for healthy time-outs, sleep, boundaries, and professional help; immediate resolution is not always safe or wise during escalation.
|
||||
- Clarify the meaning, origin, and practical structure of the 30-day breakfast covenant when the original recording context is available.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Check the chapter and first subsection titles against the recording. "Textile Boundaries" may be an accidental or context-dependent term; preserve it here but consider a clearer reader-facing title. -->
|
||||
## Chapter 4: Guarding Influences & Practical Daily Wisdom
|
||||
|
||||
|
||||
<!-- EDITORIAL COMMENT: Consider renaming this section "Early Boundaries and Infant Safety." The current wording is memorable but unclear, and the material needs developmental and safeguarding rewriting before publication. -->
|
||||
### Textile Boundaries & Early Training
|
||||
|
||||
To train a child to listen to their parents' voices, training must begin in infancy with simple, knowable boundaries. Rather than overwhelming a toddler with a laundry list of hundreds of rules that they are incapable of following, parents should establish a few select, physical boundaries [72, 73].
|
||||
|
||||
A highly practical and successful method for this is blanket training [73]. Spreading a small blanket on the floor, the parent instructs the infant (typically starting around six to nine months of age):
|
||||
|
||||
> "I don't want you going off of that." [73]
|
||||
|
||||
Inevitably, the child's curiosity or old nature will lead them to test the boundary and attempt to crawl off [73, 79, 80]. In that moment, the parent administers a light, instant correction—such as a gentle tap on the hand—and places them back on the blanket, reinforcing the instruction [73]. Within just a few repetitions, the infant learns to associate their disobedience with the immediate correction and willingly remains within the border [73].
|
||||
|
||||
The goal of this training is not merely to restrict the child's movement or to protect household furniture, such as a coffee table [73]. Rather, it is to train the child to listen to and obey the parent's voice [73]. These physical boundaries provide children with immense security [74]. Just as the Lord establishes boundaries for our lives to keep us secure, clear boundaries in the home let children know exactly what is acceptable, preventing a frantic, heavily policed household and fostering an environment of deep spiritual peace [73, 74, 112].
|
||||
|
||||
### Guarding the Mind: "Tell-a-Vision" and Media
|
||||
|
||||
In a modern world saturated with technology, parents must exercise extreme vigilance regarding television, tablets, and media [115, 116]. The world's media system is highly intentional; it is designed with specific "channels" and "programming" to literally "tell your vision"—shaping the ideals, desires, and minds of children away from the Kingdom of God [116].
|
||||
|
||||
Allowing a television or a tablet to act as a surrogate parent is a dangerous convenience [116]. It acts as a deliberate distraction designed by the adversary to draw parents away from their greatest earthly blessing and responsibility: actively training their children [116]. While completely avoiding media in today's society is a challenge, limiting it strictly produces extraordinary, healthy fruit [115, 116]. By closing the door to secular programming, we prevent the enemy from exploiting gaps in our children's security and instead keep their minds pure and focused on the atmosphere of the home [105, 116].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Separate the transferable principle of presence and shared responsibility from the speaker's gendered household model. Add examples for single parents, dual-income families, disability, illness, childcare, and economic necessity. -->
|
||||
### Nurturing, Presence, and Owning Your Time
|
||||
|
||||
Effective child training cannot be outsourced; it is a precious gift and responsibility given directly by God to the parents [114, 118]. This training requires physical and mental presence [52]. You cannot train up a child in the way they should go if you are not there to walk beside them [52, 118].
|
||||
|
||||
This truth carries profound implications for the roles of both the mother and the father:
|
||||
|
||||
#### The Mother as the Nurturer
|
||||
|
||||
A mother's primary calling in most circumstances is to stay home, keeping the house and nurturing the family [117, 166]. In this sacred role, she fulfills her God-given ability to multiply [117, 118]. When a husband brings home a paycheck, the wife multiplies it into food and a meal; when provided a house, she multiplies it into a warm, peaceful home [118]. The work a mother does in the home far surpasses any secular career or paycheck [117, 118, 166]. Husbands must actively celebrate, honor, and protect this role rather than allowing the diabolical wisdom of the world to demean it [117, 118, 166].
|
||||
|
||||
#### The Father as the Provider of Time
|
||||
|
||||
For a mother to stay home, the father must be willing to step outside of the conventional worldly system to prioritize his family [120]. The Lord gave a specific word of wisdom: "Own your time." [120]. Fathers must seek the Lord for creative strategies to free up their schedules so they can be available, present parents [120]. This may mean starting a simple business or adjusting financial expectations to avoid the diabolical trap of Egypt, which demands two incomes and keeps parents too busy making bricks to build the family altar [117, 119, 120].
|
||||
|
||||
### Integrating Children into Daily Work
|
||||
|
||||
A common mistake parents make is separating their daily lives into strict categories of "work" (which is treated as a burden to be done alone) and "fun" (which is treated as the only desirable activity) [157]. While it is often faster and easier for a parent to paint a wall, do the dishes, or fold the laundry by themselves, this misses a critical opportunity for training [157].
|
||||
|
||||
Parents should actively integrate their children into all the affairs of daily life [115, 157]. Give an eight-year-old a paint roller and teach them how to paint; let the toddlers help push the buttons on the washing machine or play in the sink while doing dishes [157]. When children are included in these tasks, they do not grow up hating work or viewing it as an awful chore [157]. Instead, they learn that work is a natural, joyful expression of family life [157]. Ultimately, children do not need constant, artificial entertainment; they simply want to be with their parents, and sharing in daily labor bonds the family together in purpose [157].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Early training is presented as the establishment of a small number of clear, physical, understandable boundaries rather than an overwhelming list of rules.
|
||||
- The source teaching uses blanket training as an example of teaching an infant to respond to a parent's voice and remain within a defined boundary.
|
||||
- Boundaries are framed not only as restrictions but also as sources of security, predictability, and peace.
|
||||
- Media is presented as a formative influence that can shape a child's imagination, desires, ideals, and worldview.
|
||||
- The chapter calls parents to intentional presence rather than allowing devices to become surrogate caregivers.
|
||||
- The teaching presents a home-centered maternal role and a time-owning, financially creative paternal role as its preferred family framework.
|
||||
- Children are encouraged to participate in ordinary household work so that labor becomes a joyful expression of family life rather than an isolated burden.
|
||||
- Family presence and shared work are presented as more formative than constant artificial entertainment.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, and word-study claims before publication.
|
||||
- Confirm whether the chapter title "Textile Boundaries" is the intended wording or whether it refers specifically to blanket/physical boundaries; preserve the supplied title until the recording context is available.
|
||||
- The blanket-training example involves an infant, physical correction, and a potentially hazardous environment. Before any parent-facing use, consult current pediatric, child-safety, and safeguarding guidance; do not reproduce the method as a universal instruction or imply that a "gentle tap" is necessary for learning obedience.
|
||||
- Any early-childhood boundary practice should prioritize supervision, childproofing, developmentally appropriate expectations, non-violent redirection, and prevention of falls or access to unsafe objects. Infant behavior and repeated boundary-testing are normal developmental processes, not proof of an "old nature."
|
||||
- The language that media is designed by "the adversary," tells a child's vision, or necessarily displaces parental responsibility should be identified as the speaker's theological framing. A final resource should distinguish thoughtful media guidance from fear-based claims and acknowledge educational, relational, accessibility, and family-context differences.
|
||||
- The claims that child training cannot be outsourced and that mothers should ordinarily stay home should be presented as the teaching's family model, not as a universal measure of faithfulness or parental love. Account for single parents, dual-income households, adoptive and foster families, disability, illness, economic necessity, education, cultural context, and families with different vocational callings.
|
||||
- The language about two incomes, Egypt, and "making bricks" should be retained as source imagery but carefully contextualized so financial hardship is not treated as a moral failure and so the final book does not impose unsafe or unrealistic economic expectations.
|
||||
- When children participate in household work, include age-appropriate supervision and safety precautions. Paint, appliances, hot water, sinks, tools, chemicals, ladders, and other household hazards require adult judgment.
|
||||
- Clarify what "own your time" means in practical, sustainable terms and avoid presenting entrepreneurship or schedule changes as guaranteed solutions for every family.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Define "generational advancement" in plain language before using it as a repeated organizing term. Distinguish aspiration and inheritance from guarantees so children are not burdened by the metaphor. -->
|
||||
## Chapter 5: Generational Advancement & the Covenant Family
|
||||
|
||||
|
||||
### The Principle of Generational Advancement
|
||||
|
||||
A primary objective of the covenant family structure is what we call "generational advancement" [8, 178, 179]. This means that the spiritual victories, emotional healing, and behavioral discipline established by the parents become the floor upon which the children stand [8, 46, 162]. Because children raised in a genuinely secure, peaceful environment do not have to fight the same battles, wounds, or broken family dynamics that their parents had to overcome, they are uniquely positioned to stand on their parents' advancements and leap forward into their own divine destinies [8, 46, 162].
|
||||
|
||||
Our children still have their own struggles and areas of life that the Lord must work on [81]. This is a beautiful and necessary reality because everyone needs something in their life that forces them to cry out to the Lord and depend on Him [81]. However, generational advancement ensures that they do not start from scratch; they start from a position of inherited spiritual security [8, 46, 162].
|
||||
|
||||
### "Cutting the Penny in Half"
|
||||
|
||||
To keep our children from expecting perfection from us—while still keeping them engaged in the process of growth—we taught them a foundational concept [82]. When our daughters were around seven to nine years of age, we sat down for a teaching moment and told them [82]:
|
||||
|
||||
> "Girls, listen. Mom and I are going to be able to cut this penny in half. All this stuff on this half of the penny, the Father is going to work with us to remove it from our lives. But there is still going to be half of a penny left for you to deal with in your own life. And then you are going to have children, and you are going to cut that penny in half again. But you will always have half of the half that remains. Why? Because the Father needs to be sovereign to your children, and He will be." [82]
|
||||
|
||||
This simple, powerful teaching set a healthy expectation within our home [82]. Our daughters did not expect us to be flawless, perfect parents, but they constantly saw us leaning into the Lord, seeking His face, and working to deal with our own "half of the penny" [82]. This vulnerability and transparency created a beautiful, authentic environment where the entire family advanced together before the Lord [82].
|
||||
|
||||
### Covenant Priorities: God, Family, and Ministry
|
||||
|
||||
In establishing a stable, secure home, parents must walk in strict alignment with God's divine order of priorities [131]. We are firm believers in a covenant hierarchy that must never be compromised [131]:
|
||||
|
||||
1. **God First**
|
||||
2. **Family Second**
|
||||
3. **Ministry Third**
|
||||
|
||||
Tragically, when this order is inverted, the home suffers immensely [131]. We see this manifest in the lives of many "preacher's kids" who grow up bitter and distant from the Lord because their parents prioritized public ministry or the affairs of the church over the spiritual and emotional security of their own household [131]. Even for those carrying a powerful ministerial anointing, fathers must seek the Lord for the creative wisdom and divine provision necessary to protect their family time [131]. We must lift our vision higher to see that our children are our primary, most significant ministry [41, 131].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Move child-safety, independent support, and accountability ahead of language about submission or local headship. The permission to seek help should be prominent. -->
|
||||
### Relying on the Greater Body
|
||||
|
||||
No family is designed to function as an isolated island. Part of walking in the covenant is recognizing that you are not alone when you are parenting [133]. The Lord has intentionally structured the Body of Christ so that you have older, more mature people around you who have been given pastoral or apostolic responsibility over your life to speak wisdom, correction, and guidance into your household [133].
|
||||
|
||||
Furthermore, parents must actively teach and model honor for others [134]. In our home, we wanted our daughters to know that they were not restricted to only receiving help from us [134]. We gave them explicit permission that if they ever felt they needed outside spiritual help or counseling, they had the freedom to reach out directly to our trusted leaders and spiritual counselors [134]. By removing the fear of being threatened by outside help, we established a network of absolute security around our daughters [132, 134]. They grew up knowing that if Mom and Dad were struggling, there was a safe, ordained place in the local headship where help, restoration, and life-giving counseling could be found [133].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite with trauma-informed and consent-based language. Trust, grief, custody realities, and existing parent-child relationships need explicit treatment; instant authority should not be assumed. -->
|
||||
### Blended Families and Late Starts: Rebuilding the Foundation
|
||||
|
||||
We frequently meet parents who are entering the child training journey late—whether because they have recently come to know the Lord after their children are older, or because they are navigating the unique complexities of a blended family [147, 148]. In these situations, parents often ask how they can remove old, ungodly foundations that were laid before they entered the picture [147].
|
||||
|
||||
In these cases, the primary strategy is to become the model of the Father's love in their presence [148]. Walk before them as a consistent, unshakeable, secure place that they can count on day in and day out [148].
|
||||
|
||||
If you are dealing with older children where the primary training window has passed, look backward to see if there are any broken bridges of trust [148]. Seek the Lord and ask yourself: "Have I ever made any promises to my children that I have not kept?" [148]
|
||||
|
||||
If the answer is yes, you must do whatever it takes—no matter how difficult or costly to your finances—to keep your word and fulfill those promises [148]. This act of sacrificial integrity sends a powerful message that you are a parent of truth, modeling the covenant-keeping nature of our heavenly Father [148]. Combine this with doing extraordinary, unexpected things to display your love, and stay closely submitted to your local spiritual headship, who can help navigate the specific nuances of your household [148]. The Lord's grace is fully sufficient to heal, restore, and rebuild the foundations of any home that yields completely to His pattern [148].
|
||||
|
||||
### Themes captured for future book development
|
||||
|
||||
- Generational advancement is presented as children inheriting a foundation of spiritual security, emotional healing, and parental growth rather than having to begin from the same level of brokenness.
|
||||
- The "cutting the penny in half" illustration gives children permission to see parental imperfection while also seeing parents actively submit their lives to God's transforming work.
|
||||
- The teaching holds together two ideas: parents can remove or reduce patterns of brokenness, while children still have their own agency, struggles, and relationship with God.
|
||||
- The proposed covenant priority is God first, family second, and ministry third.
|
||||
- Children are presented as a primary ministry and a responsibility that should not be sacrificed to public ministry demands.
|
||||
- Parenting is framed as a communal responsibility in which mature, trusted members of the local church can provide wisdom, correction, counseling, and restoration.
|
||||
- Children are encouraged, in the source account, to have access to safe outside help rather than being limited to their parents alone.
|
||||
- Parents who begin later or who are navigating blended-family complexity are called to rebuild trust through consistency, integrity, fulfilled promises, demonstrated love, and patient presence.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, and the theological language surrounding "generational advancement" before publication.
|
||||
- Preserve the "cutting the penny in half" illustration and its source context, but clarify that children are not responsible for repairing or carrying their parents' unresolved wounds. Parental healing should reduce burdens on children, not assign them a quantified share of family brokenness.
|
||||
- The teaching's statement that everyone needs struggles that force dependence on God should be handled carefully. Do not romanticize trauma, abuse, poverty, disability, mental-health challenges, or other suffering as divinely necessary or as evidence of spiritual deficiency.
|
||||
- "God first, family second, ministry third" should be explained rather than used as a slogan that automatically resolves competing responsibilities. The final resource should address safety, marriage and parenting obligations, work, health, community, and the needs of vulnerable family members.
|
||||
- The claim concerning "preacher's kids" should be qualified and supported if retained. Children's experiences of ministry families are varied, and bitterness or distance from faith should not be attributed simplistically to parental prioritization.
|
||||
- Outside spiritual leaders, pastors, counselors, and "local headship" must be safe, qualified, accountable, and subject to appropriate safeguarding standards. Children should have confidential, age-appropriate ways to disclose concerns, including access to adults outside the parents' chosen circle when needed.
|
||||
- "Submission" to spiritual authorities must never mean unquestioning obedience, secrecy, isolation, surrender of parental or child safety, or protection of leaders from scrutiny. The final book should explicitly preserve the right to seek independent professional help and report abuse.
|
||||
- In blended families, rebuilding trust requires consent, patience, predictable care, respect for existing parent-child bonds, and attention to grief, loyalty conflicts, trauma, and legal/custody realities. A new spouse or parent figure cannot demand instant spiritual or relational authority.
|
||||
- The instruction to fulfill promises "no matter how difficult or costly" should be bounded by safety, legality, financial sustainability, and the child's best interests. Parents should not keep an unsafe, impossible, manipulative, or harmful promise merely to preserve appearances.
|
||||
- "Extraordinary, unexpected" demonstrations of love should be age-appropriate, non-coercive, and responsive to the child's actual needs rather than used to purchase trust or compliance.
|
||||
- Clarify whether "late" refers to age, conversion, remarriage, or a previous parenting approach, and avoid framing earlier family history as an "ungodly foundation" in a way that shames parents or children.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Place a brief safety/help page before the exercises. Keep source exercises clearly labeled and provide separately reviewed alternatives in the main workbook. -->
|
||||
## Chapter 6: The Covenant Parenting Workbook — Reflection and Action
|
||||
|
||||
|
||||
This workbook is designed to help you and your spouse move beyond information and step into active, structural transformation [119]. Covenant parenting is not a formula to be checked off; it is a living relationship that must be intentionally walked out before the Lord and before your children [51, 52]. Use these reflective questions, practical exercises, and covenant commitments to build a secure sanctuary of peace in your home [14, 130].
|
||||
|
||||
---
|
||||
|
||||
### Workbook — Chapter 1 focus: Modeling & Generational Vision
|
||||
#### Heart-level reflections
|
||||
**Dependent Sonship:** Jesus modeled a life of complete dependence on His Father ("I don't do anything but I see my father do it" [9]). In what areas of your daily life are you struggling to walk in instant obedience to your Heavenly Father? How might this struggle affect your children's ability to obey your voice [11]?
|
||||
|
||||
**The Power of the Model:** In the eyes of a young child, you represent God—His authority, His love, and His safety [10, 62]. When you come home on edge or exhausted, what kind of father or mother are you modeling [11, 60]?
|
||||
|
||||
**Multi-Generational Legacy:** Are there areas where you have fallen into passive parenting or short-sightedness [11, 12]? If you parented with a vision that extended three generations deep, what would you change about your household today [12, 55]?
|
||||
|
||||
#### Action steps
|
||||
**The Refuge Audit:** Identify one major source of fear, anger, or insecurity in your own heart [13]. Set aside a specific time to bring this before the Lord, asking Him to deal with the root of this brokenness [13]. Re-read Proverbs 14:26:
|
||||
|
||||
> "In the reverent fear of the Lord, there is strong confidence, and his children will always have a place of refuge." [13]
|
||||
|
||||
Write down how you will yield to His healing hand this week to make your home a stronger refuge [13, 62].
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite before use with parents. Replace technique-oriented physical-discipline exercises with calm de-escalation, supervision, repair, boundaries, and help-seeking practices after professional review. -->
|
||||
### Workbook — Chapter 2 focus: Redemptive Correction
|
||||
#### Heart-level reflections
|
||||
**The Rule of Calmness:** Do you ever correct your children out of irritation, frustration, or a desire for convenience [22, 101]? What is the difference between biblical discipline (which restores) and humanistic punishment (which lingers) [21, 76]?
|
||||
|
||||
**Removing Shame:** Does correction in your home leave a lingering shadow of guilt or emotional distance, or does it result in immediate restoration, hugs, and perfect right standing [21, 76, 79]?
|
||||
|
||||
#### Action steps
|
||||
**The Hand Consecration:** Make a solemn covenant with your spouse today that your hands are strictly reserved for holding, hugging, and expressing love [20, 73]. Remove all wooden spoons, belts, and other rigid implements from your parenting toolbox [20, 73].
|
||||
|
||||
**Setting Up the "Correction Room":** Identify a private room in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 163]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that designated room [20, 164]. Agree to never correct your child in front of guests, siblings, or in public [23, 163].
|
||||
|
||||
**Practice Stopping:** If you feel your blood pressure rising during a correction, commit to saying: "I am not in a position to handle this right now." Ask your spouse to cover for you, or find a controlled situation before the Lord until you can speak in a calm, tender voice [22, 78, 101].
|
||||
|
||||
---
|
||||
|
||||
### Workbook — Chapter 3 focus: Parental Unity & Atmosphere
|
||||
#### Heart-level reflections
|
||||
**The Cracks of Division:** Children are astute observers who look for alignment [24]. Can your children find any "cracks" between you and your spouse to get a different answer [24, 189]?
|
||||
|
||||
**Private Alignment:** Have you fallen into the trap of correcting, undermining, or arguing with your spouse in front of the kids [26, 193]? How can you build a stronger habit of waiting until you are behind closed doors to resolve parenting differences [26, 27, 192]?
|
||||
|
||||
#### Action steps
|
||||
**The "What Did They Say?" Protocol:** Practice the immediate gatekeeping response. Whenever a child asks for permission or a treat, always ask: "What did Dad say?" or "What did Mom say?" [24, 25, 198]. If the other spouse has given an answer, the discussion is permanently closed [25, 199].
|
||||
|
||||
**The 30-Day Breakfast Covenant:** Set your alarm 30 minutes earlier. Sit down together for breakfast every day for the next 30 days [32, 210]. Each morning, share one specific, particular detail that you sincerely estimate and appreciate about your spouse [32, 33, 211, 213]. Focus on finding the good, and watch the atmosphere of your marriage and home transform [34, 211].
|
||||
|
||||
**The Sunset Covenant:** Commit to the rule of Ephesians 4:26:
|
||||
|
||||
> "...do not let the sun go down on your anger." [34, 210]
|
||||
|
||||
Agree that no matter the disagreement, you will pray individually, come together, ask for forgiveness, and pray together before sleeping [34, 208].
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Consider placing media, presence, and shared-work exercises before any infant-boundary discussion, moving from broadly applicable relational practices to age-specific material. -->
|
||||
### Workbook — Chapter 4 focus: Guarding Influences & Daily Wisdom
|
||||
#### Heart-level reflections
|
||||
**Surrogate Parenting:** Is television or digital media acting as a surrogate parent or a distraction from your training responsibilities [38, 134]? How is "tell-a-vision" programming shaping the minds and desires of your children away from the Kingdom [38, 134]?
|
||||
|
||||
**Owning Your Time:** Fathers, are you caught in the "Egyptian" bricks-and-mortar trap of overworking at the expense of being present to train your children [39, 137]? What adjustments do you need to make to own your time [39, 138]?
|
||||
|
||||
#### Action steps
|
||||
**The Blanket Training Trial:** For infants (6–9 months), lay down a small blanket on the floor [36, 91]. Practice giving the quiet command: "I don't want you going off of that." [37, 91] Gently correct their hand when they test the boundary, and place them back on [37, 91]. Use this tool to train their ears to listen to your voice [37, 91].
|
||||
|
||||
**Integrating vs. Separating:** Stop treating household chores as a solo burden. This week, give your child a paint roller, have them help push buttons on the washing machine, or pull up a chair to help wash dishes [40, 175]. Let them participate in your daily life, reinforcing that the family works together with joy [40, 175].
|
||||
|
||||
---
|
||||
|
||||
### Workbook — Chapter 5 focus: Generational Advancement & Covenant Priorities
|
||||
#### Heart-level reflections
|
||||
**The Penny in Half:** Do your children carry the heavy burden of expecting you to be perfect [42, 43]? How can you model humility and the pursuit of growth rather than a false image of perfection [43, 95]?
|
||||
|
||||
**The Priority Order:** Honestly assess your calendar and energy. Are you living according to the covenant order: God First, Family Second, Ministry/Work Third [43, 44, 144]?
|
||||
|
||||
#### Action steps
|
||||
**The "Half-Penny" Conversation:** Gather your children (especially those ages 7–9 or older) [42, 95]. Share the "half-penny" teaching with them:
|
||||
|
||||
> "Mom and I are not perfect parents, but we are working with the Lord to clear away old battles so you don't have to fight them [41, 42, 95]. There will still be a portion left for you to deal with, but you will stand on our shoulders." [41, 42, 95]
|
||||
|
||||
**Rebuilding Broken Bridges (Late Starts / Blended Families):** Seek the Holy Spirit and ask: "Have I ever made any promises to my children that I have not kept?" [47, 161] If a promise comes to mind—no matter how small or how financially challenging—make a concrete plan to keep your word and fulfill that promise this month [47, 161].
|
||||
|
||||
### Themes captured for future workbook development
|
||||
|
||||
- The material moves from teaching content into self-examination, shared marital practices, and concrete household commitments.
|
||||
- The workbook treats parental transformation and modeling as the starting point for changes in the home.
|
||||
- The questions invite parents to examine obedience, emotional regulation, presence, priorities, division, media use, and generational vision.
|
||||
- The proposed exercises include a refuge audit, a calmness practice, parental-unity protocols, a 30-day appreciation covenant, media and time audits, shared household work, a half-penny conversation, and promise-repair work.
|
||||
- The source workbook is intended to be used by spouses together, not merely read individually.
|
||||
- Each chapter's practical section mirrors the book's larger sequence: model first, correct redemptively, build unity, guard influences, and advance the covenant family.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between the workbook citations and the original audio/NotebookLM source.
|
||||
- The physical-discipline exercises in Sections 2 and 4 should not be presented as ready-to-use instructions in a parent-facing workbook. Replace or substantially revise them after professional safeguarding review, with non-violent, age-appropriate alternatives centered on supervision, redirection, natural/logical consequences, repair, and emotional regulation.
|
||||
- The "correction room" exercise should not encourage isolating a child with an adult or imply that privacy overrides safety, accountability, or a child's right to disclose harm. Any final version should include clear safeguarding boundaries and appropriate access to trusted, independent help.
|
||||
- The suggestion to place a switch in the home should be removed from a practical action checklist unless the final theological and safeguarding review explicitly justifies its inclusion; the current source note must not be mistaken for an endorsement.
|
||||
- "Perfect right standing" and the idea that correction removes a spiritual debt require theological review so that children are not taught that physical pain is required for forgiveness, belonging, or restoration.
|
||||
- "If the other spouse has given an answer, the discussion is permanently closed" should be softened to allow clarification, correction of mistakes, accessibility needs, changing circumstances, and safe disclosure. Children must not be trained to stop asking questions or reporting concerns.
|
||||
- The 30-day breakfast and sunset covenants should allow for work schedules, illness, disability, conflict de-escalation, sleep, safety, and circumstances in which immediate reconciliation is not appropriate.
|
||||
- The blanket-training trial should not be reproduced without current pediatric and child-safety review. Infant crawling and boundary-testing are normal development; safe supervision and childproofing should come before obedience training.
|
||||
- The "Egyptian" overwork metaphor and "own your time" exercise should not shame parents who must work, rely on childcare, or manage financial hardship. Include varied family structures and realistic economic constraints.
|
||||
- Household-work activities require age-appropriate supervision around paint, appliances, water, heat, tools, chemicals, and other hazards.
|
||||
- The half-penny conversation should be adapted so children are not assigned responsibility for parental wounds or told they must inherit a predetermined portion of brokenness. Emphasize parental accountability, the child's agency, and freedom to seek help.
|
||||
- Promise-repair exercises should be bounded by safety, legality, financial sustainability, custody arrangements, and the child's best interests; a parent should not fulfill a harmful or impossible promise.
|
||||
- The workbook should include an explicit "when to seek help" page covering trusted pastoral care, licensed counseling, child-protection concerns, domestic abuse, mental-health crises, and situations in which a parent cannot stay calm or keep a child safe.
|
||||
|
||||
---
|
||||
|
||||
<!-- EDITORIAL COMMENT: Consider placing this calendar after a revised workbook and a safety/help section. The calendar currently repeats source exercises that the workbook flags for review. -->
|
||||
## The 30-Day Covenant Parenting Challenge Calendar
|
||||
|
||||
|
||||
This practical, day-by-day companion calendar is designed to help you and your spouse actively move from information to structural, heart-level transformation in your home [48]. Covenant parenting is a living relationship that must be intentionally walked out before the Lord and before your children [48, 62]. Use this daily tracker to build a secure sanctuary of peace in your household [48, 141].
|
||||
|
||||
---
|
||||
|
||||
### Week 1: Laying the Marital Foundation
|
||||
|
||||
The spiritual atmosphere of the home is anchored in the absolute unity of husband and wife [3, 199]. This week, we focus entirely on sealing the "cracks" of division, aligning our hearts privately, and nurturing horizontal communication [3, 24, 31, 200].
|
||||
|
||||
#### Day 1: The Sunset Covenant (Ephesians 4:26)
|
||||
|
||||
**Action:** Sit down with your spouse tonight and make a solemn covenant that you will never go to sleep angry [34, 218]. If a disagreement arises, commit to taking a private "time out" to pray individually, then come together to ask for forgiveness and pray together before sleeping [34, 216, 219].
|
||||
|
||||
**Scripture:** "...do not let the sun go down on your anger." [34, 54, 218, 221]
|
||||
|
||||
#### Day 2: Launching the 30-Day Breakfast Covenant
|
||||
|
||||
**Action:** Set your alarm 30 minutes earlier [54, 221]. Sit down for breakfast together (just the two of you) and share one specific, particular detail you sincerely appreciate and estimate about your spouse [32, 33, 54, 221, 224]. **Rule for Husbands:** Avoid generalities like "you look good"—find a particular, concrete action to celebrate [33, 224].
|
||||
|
||||
**Scripture:** "Seek, and you will find." [33, 222]
|
||||
|
||||
#### Day 3: The "What Did Dad/Mom Say?" Gatekeeping Protocol
|
||||
|
||||
**Action:** Align on the gatekeeping protocol [54, 210]. Whenever a child approaches you asking for a treat, permission, or a change in rules, your immediate, unthinking response must be: "What did Dad say?" or "What did Mom say?" [24, 25, 54, 210]. If the other spouse has given an answer, the discussion is permanently closed [25, 54, 210].
|
||||
|
||||
<!-- EDITORIAL COMMENT: The source labels this Day 4 activity as "Day 3." Preserve the source heading for traceability, but reconcile the breakfast count before publication. -->
|
||||
#### Day 4: Day 3 of the Breakfast Covenant
|
||||
|
||||
**Action:** Share your daily specific deposit [32, 33]. Today, focus on celebrating how your spouse handles pressure or exhaustion [30, 143, 201].
|
||||
|
||||
#### Day 5: Private Discipline Alignment Check
|
||||
|
||||
**Action:** Covenant together that you will never correct, undermine, or disagree with each other's disciplinary actions in front of the children [26, 204, 205]. If you disagree with how a situation was handled, deal with your own irritation privately and discuss it strictly behind closed doors later [27, 211].
|
||||
|
||||
#### Day 6: Modeling Humility & Repentance
|
||||
|
||||
**Action:** If you slipped up this week and displayed division or disrespect in front of your children, execute the restoration protocol [28, 205]. First, apologize to your spouse privately:
|
||||
|
||||
> "My love, I am sorry. I realize that I made you look bad in front of the child, and I repent." [28, 205]
|
||||
|
||||
Second, go to the child:
|
||||
|
||||
> "What I said to you about your mother/father was wrong. I want to apologize to you for dishonoring them in front of you." [29, 206]
|
||||
|
||||
#### Day 7: Weekly Reflection & Rest
|
||||
|
||||
**Action:** During your breakfast covenant today, evaluate the atmosphere of the home [32, 221]. Has the spirit of peace and security increased? Ask: "Are we taking time to truly listen to one another's hearts, or are we just waiting for our turn to speak?" [31, 213].
|
||||
|
||||
---
|
||||
|
||||
### Week 2: Establishing Heart-Level Security & Early Boundaries
|
||||
|
||||
This week, we transition into early training boundaries and emotional security. We examine how our physical actions, voice tone, and early limits build a protective shield around our children [3, 20, 37, 103].
|
||||
|
||||
#### Day 8: Consecrating the Hands & the Voice
|
||||
|
||||
**Action:** Consecrate your hands and voice today [20, 226]. Declare that your hands are made exclusively for hugging, holding, and expressing love and tenderness [20, 84, 226]. Agree that your voice will never be the vehicle of correction, but only of instruction, praise, and love [226]. Remove all rigid correction implements (belts, heavy spoons) from the home [20, 84, 52].
|
||||
|
||||
#### Day 9: Establishing the "Correction Room"
|
||||
|
||||
**Action:** Identify a private, designated area in your house (a bedroom or bathroom) that will serve as the private place of correction [23, 174]. Place a tender, limber lilac switch (smooth, with bumps shaved off) in that room [20, 175]. Commit to never correcting your children publicly or in front of siblings [23, 174].
|
||||
|
||||
#### Day 10: Expressive Love Deposits
|
||||
|
||||
**Action:** Be intentionally expressive today [139, 140]. Hug your children unexpectedly, write them a sweet note, or tell them specific reasons why you love them and estimate who they are [139, 140]. Ensure they know their security is unshakeable [87, 103].
|
||||
|
||||
#### Day 11: Blanket Training Setup (For Infants 6–9 Months)
|
||||
|
||||
**Action:** Spread a small blanket on the floor [36, 102]. Place the infant on it and say quietly: "I don't want you going off of that." [37, 102] When they attempt to crawl off, gently tap their hand to associate disobedience with instant correction, and place them back on the blanket [37, 102]. Repeat this several times in a focused, calm session [37, 102]. **(For older children, choose a single, clear boundary—like not touching the coffee table—to train their ears to listen to your voice [102].)**
|
||||
|
||||
#### Day 12: The Rule of Calmness Practice
|
||||
|
||||
**Action:** If you feel your blood pressure rising or feel on edge during a disciplinary moment today, practice stopping immediately [22, 112]. Say to your spouse: "I am not in a position to handle this right now," and let them step in and cover for you, or find a calm place before the Lord before addressing the situation [22, 30, 52, 112, 185].
|
||||
|
||||
#### Day 13: Instant Obedience Check
|
||||
|
||||
**Action:** Evaluate if you have fallen into the trap of counting to three or repeating commands multiple times [227]. Commit today to expecting instant obedience to your voice [141, 227]. Give clear, loving instruction once, and address any delay as disobedience [140, 141, 227].
|
||||
|
||||
#### Day 14: Mid-Point Reflection
|
||||
|
||||
**Action:** Reflect on Proverbs 14:26 [3, 74]. Write down how growing in your own reverent fear and instant obedience to the Heavenly Father has created a physical and spiritual "shield of refuge" for your children this week [3, 13, 74].
|
||||
|
||||
---
|
||||
|
||||
### Week 3: Integrating Work, Joy, and Presence
|
||||
|
||||
We are called to own our time, stay present, and include our children in the everyday affairs of life so they learn that labor is a joyful, natural expression of the family [5, 39, 40].
|
||||
|
||||
#### Day 15: Media Audit ("Tell-a-Vision")
|
||||
|
||||
**Action:** Walk through your home and evaluate the media intake [38, 145]. Identify where tablets, phones, or television are acting as "surrogate parents" or distractions [38, 145]. Agree to strictly limit or close the door to secular programming to keep the atmosphere of the home pure [38, 145].
|
||||
|
||||
#### Day 16: Erasing the Work vs. Fun Boundary
|
||||
|
||||
**Action:** Stop treating household chores as a solo burden [40, 186]. Today, pull up a chair and let your toddler help wash dishes, push the buttons on the washing machine, fold laundry, or give your older child a paint roller to help paint [40, 186]. Make work a shared, joyful experience of living life together [40, 186].
|
||||
|
||||
#### Day 17: Father's Covenant: Owning Your Time
|
||||
|
||||
**Action:** Fathers, spend time before the Lord today asking for creative, Kingdom strategies to "own your time" [39, 149]. Examine your schedule to ensure you are physically and mentally present for your family rather than caught in the "Egyptian brick-making trap" of excessive work [39, 148, 149].
|
||||
|
||||
#### Day 18: Celebrating the Mother's Role
|
||||
|
||||
**Action:** Husbands, take time today to actively celebrate, verbalize, and honor the sacred work your wife does in nurturing the home and multiplying your family's resources [30, 39, 147]. Let her know that her presence far surpasses any secular career or paycheck [39, 146, 147].
|
||||
|
||||
#### Day 19: The "I Will Say Yes" Promise
|
||||
|
||||
**Action:** Look for opportunities to say "Yes!" to your children today [151]. Tell them: "There are times I have to say no to protect you, but I am looking for every opportunity to say yes to you." [151, 152] Plan a family-appropriate trip, surprise outing, or special treat to fulfill this promise [151, 153].
|
||||
|
||||
#### Day 20: Outdoor Activity Shift
|
||||
|
||||
**Action:** If the atmosphere of the home feels pent up or stressful today, physically shift locations [179, 180]. Take the children outside to build a fort, play in the yard, go to the park, or take a simple drive [179, 180]. Use nature and play as a release valve for energy [178, 180].
|
||||
|
||||
#### Day 21: Weekly Reflection: Celebration of Individuality
|
||||
|
||||
**Action:** Discuss how your children are uniquely wired [118, 121]. Repent of any verbal comparisons between siblings [119, 120]. Ask the Holy Spirit for custom wisdom (Rhema word) for each child's specific, unique design [117, 118].
|
||||
|
||||
---
|
||||
|
||||
### Week 4: Generational Legacy & Deep Restoration
|
||||
|
||||
We parent with a multi-generational vision, preparing our children to stand on our spiritual shoulders and leap forward into their own divine destinies [6, 12, 41].
|
||||
|
||||
#### Day 22: The "Half-Penny" Conversation
|
||||
|
||||
**Action:** Gather your children (especially those ages 7–9 or older) for a teaching moment [42, 106]. Explain the "half-penny" concept:
|
||||
|
||||
> "Mom and Dad are not perfect, and we are working with the Lord to clear away old battles so you don't have to fight them [42, 106]. There will still be a portion left for you to deal with under His sovereign hand, but you will stand on our shoulders." [41, 42, 106]
|
||||
|
||||
#### Day 23: Rebuilding Broken Bridges (Late Starts & Blended Families)
|
||||
|
||||
**Action:** Ask the Holy Spirit: "Have I ever made any promises to my children that I have not kept?" [47, 172] If a promise comes to mind—no matter how small or financially difficult—write down a concrete plan to keep your word and fulfill it this month [47, 172]. Fulfilling your promises models our covenant-keeping Father [47, 172].
|
||||
|
||||
#### Day 24: Covenant Priority Check
|
||||
|
||||
**Action:** Audit your calendar, finances, and energy [57]. Are you walking in strict alignment with God's covenant order of priorities: God First, Family Second, Ministry/Work Third? [43, 44, 57] Adjust any inverted priorities today [44].
|
||||
|
||||
#### Day 25: Honoring the Greater Body
|
||||
|
||||
**Action:** Teach your children that they are not alone, and that they have the freedom to reach out to trusted, ordained local leaders or counseling elders if they ever need help or counsel [45, 157]. Model this by showing submission and honor to local headship yourself [45, 157].
|
||||
|
||||
#### Day 26: Facing Insecurities
|
||||
|
||||
**Action:** Realize that any insecurities you carry do not have to be passed down [14, 104]. Bring your deep-seated fears or past family wounds to the Lord, allowing Him to heal you so that your children can walk in total, inherited spiritual security [14, 73, 104, 105].
|
||||
|
||||
<!-- EDITORIAL COMMENT: Reconcile the breakfast count before publication. The calendar launches the practice on Day 2, labels Day 4 as Day 3, and calls Day 27 the 30th breakfast; the schedule does not clearly support all three labels. -->
|
||||
#### Day 27: Concluding the 30-Day Breakfast Covenant Challenge
|
||||
|
||||
**Action:** As you complete your 30th breakfast together, commit to making these daily specific deposits a permanent, lifelong habit of your marriage [32, 223]. Celebrate how focusing on finding the good has transformed your relationship [34, 222].
|
||||
|
||||
#### Day 28: Preparing the Next Generation to Model
|
||||
|
||||
**Action:** Reflect on Acts 13:36 [12]. Pray a blessing over your children, asking the Lord to equip them to serve His purposes faithfully in their own generation [12, 65].
|
||||
|
||||
---
|
||||
|
||||
### Days 29–30: Evaluation & Generational Forwarding
|
||||
|
||||
#### Day 29: Joint Spouse Review
|
||||
|
||||
**Action:** Review the completed 30-day challenge. Where did you see the most significant fruit? Where did the Holy Spirit highlight areas that still need to be "narrowed up" or healed? [14, 73, 76]
|
||||
|
||||
<!-- EDITORIAL COMMENT: Rewrite the "ceiling becomes floor" language as an aspirational blessing rather than a guarantee or an obligation placed on children to reproduce a parent's ministry, theology, or achievements. -->
|
||||
#### Day 30: Sealing the Legacy
|
||||
|
||||
**Action:** Commit this parenting journey to the Lord in prayer [193]. Declare that your family is stepping into generational advancement, and that the spiritual ceiling of your life has officially become the floor upon which your children stand [6, 41, 105].
|
||||
|
||||
### Development themes
|
||||
- The calendar begins with marital unity and communication before moving into child-focused boundaries and correction.
|
||||
- Its sequence progresses from household atmosphere, to heart-level security, to presence and shared work, and finally to generational legacy and restoration.
|
||||
- The daily practices emphasize appreciation, repentance, calmness, parental consistency, presence, media awareness, shared labor, individualized attention, promise keeping, and prayer.
|
||||
- The calendar translates the broader teaching into a structured rhythm of daily action, weekly reflection, and final evaluation.
|
||||
- The challenge repeatedly connects parental transformation with the security and future formation of children.
|
||||
- The calendar includes both couple-centered practices and child-centered conversations, allowing later editions to distinguish exercises for spouses, infants, older children, blended families, and ministry families.
|
||||
|
||||
### Editorial, pastoral, developmental, and safeguarding review
|
||||
- Verify all Scripture references, quotations, translations, page/source-number citations, and the relationship between this calendar's citations and the original audio/NotebookLM source.
|
||||
- The calendar contains repeated instructions to use a switch, tap an infant's hand, and conduct private physical correction. These instructions should not be distributed as a ready-to-use parent program. Before any public edition, replace or substantially revise them after professional pediatric, child-development, and safeguarding review, centering non-violent redirection, supervision, natural/logical consequences, repair, and emotional regulation.
|
||||
- The "correction room" should not be framed as a private space where a child is isolated with an adult without safety, accountability, and access to independent help. Privacy should protect dignity, not conceal harm.
|
||||
- "Never go to sleep angry" and the sunset covenant should allow safe time-outs, sleep, boundaries, and delayed conversation. Immediate reconciliation is not appropriate in every conflict, particularly where there is intimidation, coercive control, abuse, or escalating danger.
|
||||
- The "What Did Dad/Mom Say?" protocol and the phrase "the discussion is permanently closed" require safeguards. Parents may need to correct a mistake, hear a child's question, accommodate disability or changing circumstances, or receive a disclosure of harm. Unity must not become silencing.
|
||||
- Day 8's instruction that the voice should never be a vehicle of correction conflicts with the broader source teaching's emphasis on correcting disobedience and should be clarified in the original recording context.
|
||||
- Day 13's "instant obedience" exercise should be reviewed developmentally. Young children may need repetition, processing time, communication support, or an explanation of a request; delay is not automatically defiance.
|
||||
- The 30-day breakfast count appears internally inconsistent: the calendar launches the breakfast covenant on Day 2, labels Day 4 as "Day 3," and calls Day 27 the 30th breakfast even though the listed daily breakfast actions do not clearly account for thirty meetings. Reconcile the schedule before publication.
|
||||
- The "I Will Say Yes" promise should not pressure parents into purchasing outings or treats, or make a child's felt love dependent on receiving a yes. Define realistic, relational ways to say yes while preserving necessary boundaries and financial sustainability.
|
||||
- The "Egyptian brick-making trap," the instruction that a mother's presence surpasses a secular career, and the gendered roles should be presented as the speaker's family framework, not a universal measure of faithfulness. Include single parents, dual-income families, childcare, disability, illness, economic necessity, adoptive/foster families, and varied vocational callings.
|
||||
- Outdoor drives and activities require ordinary safety planning, supervision, weather awareness, transportation restraints, and age-appropriate expectations.
|
||||
- Day 21's language about each child being uniquely wired is valuable, but "Rhema word" should be explained and should not replace listening to the child, developmental knowledge, qualified support, or medical/mental-health care.
|
||||
- The half-penny exercise should not tell children they inherit a predetermined portion of parental brokenness. Emphasize parental accountability, the child's agency, and freedom to seek help.
|
||||
- Trusted local leaders, "counseling elders," and "local headship" must be qualified, accountable, safeguarding-compliant, and open to independent scrutiny. Children must retain access to safe adults outside the parents' chosen leadership circle and to licensed professional help.
|
||||
- "Submission" to church authority must never require secrecy, unquestioning obedience, isolation, surrender of safety, or protection of leaders from scrutiny.
|
||||
- Promise-repair exercises should be bounded by safety, legality, custody arrangements, financial sustainability, and the child's best interests. An unsafe or impossible promise should be addressed honestly rather than fulfilled at any cost.
|
||||
- "Generational forwarding" and the statement that a parent's spiritual ceiling becomes a child's floor should be framed as an aspirational metaphor, not a guarantee or a burden placed on children to continue a parent's ministry or spiritual achievements.
|
||||
Binary file not shown.
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: EATC Inaugural Meeting — Teaching on Covenant
|
||||
meeting_date: 2021-01-16
|
||||
tags: [eatc, emi, meeting, covenant, leadership]
|
||||
source: EATC-Covenant-Teaching-Summaries.pdf
|
||||
---
|
||||
|
||||
# EATC Inaugural Meeting — Teaching on Covenant
|
||||
|
||||
**Meeting date:** January 16, 2021
|
||||
**Source:** `EATC-Covenant-Teaching-Summaries.pdf`
|
||||
**Source type:** Summary of meeting transcript
|
||||
|
||||
## Central purpose
|
||||
|
||||
The teaching presented covenant as the foundation for spiritual unity, shared governance, and coordinated action within EATC. The group was described as an “ecclesia,” a “church within a church,” or a “headship company” intended to help lead transformation in the Port St. Lucie region.
|
||||
|
||||
The stated purpose was not merely educational. The teaching was preparation for formalizing binding commitments through a written covenant and spoken declarations.
|
||||
|
||||
## Main objectives described
|
||||
|
||||
### Establish binding commitment
|
||||
|
||||
- Covenant commitments were to be verbalized rather than left theoretical.
|
||||
- The teaching prepared participants for formal covenant-making.
|
||||
- The covenant was presented as a serious, non-negotiable commitment among members.
|
||||
|
||||
### Establish five covenant relationships
|
||||
|
||||
The summary identifies five relationships described in the teaching:
|
||||
|
||||
1. Covenant with God concerning His purpose
|
||||
2. Covenant with the EMI family
|
||||
3. Covenant with Port St. Lucie
|
||||
4. Covenant with one another
|
||||
5. Covenant with Apostle Boney
|
||||
|
||||
### Prevent internal division
|
||||
|
||||
The teaching framed covenant as protection against internal betrayal, discord, and division. It emphasized loyalty, love, restoration, and responsibility toward fellow members.
|
||||
|
||||
### Empower unified action
|
||||
|
||||
Genesis 11 was used as a model of corporate unity: people with one language and purpose can accomplish what they set out to do. EATC was presented as a unified foundation for collective action.
|
||||
|
||||
### Form a governing leadership body
|
||||
|
||||
Members were described as catalysts or agents for change in the region—not simply church attendees, but a foundational leadership structure for spiritual, civic, and regional transformation.
|
||||
|
||||
## Scriptural and illustrative foundations
|
||||
|
||||
The summary records references to:
|
||||
|
||||
- Genesis 18:18–19 — covenant extending to the household and responsibility to keep the way of the Lord
|
||||
- Exodus 19:4–6 — obedience and covenant identity
|
||||
- Matthew 24:15 — spiritual danger associated with internal betrayal
|
||||
- Proverbs 6:16–19 — sowing discord among brethren as an abomination
|
||||
- 1 John 2:18–19 — the danger of opposition arising from within
|
||||
- 1 Corinthians 13 — love as the foundation of covenant relationship
|
||||
- Galatians 3:15 — the binding nature of a confirmed covenant
|
||||
- Acts 4:32–34 — the early church as a model of shared stewardship
|
||||
- 1 John 5:14–16 — responsibility to seek restoration and life for a brother
|
||||
- Galatians 6:1 — restoring someone gently when caught in sin
|
||||
- The Navy SEAL Creed — used as a secular comparison for loyalty and sacrifice
|
||||
|
||||
## Overall interpretation of the meeting
|
||||
|
||||
The inaugural teaching established EATC’s identity around covenant community, shared purpose, accountable relationships, and leadership for regional transformation. It served as foundational preparation for a formal covenant document and subsequent spoken commitments.
|
||||
|
||||
## Source note
|
||||
|
||||
This note preserves the supplied summary’s description of the meeting. It does not independently verify the transcript quotations, timestamps, or theological interpretations.
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Understanding the Purpose of EATC
|
||||
meeting_date: 2021-02-06
|
||||
tags: [eatc, emi, meeting, covenant, apostolic-leadership, port-st-lucie]
|
||||
source: Understanding-the-purpose-of-EATC-feb-6-2021-m4a_Aug_25__2026.pdf
|
||||
---
|
||||
|
||||
# Understanding the Purpose of EATC
|
||||
|
||||
**Recording title date:** February 6, 2021
|
||||
**Source file:** `Understanding-the-purpose-of-EATC-feb-6-2021-m4a_Aug_25__2026.pdf`
|
||||
**Source transcription:** Fireflies.ai summary
|
||||
**PDF-generated meeting date:** August 26, 2026; likely the transcription/export date rather than the recording date
|
||||
|
||||
## Summary
|
||||
|
||||
The meeting described EATC as a spiritual and leadership training center intended to develop apostolic leadership, form a covenant community, and establish a model for regional and eventually global replication. Port St. Lucie was presented as the initial geographic focus.
|
||||
|
||||
The meeting also addressed covenant adoption, teaching materials, confidentiality, future declarations, and practical steps for distributing recordings and documents.
|
||||
|
||||
## Vision and strategic direction
|
||||
|
||||
- EATC was presented as a center for spiritual and regional leadership in Port St. Lucie.
|
||||
- The stated ambition was for the model to be replicated in other regions globally.
|
||||
- The vision included placing people in key spiritual, civic, and political leadership roles.
|
||||
- Port St. Lucie was described as a spiritually significant location for kingdom purposes.
|
||||
- Biblical examples included Nehemiah’s rebuilding work and Daniel’s rise to authority in Babylon.
|
||||
- The long-term vision included developing land, businesses, and regional influence.
|
||||
|
||||
## Spiritual warfare and authority
|
||||
|
||||
The meeting included declarations concerning spiritual warfare, territorial authority, and opposition to the mission. The summary describes a decree calling spiritual and natural authorities to support the building of God’s kingdom in the region and to provide resources.
|
||||
|
||||
These statements are recorded as part of the meeting’s teaching and declarations, not as independently verified external facts.
|
||||
|
||||
## Covenant community
|
||||
|
||||
The covenant was presented as the basis for unity, accountability, and operational cohesion.
|
||||
|
||||
Members were expected to commit to:
|
||||
|
||||
- Loyalty and transparency
|
||||
- Love and forgiveness
|
||||
- Mutual support
|
||||
- Confidentiality
|
||||
- Shared mission and responsibility
|
||||
|
||||
The summary describes a blood-covenant ritual and plans to register and sign a formal covenant document. It also says that covenant discussions were treated as confidential and that the community’s priority was distinguished from the wider family.
|
||||
|
||||
## Teaching and training materials
|
||||
|
||||
The meeting referenced teaching resources on:
|
||||
|
||||
- Apostolic leadership
|
||||
- Honor
|
||||
- Spiritual warfare
|
||||
- Covenant
|
||||
- Breaking limits
|
||||
- Apostolic centers and transformation
|
||||
- Blood covenant and horizontal covenant
|
||||
|
||||
Authors and sources mentioned include Tudor Bismarck, Alan Carron, C.H. Pierce, and other apostolic teaching resources. The group planned to accelerate study and make recordings and materials available to members.
|
||||
|
||||
## Community and meeting practices
|
||||
|
||||
- Meetings were described as invitation-only.
|
||||
- Members were instructed not to invite others without approval.
|
||||
- The principle that what happens in the meetings stays within the group was emphasized.
|
||||
- WhatsApp and email were used for covenant-document distribution.
|
||||
- Technical support was needed for recording, compression, and file sharing.
|
||||
- Regular Saturday meetings were planned.
|
||||
- Prayer for practical needs such as housing, jobs, food, and spiritual empowerment was included.
|
||||
|
||||
## Action items recorded
|
||||
|
||||
- **Apostle John Boney:** Finalize the covenant document with members’ names and distribute it for review and signing.
|
||||
- **David Hewitt:** Compile and share a comprehensive list of teaching materials.
|
||||
- **Unassigned:** Contact the Tudor Bismarck organization and Robin Bullock for access to referenced teaching videos.
|
||||
- **Chris:** Prepare and finalize the covenant agreement and send it to the group for signatures.
|
||||
- **All members:** Review the covenant and related teachings, then prepare to affirm the covenant publicly.
|
||||
- **Meeting organizers:** Post the covenant and prior recordings to the group’s WhatsApp or mailing list.
|
||||
- **Meeting organizer:** Facilitate public verbal affirmation at the next meeting.
|
||||
- **Group:** Keep Saturdays open for future meetings and covenant-renewal sessions.
|
||||
|
||||
## Source note
|
||||
|
||||
This note is a structured consolidation of the supplied PDF summary. It preserves the meeting’s reported vision, teachings, declarations, and action items without independently verifying them.
|
||||
@@ -0,0 +1,93 @@
|
||||
---
|
||||
title: Understanding the Purpose of EATC — Part 2
|
||||
meeting_date: 2021-02-20
|
||||
tags: [eatc, emi, meeting, covenant, leadership-development, port-st-lucie]
|
||||
source: Understanding-the-purpose-of-EATC-part-2-02-20-2021-m4a_Aug_25__2026.pdf
|
||||
---
|
||||
|
||||
# Understanding the Purpose of EATC — Part 2
|
||||
|
||||
**Recording title date:** February 20, 2021
|
||||
**Source file:** `Understanding-the-purpose-of-EATC-part-2-02-20-2021-m4a_Aug_25__2026.pdf`
|
||||
**Source transcription:** Fireflies.ai summary
|
||||
**PDF-generated meeting date:** August 26, 2026; likely the transcription/export date rather than the recording date
|
||||
|
||||
## Summary
|
||||
|
||||
This meeting focused on leadership selection, spiritual preparation, covenant accountability, divine assignment, and expansion beyond the original Port St. Lucie setting.
|
||||
|
||||
The summary describes a selective leadership pipeline: from an initial group of approximately 50 people, a smaller group of 12 would qualify as close leaders based on spiritual readiness, commitment, and response to God’s purpose.
|
||||
|
||||
## Leadership development and qualification
|
||||
|
||||
- Leadership qualification was presented as based on spiritual readiness rather than convenience or personal ambition.
|
||||
- The model was compared with Jesus’ disciples, where those closest to leadership carried greater expectations.
|
||||
- Preparation was described as requiring endurance, testing, hardship, and long-term growth.
|
||||
- Moses was used as an example of extended preparation before leadership.
|
||||
- Future leaders were expected to be equipped for church, civic, and local-government roles.
|
||||
- Leaders’ reputations were described as connected to their faithfulness to the covenant.
|
||||
|
||||
## Divine assignment and humility
|
||||
|
||||
The teaching emphasized that members do not choose their own positions; assignments are determined by God. The intended result was humility, submission, and reduced rivalry among participants.
|
||||
|
||||
Understanding one’s calling was connected to close relationship with leadership and spiritual mentorship.
|
||||
|
||||
## Biblical vision and spiritual foundation
|
||||
|
||||
Isaiah 49 was presented as a central scripture for endurance, calling, protection, timing, and eventual honor before kings and nations.
|
||||
|
||||
The “polished arrow in a quiver” metaphor was used to describe:
|
||||
|
||||
- Preparation before public activation
|
||||
- Dependence on the archer, representing God’s direction
|
||||
- The need to function within a collective purpose
|
||||
- Protection from premature exposure and opposition
|
||||
- Patience until the appropriate time
|
||||
|
||||
The meeting also emphasized the power and responsibility of spoken words, the refinement of one’s voice, and obedience learned through suffering.
|
||||
|
||||
## Covenant and group identity
|
||||
|
||||
- A spoken covenant declaration was described as mandatory for group membership.
|
||||
- The covenant was presented as exclusive and binding.
|
||||
- Designated people were responsible for documenting covenant declarations.
|
||||
- Members were described as a spiritual family with high standards and mutual accountability.
|
||||
- Personal struggles and “purging” were framed as part of preparation for spiritual maturity.
|
||||
- One participant described the transition into the group as a peaceful sense of “coming home.”
|
||||
|
||||
## Mission expansion
|
||||
|
||||
The meeting described a long-term expansion strategy:
|
||||
|
||||
- Sending leaders to other regions and establishing new centers
|
||||
- Developing leaders for church, civic, and political influence
|
||||
- Expanding beyond Port St. Lucie as the mission grows
|
||||
- Treating Africa as a strategic gateway for connections to Mexico, Asia, Australia, and Europe
|
||||
- Producing leaders who could serve as kingdom ambassadors in multiple spheres
|
||||
|
||||
The summary says the meeting referred to establishing new “EACs” in other regions; this wording is retained from the source and may require confirmation against the recording or surrounding materials.
|
||||
|
||||
## Spiritual timing and protection
|
||||
|
||||
The meeting stressed that ministry effectiveness depends on God’s timing. Premature action was described as a risk that could undermine the mission or expose leaders before they were ready.
|
||||
|
||||
Additional themes included:
|
||||
|
||||
- Obedience before public recognition
|
||||
- Refining the group’s spiritual voice
|
||||
- Completing the vision entrusted by spiritual mentors
|
||||
- Protecting leaders during preparation
|
||||
- Waiting for the right time before activation
|
||||
|
||||
## Action items recorded
|
||||
|
||||
- **Marlene:** Collect and consolidate covenant information, ensure it is documented accurately, and coordinate formal covenant entry.
|
||||
- **All members:** Review the covenant and formally declare it aloud.
|
||||
- **Charleston:** Confirm covenant review and prepare a personal declaration.
|
||||
- **Ibrahim:** Speak individually to affirm his covenant commitment when prompted.
|
||||
- **Group members:** Internalize the leadership standards and prepare for future leadership and ambassadorial roles.
|
||||
|
||||
## Source note
|
||||
|
||||
This note is a structured consolidation of the supplied PDF summary. It records the meeting’s reported teachings and action items without independently verifying theological claims, quotations, or transcript timestamps.
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: EATC Meeting Notes
|
||||
created: 2026-09-05
|
||||
updated: 2026-09-05
|
||||
tags: [eatc, emi, meetings, covenant, leadership]
|
||||
---
|
||||
|
||||
# EATC Meeting Notes
|
||||
|
||||
Separate notes from the EATC teaching and purpose meetings received from prior meeting records. These notes preserve the meetings as individual documents rather than merging them into one transcript.
|
||||
|
||||
## Meetings
|
||||
|
||||
- [[2021-01-16-eatc-inaugural-covenant-teaching]] — Teaching on covenant; inaugural EATC meeting
|
||||
- [[2021-02-06-eatc-purpose]] — Understanding the purpose of EATC
|
||||
- [[2021-02-20-eatc-purpose-part-2]] — Understanding the purpose of EATC, part 2
|
||||
- [[audio-transcription-2026-09-05]] — Full transcription of newly supplied audio; PDF version: `audio-transcription-2026-09-05.pdf`
|
||||
|
||||
## Related brain notes
|
||||
|
||||
- [[emi_portfolio_data_collection_2026]] — identifies Fort Pierce as the EATC/EMI Training Center
|
||||
- [[emic_fl_board_meeting_history_2024-2026]] — later EMIC Florida board-meeting history
|
||||
- [[emic_fl_bylaws_summary_2024-12-30]] — EMIC Florida bylaws summary
|
||||
|
||||
## Source and dating note
|
||||
|
||||
The two “Understanding the purpose of EATC” PDFs contain recording titles dated February 6 and February 20, 2021, while their generated summaries list August 26, 2026 as a meeting date. The recording-title dates are used as the meeting dates here; August 26, 2026 is retained as the apparent transcription/generated date rather than treated as the meeting date.
|
||||
|
||||
These are structured summaries of supplied PDFs, not independent verification of the claims or decisions described in the recordings.
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -0,0 +1,92 @@
|
||||
---
|
||||
Date: 2026-09-04
|
||||
Author: Hermes
|
||||
Tags: #emi #chiapas #leadership #latinamerica #meeting-notes
|
||||
Source: WhatsApp audio attachment; raw transcript preserved separately
|
||||
Related: [[latin_america_emi_collaboration_2026]]
|
||||
---
|
||||
|
||||
# EMI Chiapas 2026 — Audio Meeting Notes
|
||||
|
||||
## Source and fidelity
|
||||
|
||||
- Source audio: `/Users/adolforeyna/.hermes/cache/documents/doc_0e0b78113b40_audio1786403127.m4a`
|
||||
- Duration: 40m 13s
|
||||
- Raw transcription: `/Users/adolforeyna/Projects/MacMiniMCP/generated-transcriptions/transcription-1788608886475.json`
|
||||
- Engine: Apple SpeechAnalyzer + SpeechTranscriber, en-US
|
||||
- The recording contains Spanish/English mixed speech. Some names and assignments were difficult for ASR and require confirmation.
|
||||
|
||||
## Main purpose
|
||||
|
||||
- Strengthen relationships and communication among Spanish-speaking leaders.
|
||||
- Preserve and pass on the spiritual deposit received from apostolic fathers.
|
||||
- Connect established leaders with emerging leaders.
|
||||
- Encourage collaboration between congregations and ministries.
|
||||
- Define concrete ministry steps for Latin America after the gathering.
|
||||
|
||||
## Proposed program
|
||||
|
||||
### Tuesday — Generational continuity
|
||||
|
||||
- Morning prayer and focused intercession.
|
||||
- Teaching/conversation about preserving the deposit of grace received from previous leaders.
|
||||
- Discussion with emerging leaders around the same theme.
|
||||
- Apostle-led small groups for questions, conversation, and relationship-building.
|
||||
- Profeta Luz appears to be associated with this day; confirm.
|
||||
|
||||
### Wednesday — Stories of impartation
|
||||
|
||||
- Prayer appears to involve Pastora Lucy; confirm.
|
||||
- Leaders share testimonies and stories of what God has done.
|
||||
- Adults explain God’s works to the children, reflecting Psalm 78:4.
|
||||
- Small groups rotate so participants can hear from multiple leaders.
|
||||
- Walk/excursion around the hotel grounds.
|
||||
- Prayer, worship, prophecy, dinner, and a bonfire.
|
||||
- Children’s bonfire activities coordinated by Adolfo and Alicia.
|
||||
|
||||
### Thursday — Inter-ministry collaboration
|
||||
|
||||
- Moderation involving Juan Pablo and Génesis appears in the recording; confirm.
|
||||
- Apostle Adolfo’s proposed session: “The strengths of my congregation.”
|
||||
- Each congregation shares strengths and grace God has given it, such as intercession, teaching, family/marriage ministry, Kingdom revelation, or worship.
|
||||
- Goal: identify practical ways ministries can collaborate.
|
||||
- Discuss upcoming conferences, events, missions, and opportunities to participate together.
|
||||
- Pool time was discussed but may depend on the weather.
|
||||
|
||||
### Friday — Vision and concrete steps
|
||||
|
||||
- Prayer and the vision of the Kingdom for Latin America.
|
||||
- Presentation about the broader EMI vision, including Africa and Latin America.
|
||||
- Define concrete next steps for the next 6–8 months and the next 90 days.
|
||||
- Discuss missions, trips, and ministry projects needing specific plans.
|
||||
- Costa Rica and Panama were mentioned as examples of future regional work.
|
||||
- Presentations or conversations with Apostle Eduardo and Apostle Carlos were proposed; confirm.
|
||||
|
||||
## Discussion format
|
||||
|
||||
- The working idea is approximately five groups, each connected to an apostle or key leader.
|
||||
- Participants could later be reorganized so each new group includes someone from the original groups and everyone hears multiple testimonies.
|
||||
- The goal is meaningful interaction rather than a gathering made up only of long sermons.
|
||||
- Sessions may work better as approximately 90 minutes plus a 30-minute break, with flexibility.
|
||||
|
||||
## Preparation and open items
|
||||
|
||||
- Prepare questions for each leader before the gathering.
|
||||
- Contact Apostle Eduardo and Apostle Carlos to confirm participation and topics.
|
||||
- Clarify whether Carlos can attend; visa/travel issues were discussed.
|
||||
- Confirm participation from leaders connected to Cuba, Panama, and other regions.
|
||||
- Confirm assignments for prayer, moderation, teaching, testimonies, and worship.
|
||||
- Decide whether sermons or conversations may be recorded.
|
||||
- Prepare worship equipment, including guitar, piano, and a suitable music area.
|
||||
|
||||
## Existing confirmed logistics
|
||||
|
||||
- Dates: September 26–October 4, 2026.
|
||||
- Location: Chiapas, Mexico; arrival through Tuxtla Gutiérrez.
|
||||
- Hotel Cavali: September 28–October 3.
|
||||
- Cost: USD $150 per double room per night; USD $750 for five nights.
|
||||
- Breakfast and lunch included for two people; additional food charges may apply for children.
|
||||
|
||||
## Review note
|
||||
|
||||
This is a cleaned summary of the audio, not a verbatim transcript. Confirm speaker names, daily assignments, attendance, recording policy, and final schedule before publishing or distributing it as official EMI minutes.
|
||||
@@ -0,0 +1,19 @@
|
||||
# Factory Project Definitions
|
||||
|
||||
This directory holds one concise definition for each **our project** managed through the Paseo software-factory model.
|
||||
|
||||
| Key | Definition | Current focus |
|
||||
|---|---|---|
|
||||
| `emi` | [EMI](emi.md) | Multi-repository ministry application and production backend mapping |
|
||||
| `reyna-cli` | [Reyna CLI](reyna-cli.md) | Privacy-sensitive macOS operations platform |
|
||||
| `tactility` | [Tactility](tactility.md) | ESP32 platform, runtime apps, and approved device delivery |
|
||||
| `family-voice` | [Family Voice](family-voice.md) | Privacy-first voice context and speaker-ID prototype |
|
||||
| `kids-hermes-voice` | [Kids Hermes Voice](kids-hermes-voice.md) | Child-safe Tactility client, voice gateway, and Hermes runtime integration |
|
||||
| `remarkable-hermes` | [reMarkable Hermes](remarkable-hermes.md) | Paper Pro communication app and watcher recovery |
|
||||
|
||||
## Rules
|
||||
|
||||
- A project definition is our cross-server management record.
|
||||
- The project definition points to every relevant server-local Paseo project; it does not replace them.
|
||||
- Repository-local `AGENTS.md` governs code work; `../AGENTS.md` governs project-management work.
|
||||
- Add a new definition before creating factory agents/schedules for a new project.
|
||||
@@ -0,0 +1,29 @@
|
||||
# EMI Expo prayer localization commit — 2026-08-18
|
||||
|
||||
Repository: `/Users/adolforeyna/Projects/EMI/expoApp` (branch `master`)
|
||||
|
||||
## Approved cleanup and commit
|
||||
|
||||
- Removed the untracked generated `ios/` directory.
|
||||
- Restored `package.json` to `HEAD`; it was not staged or committed.
|
||||
- Commit: `2a09d56a9b5de24c1193a74eef807977a50fdacd`
|
||||
- Message: `feat(prayer): localize the 15-minute prayer experience`
|
||||
|
||||
## Staged and committed files
|
||||
|
||||
1. `Views/PrayerTimer.js`
|
||||
2. `components/PrayerTracker.js`
|
||||
3. `i18nMessages.js`
|
||||
|
||||
## Verification
|
||||
|
||||
- Staged-file allowlist check passed before commit; the staged set exactly matched the three files above.
|
||||
- `git diff --cached --check` passed.
|
||||
- `node --check Views/PrayerTimer.js` passed.
|
||||
- `node --check components/PrayerTracker.js` passed.
|
||||
- `node --check i18nMessages.js` passed.
|
||||
- Post-commit verification confirmed the commit contains exactly the three approved files, `ios/` is absent, and the staging area is empty.
|
||||
|
||||
## Remaining worktree state
|
||||
|
||||
Clean: `git status --short` produced no output. No push, branch change, package installation, native build, or service action was performed.
|
||||
@@ -0,0 +1,64 @@
|
||||
# EMI local translation production readiness — 2026-08-18
|
||||
|
||||
## Goal
|
||||
Read-only production-readiness discovery for EMI’s local MarianMT translation service and deployed backend integration.
|
||||
|
||||
## Scope and boundaries
|
||||
- **Project / hosts:** EMI; Mac mini `.102` as Factory/Paseo control host and EMI production server `.119` as the intended runtime host.
|
||||
- **Repository / runtime:** Mac-mini backend workspace `/Users/adolforeyna/Projects/EMI/EMI-Backend`; intended production checkout `/home/aeroreyna/EMI-Backend` and its Docker Compose backend/translation containers.
|
||||
- **Allowed:** explicit `auto-review` Paseo verifier; non-mutating source/runtime inspection and bounded non-persistent HTTP only where runtime access is available.
|
||||
- **Forbidden:** edits, commits, pushes, pulls, stashes/resets/cleans, image build/pull/rebuild, service/container restart/recreate/deploy, migrations, credential or configuration changes, and proxy/firewall changes.
|
||||
- **Approval gate:** human approval before any isolated worktree, source/configuration change, merge, deployment, restart, or container lifecycle action.
|
||||
|
||||
## Coordinator continuity
|
||||
- Feature session: `emi: local-translation-production-readiness` (Factory profile).
|
||||
- Existing production Paseo workspace recorded by project definition: `wks_fc39b6c9d2ebc9e0` on `.119`; it was not reachable from this Factory control session because the production daemon is loopback-only and direct SSH as `aeroreyna@emi-server` was denied.
|
||||
|
||||
## Paseo evidence
|
||||
|
||||
| Role | Agent ID | Workspace ID | Provider / mode | Terminal state |
|
||||
|---|---|---|---|---|
|
||||
| Read-only runtime verifier | `9b8ca9a7-193f-4162-bd3d-d9f861a518d9` | `wks_740a1fe0494b5cc9` (`EMI · Backend — Mac mini Checkout`) | `codex/gpt-5.6-terra`, explicitly `auto-review` | `idle` / completed |
|
||||
|
||||
The agent located/read the applicable parent workspace guidance before source inspection. Paseo inspection confirmed its available mode included `auto-review`, no pending permissions, and no worktree was created. No source or runtime mutation was requested or reported.
|
||||
|
||||
## Observed contract (static only — not production runtime verification)
|
||||
|
||||
The verifier’s read-only source inspection found:
|
||||
- Compose intends an internal `app` ↔ `translation` connection on `emi-network`; app upstream is `http://translation:8000`. Translation has no published host port.
|
||||
- The app defaults to `TRANSLATION_PROVIDER=openai`; local MarianMT is used only when the runtime provider is explicitly `marian`.
|
||||
- `GET /health` is implemented as `200 application/json` with `{"status":"ok","provider":"marianmt","loadedModels":[...]}`. This is a liveness/in-memory model-name signal only; it does not prove required-model cache availability, successful inference, or readiness.
|
||||
- `POST /translate` accepts `text`, `sourceLang`, and `targetLang`. Missing/invalid text or target and unsupported languages are intended to return `400`; unhandled translation failures are intended to return `502 {"status":"Translation failed"}`.
|
||||
- Models load lazily on first translation into `/models`; the app’s upstream timeout is 30 seconds.
|
||||
- Compose declares neither a container healthcheck nor CPU/memory limits.
|
||||
|
||||
## Runtime-verification result and blocker
|
||||
|
||||
The verifier attempted only read-only runtime-discovery commands (`docker compose ps --all`, filtered `docker ps`, and filtered `docker volume ls`) and found `docker: command not found`; `docker-compose`, `podman`, and `nerdctl` were also unavailable. Process inspection was restricted (`ps: operation not permitted`), and no listener on local ports 8000 or 3001 was observable.
|
||||
|
||||
Accordingly, it did **not** install tools, alter permissions, authenticate, enter containers, inspect caches, invoke a translation request, or induce a model download. The only completed evidence is the static contract above. The following production facts remain unverified: running container identity/network/upstream; actual provider value; app-to-translation DNS/TCP/HTTP; `/health` response from the deployed service; functional translation; first-download/cache behavior; live invalid/upstream-timeout behavior; current resource use; and deployed resource limits.
|
||||
|
||||
## Exact production-readiness acceptance criteria
|
||||
|
||||
Production readiness is not met until a read-only verifier with access to the actual `.119` Compose runtime records all of the following:
|
||||
|
||||
1. **Runtime identity and isolation:** exact app and translation container IDs/images, Compose project, Docker network membership, and non-secret app upstream mapping; translation is reachable only through the intended internal path unless explicitly approved otherwise.
|
||||
2. **Provider correctness:** runtime evidence that the app is configured to use `marian`, not the static default `openai`, and that its upstream resolves to the intended translation service.
|
||||
3. **Connectivity:** a non-mutating request from the running app container resolves `translation`, completes TCP/HTTP to port 8000, and receives the expected response within the configured bound.
|
||||
4. **Health/readiness semantics:** exact deployed `/health` status, headers, and body are captured; a readiness criterion explicitly proves every required model is locally available for inference without triggering a download. A liveness-only `200` is insufficient.
|
||||
5. **Functional translation:** one bounded, innocuous translation for each approved language direction succeeds through the app’s real translation path; response schema/text and elapsed time are recorded, with no user data persisted.
|
||||
6. **First-model/cache behavior:** cache volume/path, ownership, persistence across planned container recreation, and required model artifacts are evidenced. First-download latency, network dependency, disk impact, and failure behavior are measured in a controlled approved environment—not by deleting a production cache.
|
||||
7. **Errors and timeouts:** invalid request returns a documented non-5xx client error; upstream unavailable/timeout behavior is tested without stopping production (or in an approved equivalent environment) and returns the documented bounded error without crashing/retrying indefinitely; the app’s 30-second upstream bound is verified.
|
||||
8. **Resources:** deployed CPU/memory reservation/limit and current idle/translation peak CPU, RSS, disk/cache consumption are recorded; observed peaks stay below an owner-approved host budget with headroom. No configured resource limits is a blocker.
|
||||
9. **Operational controls:** Compose/service healthchecks, logs/metrics sufficient to distinguish model download, model load, inference failure, timeout, and resource exhaustion, plus an approved rollback procedure, are documented and independently checked.
|
||||
10. **Release integrity:** all implementation changes exist in one isolated worktree, pass declared checks, receive independent review, and obtain explicit human approval before merge/build/recreate/deploy.
|
||||
|
||||
## Proposed isolated-worktree implementation plan (not authorized or started)
|
||||
|
||||
1. Obtain a read-only production-runtime observability path (Paseo agent on `.119` or authorized Docker metadata/log/exec access) and complete acceptance items 1–8 without lifecycle changes.
|
||||
2. After human approval and protection/review of the dirty production Compose state, create one isolated backend worktree from the approved committed base, e.g. branch `factory/emi-local-translation-readiness`; do not use either dirty main checkout.
|
||||
3. Implement a non-downloading readiness endpoint/check that verifies configured required models are present and loadable; keep existing liveness semantics separate and document status/error contracts.
|
||||
4. Add Compose healthchecks and explicit, owner-approved CPU/memory constraints; make model-cache volume persistence, permissions, and prewarming strategy explicit.
|
||||
5. Add deterministic tests for provider selection, health/readiness distinction, validation errors, upstream timeout/error mapping, and cache-present/cache-absent behavior without external model downloads in ordinary CI.
|
||||
6. In an approved non-production environment, measure cold first-download, warm-cache translation, resource peaks, timeout behavior, and recovery; document production rollout and rollback steps.
|
||||
7. Dispatch an independent reviewer and verifier against that isolated worktree. Present exact diff, checks, measured evidence, deployment/recreate impact, and rollback plan for explicit human approval; only then may a named deployment executor act.
|
||||
@@ -0,0 +1,173 @@
|
||||
# EMI pre-commit decision review — 2026-08-18
|
||||
|
||||
Scope: read-only review of candidate changes in the two Mac mini (`.102`) repositories only. No commit, staging, pull, rebase, push, install, service action, or source edit was performed. Diff content was reviewed as data; this report intentionally contains no secret values.
|
||||
|
||||
## Task record
|
||||
|
||||
- Project: EMI.
|
||||
- Repositories reviewed: `~/Projects/EMI/expoApp` (branch `master`; remotes `gitea` and `origin`) and `~/Projects/EMI/EMI-Backend` (branch `codex/bible-verse-notes`; remote `gitea` only).
|
||||
- Acceptance criteria: identify commit-ready candidate sets, generated-file disposition, validation evidence, blockers, and the later server approval boundary.
|
||||
- Forbidden effects observed: none; all inspection commands were read-only.
|
||||
- Repository instructions: parent `~/Projects/EMI/AGENTS.md` and each repository's `Agent.md` were read. App instructions require explicit approval before a change requiring a new App Store build; backend instructions prefer Node 20 LTS and describe `npm test` as the only test command.
|
||||
|
||||
## expoApp
|
||||
|
||||
### Candidate scope
|
||||
|
||||
Tracked modifications:
|
||||
|
||||
- `Views/PrayerTimer.js`
|
||||
- `components/PrayerTracker.js`
|
||||
- `i18nMessages.js`
|
||||
- `package.json`
|
||||
|
||||
Untracked native output is limited by `git status` to 25 explicitly listed `ios/` files (Xcode project/workspace, application files, asset catalogs, Podfile/lockfile, and generated Expo settings). The ignored `ios/` tree also contains dependency output and five `.DS_Store` files.
|
||||
|
||||
The application change makes the prayer duration 15 minutes, localizes prayer-tracker/timer strings in all existing language blocks, localizes weekday rendering, and changes the native run scripts from Expo start targets to `expo run:android` and `expo run:ios`.
|
||||
|
||||
### Generated `ios/` decision
|
||||
|
||||
Include the 25 status-listed `ios/` source/configuration files only if the intent is to adopt and maintain the generated native iOS project alongside the new `expo run:ios` script. They are a coherent companion to that script change: omitting them leaves the new native-run workflow without its required project files.
|
||||
|
||||
Do not stage `ios/` recursively. Do not stage `ios/Pods/`, any ignored native dependency/build output, or any `.DS_Store` file. The status-listed project files should be staged explicitly, not by a broad directory add. The native project has not been built or opened during this read-only review, and the repository instruction requires explicit approval before a change that requires a new App Store build. Committing project sources alone is not an App Store build, but their intended native-build effect needs owner confirmation and native validation before this set is accepted as-is.
|
||||
|
||||
### Blocking findings
|
||||
|
||||
1. Native iOS project adoption is unconfirmed and unvalidated. The new `npm run ios` invokes `expo run:ios`, while its generated project and lockfile are untracked. Commit intent, an approved native-build validation scope, and successful native validation are missing.
|
||||
2. The only safe complete native staging set must be explicit; a recursive `ios/` add risks picking up later generated or ignored local material. `.DS_Store` is categorically excluded.
|
||||
|
||||
### Non-blocking findings
|
||||
|
||||
- The prayer/localization diff is internally scoped and all newly referenced translation keys exist in each existing language block.
|
||||
- `PrayerTracker` now passes the active `i18n.locale` to weekday formatting; supported locale values are normalized language codes.
|
||||
- `git diff --check` returned clean; `node --check` passed for all three modified JavaScript files; `package.json` parsed as valid JSON.
|
||||
- No app test, lint, typecheck, or build script exists in `package.json`; no local validation/report/log artifact was found.
|
||||
- A changed-diff credential-pattern scan found no private-key block or common credential assignment/token pattern. This is heuristic evidence only, not a secrets guarantee.
|
||||
|
||||
### Safe staging lists and commit split
|
||||
|
||||
Commit 1 — prayer experience and localization:
|
||||
|
||||
```text
|
||||
Views/PrayerTimer.js
|
||||
components/PrayerTracker.js
|
||||
i18nMessages.js
|
||||
```
|
||||
|
||||
Recommended message:
|
||||
|
||||
```text
|
||||
feat(prayer): localize the 15-minute prayer experience
|
||||
```
|
||||
|
||||
Commit 2 — only after confirmation that native iOS sources are intended and native validation is approved/passes:
|
||||
|
||||
```text
|
||||
package.json
|
||||
ios/.gitignore
|
||||
ios/.xcode.env
|
||||
ios/EMISocial.xcodeproj/project.pbxproj
|
||||
ios/EMISocial.xcodeproj/xcshareddata/xcschemes/EMISocial.xcscheme
|
||||
ios/EMISocial.xcworkspace/contents.xcworkspacedata
|
||||
ios/EMISocial/AppDelegate.h
|
||||
ios/EMISocial/AppDelegate.mm
|
||||
ios/EMISocial/EMISocial-Bridging-Header.h
|
||||
ios/EMISocial/EMISocial.entitlements
|
||||
ios/EMISocial/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
|
||||
ios/EMISocial/Images.xcassets/AppIcon.appiconset/Contents.json
|
||||
ios/EMISocial/Images.xcassets/Contents.json
|
||||
ios/EMISocial/Images.xcassets/SplashScreen.imageset/Contents.json
|
||||
ios/EMISocial/Images.xcassets/SplashScreen.imageset/image.png
|
||||
ios/EMISocial/Images.xcassets/SplashScreenBackground.imageset/Contents.json
|
||||
ios/EMISocial/Images.xcassets/SplashScreenBackground.imageset/image.png
|
||||
ios/EMISocial/Info.plist
|
||||
ios/EMISocial/PrivacyInfo.xcprivacy
|
||||
ios/EMISocial/SplashScreen.storyboard
|
||||
ios/EMISocial/Supporting/Expo.plist
|
||||
ios/EMISocial/main.m
|
||||
ios/EMISocial/noop-file.swift
|
||||
ios/Podfile
|
||||
ios/Podfile.lock
|
||||
ios/Podfile.properties.json
|
||||
```
|
||||
|
||||
Recommended message:
|
||||
|
||||
```text
|
||||
chore(ios): add Expo native project for local iOS runs
|
||||
```
|
||||
|
||||
Explicit exclusions:
|
||||
|
||||
```text
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
ios/Pods/
|
||||
ignored generated native dependency/build output
|
||||
```
|
||||
|
||||
### Commit-as-is recommendation
|
||||
|
||||
No. The prayer/localization subset is structurally suitable for its own commit, but the repository as currently combined includes unconfirmed, unvalidated generated native iOS output and a native-run workflow change.
|
||||
|
||||
## EMI-Backend
|
||||
|
||||
### Candidate scope
|
||||
|
||||
Tracked modifications:
|
||||
|
||||
- `config/cookiesOptions.js`
|
||||
- `config/corsOptions.js`
|
||||
- `index.js`
|
||||
|
||||
Untracked file:
|
||||
|
||||
- `.DS_Store` — exclude; do not stage or commit.
|
||||
|
||||
The candidate broadens local-cookie detection to every IPv4 address in the private `192.168.*.*` range, changes CORS from an array to a callback that admits any HTTP origin in that same range (and any localhost loopback port), adds selected local Expo development origins, and binds the server to `HOST` or all interfaces by default.
|
||||
|
||||
### Blocking finding
|
||||
|
||||
1. Do not commit this backend set as-is. Credentials-enabled CORS is enabled for any HTTP origin on the entire `192.168.*.*` private range regardless of environment, and cookie handling treats a matching request Origin or Host as local and therefore permits non-secure, `SameSite=Lax` cookies. These are production-relevant security-policy changes, not a bounded local-development setting. The code does not gate the broad LAN rules to a non-production environment, restrict them to approved development origins, or establish trusted-proxy/host-header handling. Security review and an explicitly approved environment-specific policy are required before staging these three files.
|
||||
|
||||
The default all-interface bind heightens the need for that review: whether it is necessary, and its firewall/proxy/deployment implications, have not been validated in this task.
|
||||
|
||||
### Non-blocking findings
|
||||
|
||||
- `git diff --check` returned clean; `node --check` passed for all three modified JavaScript files; `package.json` parsed as valid JSON.
|
||||
- `package.json` declares `npm test` as `npx mocha test/auth.test.js`; it has no lint, typecheck, or build script. No local validation/report/log artifact was found.
|
||||
- Existing validation evidence supplied for this review: under Node 22, `npm test` failed because of legacy dependency incompatibility. Under Node 20, the two auth tests passed but the process did not exit because it retained a listener. Source inspection confirms the test starts a listener and closes that listener in its `after` hook; importing the application can still retain other handles. This test is integration/data dependent and is not clean CI evidence until it exits deterministically.
|
||||
- A changed-diff credential-pattern scan found no private-key block or common credential assignment/token pattern. This is heuristic evidence only, not a secrets guarantee.
|
||||
|
||||
### Safe staging list and commit split
|
||||
|
||||
There is no safe staging list for the current backend candidate until the blocking security-policy decision is resolved. Keep all three modified files unstaged and exclude `.DS_Store`.
|
||||
|
||||
After a reviewed implementation supplies a production-safe, environment-gated policy and it is validated in an isolated worktree, separate commits should be:
|
||||
|
||||
```text
|
||||
fix(dev): scope LAN cookie and CORS support to approved development origins
|
||||
```
|
||||
|
||||
for the cookie/CORS policy files, and:
|
||||
|
||||
```text
|
||||
fix(server): make backend bind host configurable
|
||||
```
|
||||
|
||||
for `index.js`, only if the deployment/network review confirms that bind behavior is required.
|
||||
|
||||
### Commit-as-is recommendation
|
||||
|
||||
No.
|
||||
|
||||
## Later EMI-server checkout update/rebase/push — exact human approval boundary
|
||||
|
||||
The requested Mac mini commits do not authorize any action on the EMI server checkout. A separate, explicit human approval is required after the Mac mini commits are reviewed and identified by their exact commit IDs, and before any server-side update, fetch, pull, rebase, conflict resolution, push, service action, image build, container recreation, restart, or deployment.
|
||||
|
||||
That approval must name all of the following: the server checkout and target branch; the approved remote and exact Mac mini commit IDs; whether a rebase is authorized; the allowed update/push commands; the named executor; conflict policy (stop and report, no automatic resolution); required pre/post checks; and the rollback owner/procedure. It must also follow a current read-only server audit confirming the checkout-to-running-container relationship, service/deployment procedure, health endpoint, rollback path, and disposition of the server's existing local modifications and untracked update script. The known server checkout is dirty, so no rebase/push action may be inferred from a Mac mini commit.
|
||||
|
||||
## Overall decision
|
||||
|
||||
- `expoApp`: NO — do not commit the combined repository state as-is; the prayer/localization subset may proceed only as its separate commit, while the native iOS set awaits explicit intent/validation.
|
||||
- `EMI-Backend`: NO — do not commit as-is; security-policy blockers require review and correction before staging.
|
||||
@@ -0,0 +1,46 @@
|
||||
# EMI production perimeter audit — 2026-08-18
|
||||
|
||||
## Scope and verdict
|
||||
|
||||
Read-only perimeter follow-up on `aeroreyna@192.168.68.119` (`emiserver`). Inspected only non-secret listener/firewall service facts, Docker published-port/network/container metadata, detected proxy metadata, DNS, and unauthenticated HTTP `GET`, `HEAD`, and `OPTIONS` behavior. No authentication, form submission, secret/environment/configuration reading, dirty Compose diff inspection, source modification, service/container/proxy/firewall change, or Mac-mini backend WIP interaction occurred.
|
||||
|
||||
**Verdict: perimeter is not production-clean.** Authentication controls prevent unauthenticated root access to the backend, and the tested origins were not granted browser CORS read access. However, the EMI backend remains directly published on every IPv4 and IPv6 interface at TCP 3001; the effective UFW rule policy could not be read without elevation; and the intended public frontend/API origin and proxy path remain unproven. Do not infer a proxy-only or firewall-restricted production posture.
|
||||
|
||||
## Verified exposure controls
|
||||
|
||||
- `ufw.service` is enabled and active (exited). This verifies that UFW is installed/enabled, not which allow/deny rules are effective; unprivileged `ufw status`, `iptables`, and `nft` rule reads were denied and no elevation was attempted.
|
||||
- The backend container is `emi-backend-app-1` (Compose project `emi-backend`, service `app`) with restart policy `always`.
|
||||
- Direct, unauthenticated backend root requests at `http://127.0.0.1:3001/` returned `401 Unauthorized` for both `GET` and `HEAD`; neither response carried a redirect location. The `HEAD` probe's status/header result is valid, although curl reported a transfer-length warning after the server advertised a body.
|
||||
- The same direct backend preflight (`OPTIONS`, `Origin: https://emmint.com`, `Access-Control-Request-Method: GET`) returned `204 No Content`, `Vary: Origin, Access-Control-Request-Headers`, `Access-Control-Allow-Credentials: true`, and `Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE`.
|
||||
- Direct preflights for `https://emmint.com`, `https://www.emmint.com`, `https://florida.emmint.com`, `https://api.emmint.com`, and `https://invalid.example` returned no `Access-Control-Allow-Origin`. Thus none of those tested browser origins was granted cross-origin read access by the direct backend response.
|
||||
- `api.emmint.com` resolved to `76.108.184.110`. Its unauthenticated HTTPS root behavior was `302 Found` with `Location: /login` for both `GET` and `HEAD`; its preflight was `204 No Content`. The public responses identify an upstream Caddy (`Via: 1.1 Caddy`) and Express application; no `Access-Control-Allow-Origin` was observed on the tested public preflight.
|
||||
|
||||
## Listener, container, network, and proxy facts
|
||||
|
||||
- `emi-backend-app-1` publishes `3001/tcp` as `0.0.0.0:3001` and `[::]:3001`, confirmed both by Docker and the host listener table. It is not loopback-only.
|
||||
- The backend is attached to Docker bridge `emi-backend_default`, whose metadata is `internal=false`, `attachable=false`, and IPv6 disabled. The container has a read-write bind mount from `/home/aeroreyna/EMI-Backend` to `/app`, a read-write node-modules volume, and `ReadonlyRootfs=false`.
|
||||
- Other all-interface TCP listeners observed on `.119` were 22, 222, 2283, 3000, 8085, 9000, 9001, 9443, and 18789–18790. Docker metadata attributes these to Immich, Gitea, Nextcloud, Authentik, Portainer Agent, and OpenClaw as applicable. This audit makes no claim that each is reachable outside the host/LAN because effective firewall and upstream NAT policy were not readable.
|
||||
- The Paseo daemon listens only on `127.0.0.1:6767`; an OpenCode process listens only on `127.0.0.1:45243`.
|
||||
- No Caddy, Nginx, Traefik, HAProxy, or Apache systemd unit was found. Apache processes were present, but no port 80/443 listener was present in the host listener table. No Docker reverse-proxy container was present. The Caddy observed at public `api.emmint.com` is therefore not verified as a local `.119` service/container; its upstream placement and forwarding policy remain unresolved.
|
||||
- Documented frontend hostnames resolve away from the `.119` LAN address: `emmint.com` and `www.emmint.com` to `198.175.150.40`, and `florida.emmint.com` to `35.164.64.246`. Their unauthenticated HTTPS root behavior was consistent with external WordPress/LiteSpeed (`emmint.com`: `GET`/`HEAD` 301 to `www`; `OPTIONS` 200), `www.emmint.com` (`GET`/`HEAD`/`OPTIONS` 200), and an external Caddy-backed site for `florida.emmint.com` (`GET`/`HEAD`/`OPTIONS` 200). They are not verified `.119` reverse-proxy frontends.
|
||||
|
||||
## Unresolved exposure and CORS findings
|
||||
|
||||
1. **Direct API exposure remains the primary perimeter finding.** TCP 3001 is published to all host interfaces and the Docker network is non-internal. UFW's active rule set and the router/NAT policy were intentionally not elevated/read, so this audit cannot establish whether LAN or Internet clients can reach the direct port.
|
||||
2. **Public API proxy topology is unresolved.** `api.emmint.com` presents Caddy/Express behavior and redirects unauthenticated `GET`/`HEAD` to `/login`, but its public address does not identify the local `.119` LAN endpoint and no local Caddy listener/container was found. It is not proven whether the proxy protects all API paths, which upstream it uses, or whether direct 3001 bypasses it.
|
||||
3. **CORS is deny-by-observation, not intent-verified.** Every tested direct preflight, including `https://emmint.com`, lacked `Access-Control-Allow-Origin`; the tested public API preflight also lacked it. This blocks browser cross-origin reads for those requests, but it does not establish the intended credentialed frontend origin or prove that a production frontend can call the API successfully. `Access-Control-Allow-Credentials: true` is present without a tested allowed origin.
|
||||
4. **Published public websites are not evidence of an API frontend.** The documented `emmint.com`, `www.emmint.com`, and `florida.emmint.com` hostnames resolve to third-party/external web endpoints rather than verified `.119` proxy listeners. No documented production frontend hostname was shown to be an allowed CORS origin for this API.
|
||||
|
||||
## Context received after audit
|
||||
|
||||
**Authoritative infrastructure context:** `api.emmint.com` is served by Caddy on FamReynaServer `.110`, which routes to the EMI backend on `.119`. That shared Caddy/Authentik/DNS/firewall layer is outside the EMI project's ownership. This report's observation that the proxy placement was unresolved is therefore superseded as a project-boundary question: the route may be documented and health-verified by EMI work, but must not be modified by an EMI task. Any proxy remediation needs a separately scoped shared-infrastructure task and explicit approval.
|
||||
|
||||
## Minimal remediation options — require explicit human approval
|
||||
|
||||
Choose only after confirming the intended API hostname, frontend origin(s), required credential mode, and LAN/Internet exposure policy:
|
||||
|
||||
1. **Proxy-only API:** bind Docker `3001` to loopback only (or remove the host publication), then explicitly proxy the required HTTPS API hostname through the approved reverse proxy. Review the dirty Compose change in an isolated worktree before any lifecycle action.
|
||||
2. **Firewall-restricted direct API:** retain the published port only if necessary, and approve explicit UFW/router rules limiting 3001 to the named trusted proxy/LAN sources. Verify from an authorized external and LAN vantage point after the approved change.
|
||||
3. **Explicit CORS allowlist:** configure only the confirmed HTTPS frontend origin(s), preserve `Vary: Origin`, and test allowed and denied preflights plus an unauthenticated request through the real proxy. Do not use a wildcard origin with credentialed requests.
|
||||
|
||||
Any option requires separate approval for configuration review/change, rebuild/recreate/restart, deployment, or firewall/proxy modification. The Mac-mini backend CORS WIP remains untouched and uncommitted.
|
||||
@@ -0,0 +1,54 @@
|
||||
# EMI production security audit — 2026-08-18
|
||||
|
||||
## Scope, safety boundary, and verdict
|
||||
|
||||
Read-only audit of `aeroreyna@192.168.68.119`, `~/EMI-Backend`, and the running `emi-backend-app-1` container. No services, containers, checkout files, Git state, firewall/proxy configuration, credentials, environment values, compose diff content, or Mac-mini WIP were changed. No secret values were read or recorded.
|
||||
|
||||
**Verdict: conditionally acceptable to remain running, but not production-security clean.** The live application source files that control the observed server behavior match the `.119` checkout's `HEAD` commit `92320c9c8993308172282d6ac4437e19c752650a` (`Add monthly MongoDB backup script`, 2026-05-29). The server should not be recreated or redeployed without human review because its local compose file is modified relative to that commit.
|
||||
|
||||
The main `.119` server may remain on its current deployed commit while the separate Mac-mini backend WIP remains uncommitted. This audit made no change to that WIP. The conclusion is limited to keeping the existing `.119` container running; it is not approval to rebuild, recreate, deploy, merge, or commit anything.
|
||||
|
||||
## Evidence and runtime identity
|
||||
|
||||
- Checkout `HEAD`: `92320c9c8993308172282d6ac4437e19c752650a`.
|
||||
- Checkout status: one tracked modified file and one untracked file. The tracked `docker-compose.yml` differs from `HEAD`; its diff content was neither read nor displayed.
|
||||
- Running container: `emi-backend-app-1`; image `emi-backend-app`; image ID `sha256:0f245f652484e3704723cb93717b9ca867c38e74d8eb05eab7b123fa638eef44`.
|
||||
- Image/container creation: 2026-05-29; current container start: 2026-08-17. Restart policy: `always`.
|
||||
- The container bind-mounts `/home/aeroreyna/EMI-Backend` read-write at `/app`. It therefore executes checkout-mounted application files rather than an isolated immutable copy of those files.
|
||||
- SHA-256 comparisons (without exposing file content) show the running `/app/index.js`, `/app/package.json`, `/app/config/corsOptions.js`, and `/app/config/cookiesOptions.js` each match the corresponding `HEAD` file. The checkout versions of those same files and `Dockerfile` also match `HEAD`.
|
||||
|
||||
## Verified-good controls
|
||||
|
||||
- The root request on `127.0.0.1:3001` returned `401 Unauthorized`, rather than an unauthenticated success response. No `Location` redirect header was observed.
|
||||
- Preflight requests returned `204 No Content`, with `Vary: Origin, Access-Control-Request-Headers`; ordinary requests returned `Vary: Origin`. This prevents a shared cache from treating all origin variants as identical.
|
||||
- Both tested origins (`https://emmint.com` and an intentionally invalid external origin) received no `Access-Control-Allow-Origin` header. In a browser, neither tested origin is granted cross-origin read access by that response.
|
||||
- The server returned `Access-Control-Allow-Credentials: true`, so the observed CORS behavior is configured for credentialed requests only when an origin is explicitly permitted.
|
||||
- The committed cookie-options source contains an `HttpOnly` control marker and that file is byte-identical in the running container. This establishes that the committed runtime file includes that control, not that every authentication flow actually emits a correctly flagged cookie.
|
||||
|
||||
## Risks and findings
|
||||
|
||||
1. **Public API port exposure — high-priority review.** Docker publishes `3001/tcp` on `0.0.0.0:3001` and `[::]:3001`, not loopback only. The container is on a non-internal Docker bridge (`emi-backend_default`, `internal=false`). Network/firewall enforcement outside Docker was not changed or assumed. If the intended posture is proxy-only API access, this is broader exposure than intended.
|
||||
|
||||
2. **Mutable production code path — high-priority operational risk.** The production container bind-mounts the checkout read-write at `/app`, and the container root filesystem is not read-only. A checkout edit can affect the running process or subsequent restarts outside an immutable-image release boundary.
|
||||
|
||||
3. **Dirty compose checkout — release-integrity blocker.** The only tracked modification is represented by the dirty `docker-compose.yml` check; its contents were deliberately not inspected. Current process-critical application files match `HEAD`, but a future recreate/restart through Compose may use uncommitted configuration. Do not treat a recreate as reproducing committed production source until reviewed in an isolated worktree.
|
||||
|
||||
4. **CORS intent is not fully proven.** Both tested origins lacked `Access-Control-Allow-Origin`, including `https://emmint.com`. This is safe against those specific browser origins, but it may also mean the intended production frontend origin was not tested, is unavailable under that exact hostname, or is misconfigured. The audit cannot claim that the intended frontend works, nor that every unwanted origin is rejected.
|
||||
|
||||
5. **Cookie flags are not runtime-verified.** No non-mutating endpoint in this audit emitted a `Set-Cookie` header, so `Secure`, `SameSite`, domain/path scope, and actual issuance behavior remain unverified. No authentication request was made.
|
||||
|
||||
## Unknowns
|
||||
|
||||
- Which exact public frontend origins are intended and whether each should be allowed with credentials.
|
||||
- The effective firewall, upstream reverse-proxy, TLS termination, and Internet/LAN reachability policy for published port 3001.
|
||||
- Whether the untracked file or modified compose file affects a future Compose lifecycle action; neither content was read.
|
||||
- The running Node process's precise listener address inside the container, health endpoint, authentication-cookie issuance path, and behavior through the public proxy/TLS route.
|
||||
- Whether image dependencies in `/app/node_modules` correspond to the committed lockfile; the named volume was not inspected.
|
||||
|
||||
## Required human approval before remediation
|
||||
|
||||
Any remediation requires explicit owner approval before: reviewing the dirty compose diff; creating an isolated worktree; modifying Docker/Compose, CORS, cookies, listener binding, reverse proxy, firewall, or image build; rebuilding/recreating/restarting the container; committing/merging; or deploying. The Mac-mini backend WIP must remain uncommitted and untouched unless separately approved.
|
||||
|
||||
## Next recommended task
|
||||
|
||||
Approved read-only follow-up: identify the intended EMI public frontend origin(s) and probe only their localhost-proxied, non-authenticated `GET`/`OPTIONS` responses for CORS headers; then separately inventory the reverse-proxy and firewall exposure without changing either.
|
||||
@@ -0,0 +1,29 @@
|
||||
# EMI production vs latest code — 2026-08-18
|
||||
|
||||
Read-only comparison. No fetch/pull, checkout, container/service change, or dirty-diff content inspection was performed.
|
||||
|
||||
## Committed-code relationship
|
||||
|
||||
- Mac mini `~/Projects/EMI/EMI-Backend`: `codex/bible-verse-notes` at `c257fd1ec762e009fb0764571561010f306ee3ce` (`Add local MarianMT translation service`); upstream: none. Remote: `gitea` (`https://git.reynafamily.com/adolforeyna/EMI-Backend.git`), fetch refspec `+refs/heads/*:refs/remotes/gitea/*`.
|
||||
- Production checkout `aeroreyna@192.168.68.119:~/EMI-Backend`: `master` at `92320c9c8993308172282d6ac4437e19c752650a` (`Add monthly MongoDB backup script`); upstream: `origin/master`. Remote: `origin` (`http://192.168.68.119:3000/adolforeyna/EMI-Backend.git`), fetch refspec `+refs/heads/*:refs/remotes/origin/*`.
|
||||
- Both commits are one-child descendants of common ancestor `65a4178e2b1491117ddb9e1b8a5ed7b53c4b5be3`; neither checkout contains the other tip object. Therefore committed code has diverged, not a simple ahead/behind relationship.
|
||||
- Gitea read-only advertised `master` is `65a4178e…`; it does not advertise the Mac-mini tip or production tip. Thus neither current checkout tip is established as a remotely published latest branch tip.
|
||||
- From the common ancestor, Mac-mini committed changes are: modified `.gitignore`, `README.md`, `docker-compose.yml`, `utils/chatTranslation.js`; added `translation-service/.dockerignore`, `translation-service/Dockerfile`, `translation-service/requirements.txt`, `translation-service/server.py`.
|
||||
- From the common ancestor, production committed changes are: modified `.gitignore`; added `scripts/monthlyMongoBackup.sh`. The two committed `.gitignore` blobs differ. Production `docker-compose.yml` is unchanged in its committed tree; Mac-mini’s committed tree modifies it.
|
||||
|
||||
## Local WIP
|
||||
|
||||
- Mac mini has no staged changes; it has three unstaged tracked changes (`config/cookiesOptions.js`, `config/corsOptions.js`, `index.js`) and one untracked `.DS_Store`. This WIP is uncommitted and is separate from `c257fd1…`.
|
||||
- Production checkout also has uncommitted state: unstaged `docker-compose.yml` and untracked `update.sh`; contents were intentionally not inspected. This is not part of production’s committed-code comparison.
|
||||
|
||||
## Runtime/container relationship
|
||||
|
||||
- The running container is `emi-backend-app-1` (`e9355e13bf21…`), image `emi-backend-app` / `sha256:0f245f65…`, running since `2026-08-17T21:20:23Z`; command is `node index.js` with workdir `/app`.
|
||||
- `/app` is a read-write bind mount of `/home/aeroreyna/EMI-Backend`; `/app/node_modules` is separately volume-mounted. Therefore the running application files are served directly from the production checkout rather than from an immutable image copy.
|
||||
- Runtime and checkout SHA-256 values match for `index.js`, `config/cookiesOptions.js`, and `config/corsOptions.js` (including the currently uncommitted checkout state). Git is not installed in the container, so an in-container Git revision could not be read; the bind mount plus matching file hashes establish the relevant application-file match.
|
||||
|
||||
## Verdict
|
||||
|
||||
Production is **diverged** from the latest available Mac-mini committed code, with additional uncommitted WIP on both checkouts; it is not safe to call production simply behind or ahead.
|
||||
|
||||
Minimal next decision required before any server update: select one explicit approved release commit/branch and decide how the production checkout’s dirty `docker-compose.yml` must be preserved or reconciled.
|
||||
@@ -0,0 +1,66 @@
|
||||
# EMI read-only discovery — 2026-08-18
|
||||
|
||||
Scope: manifest/git/runtime/Paseo inspection only. No dependency installation, source/configuration changes, service actions, or secrets access.
|
||||
|
||||
## Verified mapping
|
||||
|
||||
| Host | Checkout | Git head / branch | Registered Paseo workspace |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/EMI/expoApp` | `4e26cc3` / `master` | `wks_f013c2c89410419b` — `EMI · Expo App — Main Checkout` |
|
||||
| Mac mini `.102` | `~/Projects/EMI/website` | `d329c0c` / `master` | `wks_baf03fce83b6b3b7` — `EMI · Website — Main Checkout` |
|
||||
| Mac mini `.102` | `~/Projects/EMI/EMI-Backend` | `c257fd1` / `codex/bible-verse-notes` | `wks_740a1fe0494b5cc9` — `EMI · Backend — Mac mini Checkout` |
|
||||
| EMI server `.119` | `~/EMI-Backend` (`/home/aeroreyna/EMI-Backend`) | `92320c9` / `master` | `wks_fc39b6c9d2ebc9e0` — `EMI · Backend Production Checkout` |
|
||||
|
||||
All four are registered as local/main-checkout workspaces, not isolated worktrees. No `paseo.json` exists in any inspected root. The Mac mini daemon is running/reachable on loopback; providers reported available: Codex, OpenCode, pi, hermes. On `.119`, the daemon is running/reachable on `127.0.0.1:6767`; available providers are Codex, OpenCode, and pi (Claude/copilot unavailable).
|
||||
|
||||
## Declared candidate commands (not executed)
|
||||
|
||||
Confidence means that the command is explicitly declared by the manifest, not that it is safe, hermetic, or passing.
|
||||
|
||||
| Repository | Candidate command | Purpose | Confidence |
|
||||
|---|---|---|---|
|
||||
| expoApp | `npm start` | Expo dev server | High |
|
||||
| expoApp | `npm run web` | Expo web dev server | High |
|
||||
| expoApp | `npm run ios` / `npm run android` | native development/run | High |
|
||||
| expoApp | No manifest lint, typecheck, test, or production-build script | — | High absence finding |
|
||||
| website | `npm run lint` | Vue CLI lint; command sets `NODE_OPTIONS=--openssl-legacy-provider` | High |
|
||||
| website | `npm run build` | Vue CLI production build; same Node option | High |
|
||||
| website | `npm run serve` | development server on port 8080 | High |
|
||||
| website | No manifest test or typecheck script | — | High absence finding |
|
||||
| Mac mini backend | `npm run dev` | `node --watch index.js` development process | High |
|
||||
| Mac mini backend | `npm start` | `node index.js` | High |
|
||||
| Mac mini backend | `npm test` | declared `npx mocha test/auth.test.js` | High command / medium execution confidence: environment and test data were not examined |
|
||||
| Mac mini backend | No manifest lint, typecheck, or build script | — | High absence finding |
|
||||
| `.119` backend | same `npm run dev`, `npm start`, and `npm test` declarations | source checkout commands only | High declaration / low direct-host execution confidence: non-login SSH PATH has no `node`/`npm`; runtime is containerized |
|
||||
| `.119` runtime | `curl --head --max-time 5 http://127.0.0.1:3001/` | reachability probe, not authenticated API health | High; executed: HTTP 302 to `/login` |
|
||||
|
||||
Each Node repository has `package-lock.json`; no yarn/pnpm lockfile was found. No `tsconfig.json` or `jsconfig.json` was found in any root, so no typecheck command is evidenced. The backend has `docker-compose.yml` and `test/auth.test.js`; the local app and website have no compose manifest.
|
||||
|
||||
## Local-change protection
|
||||
|
||||
- expoApp is dirty: modified `Views/PrayerTimer.js`, `components/PrayerTracker.js`, `i18nMessages.js`, `package.json`; untracked `ios/`. Remotes: `gitea`, `origin`.
|
||||
- website is clean. Remote: `origin`.
|
||||
- Mac mini backend is dirty: modified `config/cookiesOptions.js`, `config/corsOptions.js`, `index.js`; untracked `.DS_Store`. Remote: `gitea` only (no `origin`).
|
||||
- `.119` backend is dirty: modified `docker-compose.yml`; untracked `update.sh`. Remote: `origin`.
|
||||
|
||||
Do not create a worktree from, reset, stash, clean, or dispatch an editing agent into any dirty checkout until the owner identifies and protects those changes. The existing workspaces point directly at those checkouts.
|
||||
|
||||
## `.119` runtime, service, and deployment facts
|
||||
|
||||
- Docker is the active system service. Container `emi-backend-app-1` (image `emi-backend-app`) has been up about five hours and publishes `0.0.0.0:3001` and `[::]:3001` to container port 3001.
|
||||
- Host port 3001 is listening publicly on IPv4 and IPv6. The root probe returned `302 Found`, Express-powered, redirecting to `/login`; this confirms listener/reverse-route behavior only, not application health, authentication, dependencies, or database connectivity.
|
||||
- `node index.js` is running in the backend container. The checkout's compose file exists, but it was not read because it is locally modified and may contain deployment-sensitive configuration.
|
||||
- A user-managed Paseo daemon and supervisor are running. The CLI works after placing the discovered NVM Node path on `PATH`; its initial non-login SSH invocation failed only because that PATH was absent.
|
||||
- Unknown: authoritative deployment/update procedure; relation of `/home/aeroreyna/EMI-Backend` to the running container (bind mount versus image build); compose project/working directory; image provenance; rollback procedure; authenticated/API health endpoint; database dependency health; expected Node version; and whether untracked `update.sh` is the intended release mechanism.
|
||||
|
||||
## Human review required before `paseo.json` or worktree/agent setup
|
||||
|
||||
1. Confirm ownership/disposition of every listed local modification and untracked path, especially `.119` `docker-compose.yml` and `update.sh`.
|
||||
2. Select one repository and bounded goal; main-checkout workspaces are not writable task targets. Approve an isolated worktree location and branch policy for that repository.
|
||||
3. Review the repository-specific command contract rather than inventing missing lint/typecheck/test/build steps; decide whether existing commands may access external services or mutate data.
|
||||
4. For `.119`, verify the deployment source-to-container relationship, named deployment executor, health endpoint, rollback procedure, and a separately approved production boundary before any agent/worktree or `paseo.json` work.
|
||||
5. Approve provider choice and required permissions; no provider/workspace/agent state was changed in this lane.
|
||||
|
||||
## Proposed next bounded task
|
||||
|
||||
Human-approved, read-only backend release-path audit on `.119`: inspect only non-secret Docker/compose metadata and container mount/image metadata to establish checkout-to-container provenance, deployment command, health endpoint, and rollback evidence; write one update to this record and make no runtime changes.
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
project_key: emi
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-17
|
||||
---
|
||||
|
||||
# EMI — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
EMI is the cross-server ministry application and web/services collection: mobile/client work, website work, backend/API operations, ministry integrations, and the related human approval/deployment process.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host | Repository / service | Paseo-project role | Status |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/EMI/expoApp` | `EMI · Expo App` | Registered local workspace `wks_f013c2c89410419b`; local changes exist |
|
||||
| Mac mini `.102` | `~/Projects/EMI/website` | `EMI · Website` | Registered local workspace `wks_baf03fce83b6b3b7` |
|
||||
| Mac mini `.102` | `~/Projects/EMI/EMI-Backend` | `EMI · Backend (Mac mini)` for local/reproduction work | Registered local workspace `wks_740a1fe0494b5cc9`; local changes exist and no `origin` is configured |
|
||||
| EMI server `.119` | `~/EMI-Backend`, production API documented at `:3001` | `EMI · Backend Production` | Registered local workspace `wks_fc39b6c9d2ebc9e0`; daemon healthy on loopback; OpenCode detected; runtime, health command, deployment procedure, and Ollama Cloud provider setup remain to be discovered |
|
||||
|
||||
The parent `~/Projects/EMI` directory is a collection, not a source-changing Paseo project.
|
||||
|
||||
## External infrastructure boundary
|
||||
|
||||
- `api.emmint.com` is routed by the **FamReynaServer `.110` Caddy** instance to the EMI backend service on `.119`.
|
||||
- This EMI project may document the dependency and verify its observed behavior, but it does **not** own or modify the FamReynaServer Caddy route, Authentik, DNS, firewall, or shared reverse-proxy policy.
|
||||
- Any Caddy/proxy change belongs to the shared FamReyna infrastructure owner and requires a separately scoped, explicitly approved infrastructure task. EMI release work must treat that route as an external dependency and coordinate through evidence, not mutate it.
|
||||
|
||||
## Personas
|
||||
|
||||
- Planner: read-only repo/service discovery and task plan.
|
||||
- Expo / web / backend implementer: isolated worktree only.
|
||||
- Verifier: repo-specific scripts and integration evidence.
|
||||
- Reviewer: independent diff, security, API/migration, and scope review.
|
||||
- Release steward: prepare rollout/rollback evidence.
|
||||
- Deployment executor: one named, explicitly approved production action only.
|
||||
- Health monitor: read-only, change-only reporting.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Preserve existing local modifications before creating worktrees.
|
||||
- No merge, deploy, restart, credential change, or public publishing without explicit human approval.
|
||||
- Do not dispatch production backend tasks until `.119` checkout path, service manager, health command, and rollback procedure are verified.
|
||||
- A cross-server change has separate Mac mini and `.119` workspaces; it is never one shared workspace.
|
||||
|
||||
## Active factory coordination
|
||||
|
||||
- **Feature / incident:** production reconciliation and release-branch convergence — **completed through push, then deployed manually by explicit approval**.
|
||||
- **Coordinator session:** Factory profile session `20260818_102513_1346d3`, titled `emi: production reconciliation` and pinned for continuity. It exposed a follow-through gap: its interactive process exited after worker dispatch. The factory policy now requires interactive/resumable dispatch-and-follow-through, explicit agent IDs, and terminal-state monitoring.
|
||||
- **Reconciled repository revision:** production `master` and `origin/master` are `4c1afea` (`chore(prod): preserve production compose settings`), following rebased translation commit `c257fd1` and backup-script commit `44988df`.
|
||||
- **Deployment:** app and translation Compose services were rebuilt/recreated from `4c1afea`; a pre-update rollback image is retained as `emi-backend-app:pre-4c1afea-20260818T190206Z`. No Caddy, Authentik, DNS, or firewall changes were made.
|
||||
- **Next active feature:** `emi: local translation production readiness`. **Execution owner: factory profile only.** The default/personal Hermes conversation may relay your instructions and report evidence, but it must not perform direct repository, server, Docker, Git, or Paseo actions for this project. Treat the current MarianMT service as WIP until its internal network path, health/readiness, functional translations, model-cache behavior, failure handling, and resource limits are verified.
|
||||
|
||||
## Factory readiness next actions
|
||||
|
||||
1. Read-only discovery of each Mac mini repository's scripts, tests, build commands, and current worktree state.
|
||||
2. Read-only discovery on `.119` of the deployed checkout, runtime, service manager, health endpoint, and release procedure.
|
||||
3. Register repo-specific local Paseo workspaces only after discovery review.
|
||||
4. Add repo-specific `paseo.json` contracts; do not copy a generic template.
|
||||
|
||||
## Related records
|
||||
|
||||
- `emi-read-only-discovery-2026-08-18.md` — completed first factory experiment; commands and release-path unknowns
|
||||
- `../paseo_software_factory_working_model_2026-08-17.md`
|
||||
- `../latin_america_emi_collaboration_2026.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
project_key: family-voice
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-17
|
||||
---
|
||||
|
||||
# Family Voice — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
Family Voice covers the privacy-first local voice-context and speaker-identification prototype, with future device integration only after offline evaluation and explicit consent decisions.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host / target | Repository / service | Paseo-project role | Status |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/voice-speaker-id` | `Family Voice · Speaker ID` | Registered local workspace `wks_42151868896725e9` on `main`; offline CLI-only prototype |
|
||||
| ESP32 / iPhone devices | audio input sources | Project assets, not Paseo hosts | No always-listening deployment is approved |
|
||||
|
||||
## Personas
|
||||
|
||||
- Privacy planner: evaluates scope, consent, retention, and data boundaries.
|
||||
- ML experimenter: isolated code work without raw-audio export.
|
||||
- Evaluation verifier: runs reproducible offline scoring/evaluation only.
|
||||
- Privacy/security reviewer: checks data handling, authorization claims, and accidental cloud transmission.
|
||||
- Device integration planner: design-only until explicit device approval.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Cached clips are never treated as approved enrollment data by filename alone.
|
||||
- Do not upload raw audio, commit recordings/embeddings, create a listener, modify firmware, or enable always-listening capture without explicit approval.
|
||||
- Speaker recognition must never be the sole authority for high-impact actions.
|
||||
|
||||
## Factory readiness next actions
|
||||
|
||||
1. Confirm repository checks and ignored-data boundaries.
|
||||
2. Register the local repository workspace.
|
||||
3. Define an evaluation-only Paseo contract.
|
||||
4. Run no automated collection/deployment schedule until consent, retention, and calibration decisions are documented.
|
||||
|
||||
## Related records
|
||||
|
||||
- `../family_voice_context_and_speaker_id_2026.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,34 @@
|
||||
flowchart LR
|
||||
classDef confirmed fill:#123d2d,stroke:#34d399,color:#e2e8f0,stroke-width:2px;
|
||||
classDef inferred fill:#46351a,stroke:#fbbf24,color:#fef3c7,stroke-width:2px,stroke-dasharray: 6 4;
|
||||
classDef unknown fill:#1e293b,stroke:#94a3b8,color:#e2e8f0,stroke-width:2px,stroke-dasharray: 2 4;
|
||||
classDef blocked fill:#3f1d2b,stroke:#fb7185,color:#ffe4e6,stroke-width:2px;
|
||||
|
||||
subgraph Device[Candidate Tactility board]
|
||||
PV[PipecatVoice external ELF<br/>16 kHz PCM + protocol-v1]:::confirmed
|
||||
RB[ReynaBot external ELF<br/>separate legacy endpoint]:::inferred
|
||||
CFG[Persisted config.json<br/>may override PipecatVoice default]:::unknown
|
||||
end
|
||||
|
||||
subgraph Mac[Mac mini — current voice hosts]
|
||||
AD[LAN voice adapter<br/>protocol-v1 WebSocket · port 8644]:::confirmed
|
||||
HG[Default Hermes gateway<br/>listening · port 8642]:::confirmed
|
||||
PC[Pipecat SmallWebRTC bot<br/>listening · port 7860]:::confirmed
|
||||
TS[Pipecat turn/STT/TTS experiments<br/>repo: pipecat-voice-gateway]:::inferred
|
||||
end
|
||||
|
||||
subgraph Pi[AeroPi5 — Kids Hermes runtime]
|
||||
KG[hermes-gateway-kids.service<br/>kids profile · active]:::confirmed
|
||||
KP[Voice route / listener / profile binding<br/>not observed in discovery]:::unknown
|
||||
end
|
||||
|
||||
PV -->|CONFIRMED: current source default<br/>protocol-v1 WS| AD
|
||||
CFG -.->|UNKNOWN: runtime override<br/>must reconcile| PV
|
||||
RB -.->|INFERRED: direct legacy WS<br/>endpoint differs from PipecatVoice| HG
|
||||
AD -.->|INFERRED: may call voice processing<br/>contract not yet traced live| TS
|
||||
TS -.->|INFERRED: Hermes API use in source| HG
|
||||
PC -.->|NOT PRODUCT PATH: WebRTC route<br/>external ELF is a documented NO-GO| PV
|
||||
KG -.->|UNKNOWN: no confirmed voice transport<br/>binding to current client/adapter| AD
|
||||
KG -.->|UNKNOWN: policy/runtime relationship| HG
|
||||
|
||||
NOTE[Status key:<br/>solid green = confirmed now<br/>dashed amber = inferred from source/history<br/>dotted gray = unknown; needs evidence<br/>rose = blocked/no-go]:::unknown
|
||||
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="1030" viewBox="0 0 1500 1030" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Kids Hermes Voice — verified system design</title>
|
||||
<desc id="desc">System design overview of the candidate Tactility board, Mac mini voice adapter, Pipecat path, default Hermes gateway, and AeroPi5 kids runtime. Connections are marked confirmed, inferred, or unknown.</desc>
|
||||
<defs>
|
||||
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M40 0H0V40" fill="none" stroke="#1e293b" stroke-width="0.5"/></pattern>
|
||||
<marker id="green" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#34d399"/></marker>
|
||||
<marker id="amber" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#fbbf24"/></marker>
|
||||
<marker id="gray" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#94a3b8"/></marker>
|
||||
<style>
|
||||
.title{font:700 25px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#f8fafc}.sub{font:13px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#94a3b8}.group{font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#cbd5e1}.name{font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#f8fafc}.text{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#cbd5e1}.small{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#94a3b8}.label{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;fill:#e2e8f0}.confirmed{fill:#123d2d;stroke:#34d399;stroke-width:2}.inferred{fill:#46351a;stroke:#fbbf24;stroke-width:2;stroke-dasharray:7 5}.unknown{fill:#1e293b;stroke:#94a3b8;stroke-width:2;stroke-dasharray:3 5}.nogood{fill:#3f1d2b;stroke:#fb7185;stroke-width:2}.boundary{fill:#0f172a;fill-opacity:.72;stroke:#475569;stroke-width:1.4;stroke-dasharray:8 5}.lineC{stroke:#34d399;stroke-width:3;fill:none;marker-end:url(#green)}.lineI{stroke:#fbbf24;stroke-width:2.5;fill:none;stroke-dasharray:8 5;marker-end:url(#amber)}.lineU{stroke:#94a3b8;stroke-width:2;fill:none;stroke-dasharray:3 6;marker-end:url(#gray)}
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="1500" height="1030" fill="#020617"/><rect width="1500" height="1030" fill="url(#grid)"/>
|
||||
<text x="55" y="55" class="title">KIDS HERMES VOICE — SYSTEM DESIGN</text><text x="55" y="80" class="sub">Read-only baseline · connections show current evidence, not authorization to change or deploy</text>
|
||||
|
||||
<!-- boundaries -->
|
||||
<rect x="50" y="125" width="360" height="650" rx="14" class="boundary"/><text x="75" y="155" class="group">CANDIDATE TACTILITY BOARD</text>
|
||||
<rect x="520" y="125" width="535" height="650" rx="14" class="boundary"/><text x="545" y="155" class="group">MAC MINI — CURRENT VOICE HOSTS</text>
|
||||
<rect x="1165" y="125" width="285" height="650" rx="14" class="boundary"/><text x="1190" y="155" class="group">AEROPI5 — KIDS RUNTIME</text>
|
||||
|
||||
<!-- flows behind boxes -->
|
||||
<path d="M390 300 C450 300 465 300 540 300" class="lineC"/><text x="422" y="284" class="label">CONFIRMED · protocol-v1 WS</text>
|
||||
<path d="M360 501 C452 501 466 501 540 475" class="lineI"/><text x="405" y="487" class="label">INFERRED · legacy direct WS</text>
|
||||
<path d="M345 650 C430 650 440 650 540 650" class="lineU"/><text x="395" y="635" class="label">UNKNOWN · config override</text>
|
||||
<path d="M750 365 C750 405 750 420 750 450" class="lineI"/><text x="765" y="412" class="label">INFERRED · processing link</text>
|
||||
<path d="M850 510 C890 500 910 475 920 410" class="lineI"/><text x="870" y="455" class="label">INFERRED · Hermes API</text>
|
||||
<path d="M730 690 C630 720 505 715 390 690" class="lineI"/><text x="510" y="742" class="label">NO-GO: SmallWebRTC in current external ELF</text>
|
||||
<path d="M1165 330 C1100 330 1085 330 1035 330" class="lineU"/><text x="1060" y="314" class="label">UNKNOWN policy/transport binding</text>
|
||||
<path d="M1165 570 C1100 570 1080 570 940 570" class="lineU"/><text x="1010" y="554" class="label">UNKNOWN</text>
|
||||
|
||||
<!-- device boxes -->
|
||||
<rect x="75" y="230" width="315" height="130" rx="8" class="confirmed"/><text x="96" y="260" class="name">PipecatVoice app</text><text x="96" y="287" class="text">Tactility external ELF</text><text x="96" y="310" class="text">16 kHz PCM + protocol-v1 state machine</text><text x="96" y="337" class="small">Current source target: Mac mini voice adapter</text>
|
||||
<rect x="75" y="430" width="285" height="125" rx="8" class="inferred"/><text x="96" y="460" class="name">ReynaBot app</text><text x="96" y="487" class="text">Separate legacy voice endpoint</text><text x="96" y="510" class="small">Endpoint differs from PipecatVoice</text><text x="96" y="532" class="small">Live use / target identity: unverified</text>
|
||||
<rect x="75" y="610" width="270" height="100" rx="8" class="unknown"/><text x="96" y="640" class="name">Persisted config.json</text><text x="96" y="668" class="text">Can override non-secret endpoint</text><text x="96" y="692" class="small">Not yet read from candidate board</text>
|
||||
|
||||
<!-- mac boxes -->
|
||||
<rect x="540" y="230" width="390" height="135" rx="8" class="confirmed"/><text x="565" y="260" class="name">LAN voice adapter</text><text x="565" y="288" class="text">protocol-v1 WebSocket · LAN-only bind</text><text x="565" y="312" class="text">Path: /api/esp32/voice/ws</text><text x="565" y="340" class="small">Confirmed listening; HTTP probe requested WS upgrade</text>
|
||||
<rect x="540" y="450" width="390" height="110" rx="8" class="inferred"/><text x="565" y="480" class="name">Pipecat voice processing</text><text x="565" y="507" class="text">STT / turn service / TTS experiments</text><text x="565" y="535" class="small">Integration contract to adapter not live-traced</text>
|
||||
<rect x="540" y="610" width="390" height="105" rx="8" class="confirmed"/><text x="565" y="640" class="name">Pipecat SmallWebRTC bot</text><text x="565" y="667" class="text">Service is listening</text><text x="565" y="692" class="small">Available path; not a supported current Tactility ELF route</text>
|
||||
<rect x="940" y="385" width="92" height="110" rx="8" class="confirmed"/><text x="952" y="414" class="name">Default</text><text x="952" y="438" class="name">Hermes</text><text x="952" y="462" class="name">gateway</text><text x="952" y="483" class="small">listening</text>
|
||||
|
||||
<!-- pi box -->
|
||||
<rect x="1190" y="230" width="230" height="140" rx="8" class="confirmed"/><text x="1210" y="260" class="name">Kids Hermes runtime</text><text x="1210" y="288" class="text">hermes-gateway-kids.service</text><text x="1210" y="313" class="text">active · kids profile</text><text x="1210" y="343" class="small">Policy/runtime owner</text>
|
||||
<rect x="1190" y="510" width="230" height="120" rx="8" class="unknown"/><text x="1210" y="540" class="name">Voice-route binding</text><text x="1210" y="568" class="text">No current listener observed</text><text x="1210" y="594" class="small">Connection to adapter/client unknown</text>
|
||||
|
||||
<!-- legend and evidence -->
|
||||
<rect x="50" y="815" width="1400" height="165" rx="12" fill="#0f172a" stroke="#334155" stroke-width="1.5"/>
|
||||
<text x="75" y="846" class="group">EVIDENCE KEY</text><line x1="75" y1="872" x2="130" y2="872" class="lineC"/><text x="145" y="877" class="text">Confirmed now: process/listener, active service, or current source endpoint</text><line x1="610" y1="872" x2="665" y2="872" class="lineI"/><text x="680" y="877" class="text">Inferred: source/history exists; end-to-end linkage not proven</text><line x1="1110" y1="872" x2="1165" y2="872" class="lineU"/><text x="1180" y="877" class="text">Unknown: requires evidence</text>
|
||||
<text x="75" y="915" class="text">Sources: current Tactility app source/README; Mac mini listener and process inspection; AeroPi5 systemd inspection; PipecatVoice postmortem; factory record.</text>
|
||||
<text x="75" y="944" class="text">Current restore gate: reconcile the candidate board’s persisted PipecatVoice config against the confirmed Mac mini adapter endpoint. No source, service, or device changes were made.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,105 @@
|
||||
---
|
||||
project_key: kids-hermes-voice
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-18
|
||||
---
|
||||
|
||||
# Kids Hermes Voice — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
Kids Hermes Voice is the child-safe, local voice experience spanning the Tactility ESP32 client, the voice-gateway application, and the Hermes kids/voice runtime. It is distinct from `family-voice`, which remains the evaluation-only speaker-identification and privacy research project. Speaker identification may later supply non-authoritative context to this project only after an explicit consent decision.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host / target | Repository / service | Paseo-project role | Current evidence |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/electronics/tactility/tactility_apps` — `Apps/PipecatVoice` / related `ReynaBot` paths | `Kids Hermes Voice · Tactility client` | Repository is present on `main`, ahead of `origin/main` by 1 commit, with existing modified/untracked voice-related work; preserve it until inventoried. Existing Tactility Apps workspace: `wks_c488f281bcb459c7` (registration must be rechecked before dispatch). |
|
||||
| Mac mini `.102` | `~/Projects/pipecat-voice-gateway` | `Kids Hermes Voice · Gateway` | Repository is present on `main`, with existing modified/untracked gateway work; no reset, commit, or deployment is authorized. Workspace registration still needs discovery. |
|
||||
| AeroPi5 `.126` | Hermes kids/voice runtime and legacy voice-host role | `Kids Hermes Voice · Runtime` | Host was reachable on 2026-08-18. Exact checkout, active service ownership, and current configuration are unverified; read-only discovery only. |
|
||||
| Tactility ESP32 fleet | First target board must be named per task | Deployment target, not a Paseo host | No install, flash, or runtime change is authorized by this record. |
|
||||
|
||||
## Architecture boundary
|
||||
|
||||
```text
|
||||
Tactility voice client <-> voice-gateway protocol <-> Hermes kids/voice runtime
|
||||
device UX transport child-safe response policy
|
||||
```
|
||||
|
||||
- The client owns capture, playback, device UI, and protocol compatibility.
|
||||
- The gateway owns the versioned voice transport, capability negotiation, turn telemetry, and compatibility fallbacks.
|
||||
- The Hermes runtime owns the child-safe profile, permitted tools, and local response routing.
|
||||
- `family-voice` owns offline speaker-ID evaluation and privacy review; it is not an authentication mechanism.
|
||||
|
||||
## Personas
|
||||
|
||||
- Integration planner: maps protocol, repository boundaries, and acceptance criteria; read-only.
|
||||
- Tactility client implementer: isolated worktree only.
|
||||
- Gateway/runtime implementer: isolated worktree only; never edits both repositories in one shared checkout.
|
||||
- Build/protocol verifier: reports exact commands and outcomes without source fixes.
|
||||
- Child-safety/privacy reviewer: checks profile/tool boundary, retention, and no-cloud/raw-audio claims.
|
||||
- Device QA/deployment executor: acts only for a named device after explicit approval, rollback plan, and compatible SDK/firmware verification.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Do not expose administrator/system tools to child-facing sessions.
|
||||
- Do not upload, commit, or place raw audio, embeddings, credentials, or pairing material in project records.
|
||||
- No always-listening capture, enrollment, firmware flash, device install, daemon restart, gateway deployment, profile/permission change, or service reconfiguration without explicit human approval.
|
||||
- Existing dirty worktrees are evidence to inventory, not permission to reset, commit, merge, or overwrite.
|
||||
- Every source-changing lane uses one isolated worktree and an explicitly `auto-review` Paseo coding session; planners/reviewers remain read-only.
|
||||
|
||||
## First coordination task — baseline contract and inventory
|
||||
|
||||
**Goal:** establish an implementation-ready, evidence-backed baseline without changing source or devices.
|
||||
|
||||
**Incident context:** this voice path reportedly worked previously but has not been restored for an extended period. Treat the current effort as a restoration investigation: establish the last known working boundaries and concrete present blockers before proposing a change.
|
||||
|
||||
**Acceptance criteria:**
|
||||
1. Identify the intended first device/board and its current firmware/SDK compatibility.
|
||||
2. Inventory existing uncommitted client and gateway work by file and behavioral intent; classify it as preserve, superseded, or candidate for the first worktree.
|
||||
3. Confirm the live runtime host, checkout/service owner, and the current kids/voice entry route on AeroPi5.
|
||||
4. Produce a versioned client↔gateway protocol contract covering capability negotiation, PCM-first streamed output, state/error events, interruption behavior, and the full-WAV/base64 fallback.
|
||||
5. Name the first source-changing milestone and its repository owner; no coding until the human approves that scope.
|
||||
|
||||
**Allowed now:** read-only repository, workspace, host, and device discovery; protocol planning; build-command discovery.
|
||||
|
||||
**Required evidence:** exact git/workspace status; repository `AGENTS.md`; runtime/service ownership; device identity plus firmware/SDK version; proposed contract location and verification commands.
|
||||
|
||||
**Forbidden effects:** source edits, commits, resets, installs, flashes, starts/stops/restarts, profile/permission changes, external sends, credentials, and raw-audio collection/export.
|
||||
|
||||
**Approval gate:** explicit human approval is required before dispatching an implementation agent, changing source, or interacting with a device/runtime.
|
||||
|
||||
## Baseline findings — 2026-08-18
|
||||
|
||||
- The canonical device architecture is **protocol-v1 LAN WebSocket**, not Pipecat SmallWebRTC inside a Tactility external ELF. The latter is a documented no-go for the current SDK/firmware boundary.
|
||||
- The Mac mini currently has a live LAN adapter at `192.168.68.102:8644`, serving `/api/esp32/voice/ws`; a non-mutating HTTP probe correctly received `400` requesting a WebSocket upgrade. The default Hermes gateway separately listens on `*:8642`.
|
||||
- Current Tactility `PipecatVoice` source and README agree on the `.102:8644` adapter endpoint, but prior restoration evidence refers to a different endpoint. The first gate is therefore endpoint plus persisted-device-config reconciliation, not a transport redesign.
|
||||
- AeroPi5 has an active `hermes-gateway-kids.service` running the `kids` profile from `~/.hermes/profiles/kids`. It has no Paseo CLI/workspace registration, and no `:8642` listener was observed in this discovery; it is a runtime-policy dependency, not the current LAN adapter host.
|
||||
- Board `.129` is reachable and its dashboard API returned HTTP `200`; board `.112` responds to ICMP but its dashboard port `80` was unavailable. `.129` is the evidence-backed candidate for the first restoration validation, pending the human naming it as the approved target.
|
||||
- The local client protocol test passed (`voice_protocol tests passed`) and both involved working trees passed `git diff --check`. This is static evidence only; it does not prove a board WebSocket session, upstream PCM, speaker playback, reconnect, or STT/Hermes/TTS.
|
||||
- Existing gateway/client modifications must be inventoried and retained. A credential-bearing source artifact was encountered during read-only inspection; it must be remediated in an explicitly approved, secret-safe source-change lane and must never be copied into records, logs, or chat.
|
||||
|
||||
## Canonical project layout
|
||||
|
||||
```text
|
||||
Kids Hermes Voice (cross-project record)
|
||||
├── Tactility client: tactility_apps/Apps/PipecatVoice
|
||||
│ └── device capture/playback, protocol-v1 state machine, persisted non-secret endpoint
|
||||
├── LAN adapter: voice-assistant/hermes-esp32-voice-gateway
|
||||
│ └── 192.168.68.102:8644 protocol boundary, LAN framing/limits, deterministic audio fixtures
|
||||
├── Voice processing: pipecat-voice-gateway
|
||||
│ └── STT/TTS/turn-service experimentation; never silently substitutes for the adapter contract
|
||||
└── Kids runtime: AeroPi5 ~/.hermes profile `kids`
|
||||
└── child-safe policy and allowed-tool boundary; distinct from transport ownership
|
||||
```
|
||||
|
||||
The next read-only deliverable is an endpoint/persisted-config reconciliation report for the approved board. Only after that evidence exists may a separate, approved worktree lane define the smallest restoration edit.
|
||||
|
||||
## Related records
|
||||
|
||||
- `family-voice.md`
|
||||
- `tactility.md`
|
||||
- `../tactility_voice_gateway_elato_transition_2026.md`
|
||||
- `../voice_dev_infrastructure_2026.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
project_key: remarkable-hermes
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-17
|
||||
---
|
||||
|
||||
# reMarkable Hermes Communication — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
reMarkable Hermes is the multi-host Paper Pro communication and watcher effort: a tablet-side Hermes surface, safe handwriting/document interaction, and the supporting logger/bridge infrastructure.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host / target | Repository / service | Paseo-project role | Status |
|
||||
|---|---|---|---|
|
||||
| iMac `.124` | Paper Pro SDK / cross-compile work documented under `~/remarkable-dev` | `reMarkable · App` | Exact repository path and daemon recovery still require discovery |
|
||||
| AeroPi5 `.126` | watcher/logger/UDP listener history | `reMarkable · Watcher` | Inventory reports watcher not working; ownership and files need discovery |
|
||||
| Paper Pro `.132` | sidecar and custom app target | Target environment, not a Paseo host | Explicit device safety controls apply |
|
||||
|
||||
## Personas
|
||||
|
||||
- App planner and Qt implementer: scoped app/worktree development.
|
||||
- Watcher incident triager: read-only service inspection first.
|
||||
- Watcher implementer and service verifier: only after root cause and task scope.
|
||||
- Device deployment verifier: checks the specific approved artifact on-device.
|
||||
- Deployment executor: performs an explicitly approved device-side action with rollback plan.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Do not restart xochitl, alter device system files, overwrite documents, or deploy a tablet app without explicit approval and rollback path.
|
||||
- Treat the Paper Pro as a target environment, never as a generic remote coding host.
|
||||
- Preserve handwritten source material and avoid bulk document manipulation.
|
||||
|
||||
## Factory readiness next actions
|
||||
|
||||
1. Discover the active iMac repository/workspace, build command, and Paseo daemon recovery path.
|
||||
2. Discover current Pi watcher ownership, files, logs, and failure mode without modifications.
|
||||
3. Register host-local Paseo workspaces only after that evidence is reviewed.
|
||||
4. Pilot a read-only watcher triage or local app build—never a tablet deployment.
|
||||
|
||||
## Related records
|
||||
|
||||
- `../remarkable_hermes_communication_app.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
project_key: reyna-cli
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-17
|
||||
---
|
||||
|
||||
# Reyna CLI — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
Reyna CLI is the private Mac mini operations platform for privacy-sensitive Apple integrations, family operations, and controlled local/LAN service capabilities.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host | Repository / service | Paseo-project role | Status |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/platform/reyna-cli` (symlinked/known as `~/Projects/reyna-cli`), Gitea `adolforeyna/reyna-cli` | `Reyna CLI · Main` | Registered local workspace `wks_5d711dc3ed4df37e`; local ignored/untracked device artifacts exist |
|
||||
|
||||
## Personas
|
||||
|
||||
- Planner: maps requested capability to privacy and system boundaries.
|
||||
- Privacy-boundary implementer: isolated worktree code changes only.
|
||||
- Test verifier: runs exact CLI/unit/integration checks.
|
||||
- Security reviewer: checks command injection, secret handling, permissions, network exposure, and unintended Apple-data access.
|
||||
- Release steward and deployment executor: separate, approval-gated roles.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- TCC permissions, Apple data, credentials, LaunchAgents, gateway configuration, and LAN listener exposure are separate approval boundaries.
|
||||
- Never use a source-changing agent in the shared `main` checkout.
|
||||
- Do not include data from Calendar, Contacts, Notes, Reminders, or authentication stores in agent prompts or brain records.
|
||||
|
||||
## Factory readiness next actions
|
||||
|
||||
1. Discover the repository's actual test/build/lint commands.
|
||||
2. Register a local main-checkout Paseo workspace after checking the current local state.
|
||||
3. Establish `paseo.json` with only audited, non-publishing commands.
|
||||
4. Pilot a low-risk worktree change before scheduling quality automation.
|
||||
|
||||
## Related records
|
||||
|
||||
- `../reyna_cli_browser_control.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
project_key: tactility
|
||||
status: active
|
||||
factory_maturity: discovery
|
||||
updated: 2026-08-17
|
||||
---
|
||||
|
||||
# Tactility — Project Definition
|
||||
|
||||
## Purpose
|
||||
|
||||
Tactility is the ESP32 platform and runtime-app collection for family displays, audio, media, device interfaces, and approved hardware experiments.
|
||||
|
||||
## Execution map
|
||||
|
||||
| Host / target | Repository / service | Paseo-project role | Status |
|
||||
|---|---|---|---|
|
||||
| Mac mini `.102` | `~/Projects/electronics/tactility/tactility`, Gitea origin | `Tactility · Platform` | Registered local workspace `wks_f6a631c20313f1a8` on `main` |
|
||||
| Mac mini `.102` | `~/Projects/electronics/tactility/tactility_apps`, Gitea origin | `Tactility · Apps` | Registered local workspace `wks_c488f281bcb459c7` on `main`; detailed app build/deploy guidance is in repo `AGENTS.md` |
|
||||
| ESP32 fleet | Boards such as `.112`, `.111`, `.123` | Target environments, not Paseo hosts | Device health/version must be verified per task |
|
||||
|
||||
## Personas
|
||||
|
||||
- Firmware/app planner: read-only, identifies board/SDK/app compatibility.
|
||||
- Platform or app implementer: isolated worktree only.
|
||||
- Build verifier: confirms build plus undefined-symbol check.
|
||||
- Hardware reviewer: assesses firmware/device risk and deployment prerequisites.
|
||||
- Device QA: captures approved behavioral/screenshot evidence after deployment.
|
||||
- Deployment executor: performs a specific approved device install/run only.
|
||||
|
||||
## Safety boundaries
|
||||
|
||||
- Build success alone is not completion.
|
||||
- Hardware deployment requires explicit approval, named board, compatible SDK/firmware, rollback/recovery plan, and behavior verification.
|
||||
- Do not blindly flash firmware, mass-install apps, or assume a remembered IP/device identity.
|
||||
|
||||
## Factory readiness next actions
|
||||
|
||||
1. Discover project-specific build/test commands for platform and apps.
|
||||
2. Register two separate Mac mini Paseo workspaces.
|
||||
3. Create repository-specific Paseo script contracts.
|
||||
4. Pilot an app-only worktree change with build + symbol verification, without device installation.
|
||||
|
||||
## Related records
|
||||
|
||||
- `../tactility_voice_gateway_elato_transition_2026.md`
|
||||
- `../../areas/operations/services_inventory.md`
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
Date: 2026-08-25
|
||||
Book: Belling the Cat
|
||||
Audience: Grace
|
||||
Status: source background established from supplied title page and ending sequence (pages 26–32); opening pages are still needed for a complete page-by-page production package
|
||||
Tags: [kids-book, tactility, Grace, source-background]
|
||||
---
|
||||
|
||||
# Belling the Cat — Source Background
|
||||
|
||||
## Source status
|
||||
|
||||
- User supplied the title page and all **seven photographed story pages** for this fable. The printed numbers 26–32 are this fable's sequence within a larger book, not missing opening material.
|
||||
- The direct review shows a complete narrative: meeting, discussion, young mouse's idea, silent-cat problem, bell proposal, practical objection, and ending.
|
||||
- This note is a private production reference for an original child-friendly adaptation, not a reproduction of the physical book.
|
||||
|
||||
## Main characters
|
||||
|
||||
- **Young mouse:** A small gray mouse in an orange sweater and green trousers. He enthusiastically proposes tying a bell around the Cat's neck.
|
||||
- **Older mouse:** A wise gray mouse with round glasses and a blue coat. He calmly asks the important practical question.
|
||||
- **Mouse community:** A group of varied brown and gray mice in simple colorful clothes, gathered in a wooden attic/workroom.
|
||||
- **The Cat:** The feared enemy, mostly represented through the Cat's portrait in the provided ending sequence. Keep her imposing but not frightening for a young child.
|
||||
|
||||
## Setting and visual language
|
||||
|
||||
- A cozy wooden attic/workroom: big spool of red thread, small green stools, blue cabinet, pink curtains, lamp, fabric scraps, and a framed cat picture.
|
||||
- Soft colored-pencil/watercolor illustrations with warm muted colors, thin dark outlines, and a blue border around each image.
|
||||
- The mood travels from worry, to excited hope, to thoughtful silence—without needing intense danger.
|
||||
|
||||
## Story arc confirmed by the supplied pages
|
||||
|
||||
1. The mice gather to discuss their enemy, the Cat.
|
||||
2. A young mouse explains that the silent Cat keeps them in danger.
|
||||
3. He proposes tying a bell around the Cat's neck so the mice can hear her coming and run away.
|
||||
4. The other mice applaud the clever-sounding idea.
|
||||
5. An older mouse asks who will actually put the bell on the Cat.
|
||||
6. The mice fall silent, and no one speaks of belling the Cat again.
|
||||
|
||||
## Adaptation guardrails
|
||||
|
||||
- Generate original illustrations from the photos as visual and plot references; never use phone-photo crops as finished device art.
|
||||
- Preserve continuity: cozy mouse workroom, young mouse in orange/green, older mouse with glasses/blue coat, red thread spool and small bell as recurring props.
|
||||
- Device art target: 320×240 landscape, no printed text inside art.
|
||||
- Narration should be warm, clear, and age-appropriate for Grace; pause slightly before the older mouse's question and make the ending thoughtful, not shameful.
|
||||
- Central lesson: a clever idea is not enough unless someone can safely and realistically carry it out.
|
||||
|
||||
## Remaining source material needed for complete production
|
||||
|
||||
- Pages 1–25, if this should become a page-by-page device book
|
||||
- Author/publisher information, if source credit is wanted
|
||||
- Confirmation whether the final book should be English only or also Spanish
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"book_id": "grace-belling-the-cat",
|
||||
"title": "Belling the Cat",
|
||||
"source_status": "complete supplied story sequence: seven photographed story pages plus title page; printed pages 26–32 belong to this fable's full sequence",
|
||||
"captions": [
|
||||
{"sequence": 1, "printed_page": 26, "text": "Long ago, the mice had a meeting to talk about their enemy—the Cat. What could they do about her?"},
|
||||
{"sequence": 2, "printed_page": 27, "text": "Some said this, and some said that. But at last a young mouse got up and said he had an idea."},
|
||||
{"sequence": 3, "printed_page": 28, "text": "The Cat moves without making a sound. That is why we are always in danger."},
|
||||
{"sequence": 4, "printed_page": 29, "text": "If we could hear the Cat coming, it would be easy for us to run away."},
|
||||
{"sequence": 5, "printed_page": 31, "text": "My idea is this: we will tie a bell around the Cat's neck. Then we will hear her coming and can run away."},
|
||||
{"sequence": 6, "printed_page": 30, "text": "The mice clapped and cheered. Then one old mouse asked which one would put the bell on the Cat. The mice looked at one another in silence."},
|
||||
{"sequence": 7, "printed_page": 32, "text": "And no one ever spoke again of belling the Cat."}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
Date: 2026-08-25
|
||||
Book: City Mouse-Country Mouse
|
||||
Audience: Grace
|
||||
Status: source background established from supplied photos; pages 1–7 still needed for a complete adaptation
|
||||
Tags: [kids-book, tactility, Grace, source-background]
|
||||
---
|
||||
|
||||
# City Mouse-Country Mouse — Source Background
|
||||
|
||||
## Source status
|
||||
|
||||
- User supplied the title page and all **11 story beats** across six photographed story pages/spreads; several photos contain two facing pages.
|
||||
- The source sequence is now fully established, including the City Mouse's trip to visit the Country Mouse, the Country Mouse's welcome, the simple meal, the city visit, the dogs, and the peaceful ending.
|
||||
- This note is a private production reference for an original, child-friendly device adaptation. It is not a reproduction of the physical book.
|
||||
|
||||
## What the visible pages establish
|
||||
|
||||
### Main characters
|
||||
|
||||
- **City Mouse:** Comfortable in the city, fond of fancy food and city life; wears a blue coat in the source illustrations.
|
||||
- **Country Mouse:** A visiting cousin from the country, modest and peace-seeking; wears a purple dress in the source illustrations.
|
||||
|
||||
### Settings
|
||||
|
||||
- **Country home:** A warm hollow inside a large tree in a birch forest. The Country Mouse has a simple domestic space.
|
||||
- **City home:** An indoor house with a dining room, table, chairs, curtains, and plenty of leftovers from a fine dinner.
|
||||
|
||||
### Story arc confirmed by the supplied pages
|
||||
|
||||
1. City Mouse travels to visit Country Mouse.
|
||||
2. Country Mouse happily welcomes the cousin and shares a simple meal.
|
||||
3. City Mouse rejects the country meal and invites Country Mouse to the city.
|
||||
4. They travel to the city, arrive late at night, and find a feast of leftovers.
|
||||
5. They begin to eat, hear growling, and then two large dogs burst in; both mice flee.
|
||||
6. Country Mouse chooses to return home, deciding that a peaceful simple meal is better than fine food that cannot be enjoyed safely.
|
||||
|
||||
## Adaptation guardrails
|
||||
|
||||
- Use the source photos only as visual and plot reference; generate new, original illustrations rather than use phone-photo crops.
|
||||
- Preserve visual continuity from the source: small brown mice, City Mouse in blue, Country Mouse in purple, warm watercolor/ink storybook feeling.
|
||||
- Device art target: 320×240 landscape, no printed text inside artwork.
|
||||
- Narration should be warm, clear, and age-appropriate for Grace; retain the central lesson without copying the source wording.
|
||||
|
||||
## Missing source material before production
|
||||
|
||||
- Pages 1–7 / the beginning of the visit
|
||||
- Any cover, author, or publisher information if the final package should credit the source
|
||||
- Confirmation whether the book should be English only or also have a Spanish version
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user